summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/conformance-checkers
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
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 'testing/web-platform/tests/conformance-checkers')
-rw-r--r--testing/web-platform/tests/conformance-checkers/META.yml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/Makefile57
-rw-r--r--testing/web-platform/tests/conformance-checkers/README.md13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/_/780.htm18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/ariatree.html106
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/ariatree2.html124
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/css/img/expander.gifbin0 -> 80 bytes
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/css/treebox.css65
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/css/treesimple.css50
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/js/aria.js158
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/js/init.js8
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/js/prototype.js4180
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/checkbox-title.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/file-title.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/password-title.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/radio-title.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/text-title.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/673.html34
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/674.html34
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/675.html36
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/676.html38
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/677.html35
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/678.html36
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/679.html38
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/680.html37
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/681.html34
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/682.html43
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/683.html45
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/684.html44
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/685.html54
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/686.html54
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/687.html55
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/688.html55
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/689.html43
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/690.html43
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/691.html46
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/692.html44
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/693.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/694.html55
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/695.html55
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/696.html42
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/697.html34
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/698.html34
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/699.html34
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/700.html34
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/701.html35
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/702.html34
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/703.html35
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/704.html34
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/705.html45
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/706.html47
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/707.html50
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/708.html53
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/709.html54
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/710.html54
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/711.html55
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/712.html55
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/713.html54
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/714.html53
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/715.html46
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/716.html47
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/717.html53
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/718.html53
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/719.html53
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/720.html53
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/aria-describedby/772.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/aria-describedby/773.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/aria-describedby/774.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/aria-describedby/838.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/567.html20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/568.html32
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/569.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/571-haswarn.html84
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/572-haswarn.html73
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/573-haswarn.html73
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/574.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/575.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/576.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/577.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/578.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/579.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/580.html24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/581.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/582.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/584.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/button-pressed/589.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/button-pressed/590.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/combobox-autocomplete-list/div-haswarn.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/combobox-autocomplete-list/input.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/default.pngbin0 -> 1286 bytes
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/state-1.pngbin0 -> 1287 bytes
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/state-2.pngbin0 -> 1296 bytes
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/state-3.pngbin0 -> 1297 bytes
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/state-4.pngbin0 -> 1295 bytes
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/host-language/implicit-semantics-checkbox-disparity-haswarn.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/host-language/implicit-semantics-checkbox-norole-haswarn.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/host-language/implicit-semantics-checkbox-role-haswarn.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/host-language/input-range-valuetext.htm10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-1-haswarn.html74
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-2.html80
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-3.html76
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-4.html74
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-5.html76
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-6.html80
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/mixed-value/585.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/mixed-value/586.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/596.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/597-haswarn.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/598-haswarn.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/599-haswarn.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/600.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/601.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/602.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/603.html2
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/604.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/605.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/606.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/607.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/608.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/837.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/557-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/565-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/566-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/foo.jpgbin0 -> 6735 bytes
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/test.pngbin0 -> 1913 bytes
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/538.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/542.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/543.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/544.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/545.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/546.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/551.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/552.html19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/553.html19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/609.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/610.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/611.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/612.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/613.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/614.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/615.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/659.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/660.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/661.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/662.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/663.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/721.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/723.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/724.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/725.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/748.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/749.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/750.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/751.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/753.html19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/754.html19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/755.html19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/756.html19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/758.html19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/759.html19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/760.html19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/761.html19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/foo.jpgbin0 -> 6735 bytes
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/859.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/860.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/861.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/863.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/864.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/865.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/866.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/867.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/868.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/869.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/871.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/872.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/873.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/874.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/875.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/879.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/880.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/887.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/888.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/889.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/890.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/891.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/892.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/893.html20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/noaria.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/497-novalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/498-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/499-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/500-novalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/501-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/502-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/503-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/504-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/505-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/506-novalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/507-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/509-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/510.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/511.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/512.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/513.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/514.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/515.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/516.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/517.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/518.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/519.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/520.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/521.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/522.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/523-haswarn.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/524.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/525.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/527.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-839.html22
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-840.html22
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-842.html22
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-843.html22
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-844.html22
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-atomic-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-atomic-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-atomic.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-busy-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-busy-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-controls-obj1-obj2.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-controls-obj1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-describedby-obj1-obj2.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-describedby-obj1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-disabled-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-disabled-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-copy.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-execute.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-link.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-move.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-none.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-popup.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-flowto-obj1-obj2.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-flowto-obj1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-grabbed-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-grabbed-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-grabbed-undefined.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-haspopup-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-haspopup-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-hidden-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-hidden-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-invalid-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-invalid-grammar.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-invalid-spelling.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-invalid-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-label-Test-string-value-haswarn.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-labelledby-obj1-obj2.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-labelledby-obj1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-live-assertive.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-live-off.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-live-polite.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-owns-obj1-obj2.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-owns-obj1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-additions-text.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-additions.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-all.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-removals.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-text.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/relevant-state/591.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/relevant-state/592.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/relevant-state/593.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-alert.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-alertdialog.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-application.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-article.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-banner.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-button.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-complementary.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-contentinfo.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-definition.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-dialog.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-directory.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-document.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-form.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-grid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-group.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-heading.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-img.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-link.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-list.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-listbox-parent-combobox.html35
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-listbox.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-log.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-main.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-marquee.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-math.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-menu.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-menubar.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-navigation.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-note.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-option.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-presentation.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-progressbar.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-radiogroup.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-region.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-rowheader.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-search.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-separator.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-status.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-tablist.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-tabpanel.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-textbox.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-timer.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-toolbar.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-tooltip.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-tree.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-treegrid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-atomic-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-atomic-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-busy-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-busy-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-controls-obj1-obj2.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-controls-obj1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-describedby-obj1-obj2.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-describedby-obj1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-disabled-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-disabled-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-copy.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-execute.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-link.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-move.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-none.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-popup.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-flowto-obj1-obj2.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-flowto-obj1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-grabbed-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-grabbed-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-grabbed-undefined.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-haspopup-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-haspopup-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-hidden-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-hidden-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-invalid-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-invalid-grammar.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-invalid-spelling.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-invalid-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-label-Test-string-value.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-labelledby-obj1-obj2.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-labelledby-obj1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-live-assertive.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-live-off.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-live-polite.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-owns-obj1-obj2.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-owns-obj1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-additions-text.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-additions.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-all.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-removals.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-text.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/menuitemcheckbox-aria-checked-mixed.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/menuitemcheckbox-aria-checked-undefined.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/radio-aria-checked-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/radio-aria-checked-mixed.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/radio-aria-checked-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/radio-aria-checked-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-checkbox-aria-checked-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-checkbox-aria-checked-mixed.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-checkbox-aria-checked-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-checkbox-aria-checked-undefined.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-combobox-aria-expanded-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-combobox-aria-expanded-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-combobox-aria-expanded-undefined.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alert-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alert-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alert-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alertdialog-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alertdialog-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alertdialog-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/application-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/application-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/application-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/article-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/article-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/article-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/banner-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/banner-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/banner-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-expanded-false.html33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-expanded-true.html33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-expanded-undefined.html33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-readonly-false.html33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-readonly-true.html33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-required-false.html33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-required-true.html33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-selected-false.html33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-selected-true.html33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-selected-undefined.html33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/combobox-aria-activedescendant-obj1.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/combobox-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/combobox-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/combobox-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/complementary-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/complementary-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/complementary-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/contentinfo-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/contentinfo-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/contentinfo-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/definition-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/definition-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/definition-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/dialog-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/dialog-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/dialog-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/directory-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/directory-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/directory-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/form-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/form-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/form-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/grid-aria-activedescendant-obj1.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/grid-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/grid-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/grid-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/gridcell-aria-expanded-false.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/gridcell-aria-expanded-undefined.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/group-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/group-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/group-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/heading-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/heading-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/heading-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/img-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/img-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/img-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/list-aria-expanded-false.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/list-aria-expanded-true.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/list-aria-expanded-undefined.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/listbox-aria-activedescendant-obj1.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/listbox-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/listbox-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/listbox-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/log-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/log-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/log-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/main-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/main-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/main-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/marquee-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/marquee-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/marquee-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/math-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/math-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/math-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menu-aria-activedescendant-obj1.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menu-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menu-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menu-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menubar-aria-activedescendant-obj1.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menubar-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menubar-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menubar-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menuitemradio-aria-checked-false.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menuitemradio-aria-checked-mixed.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menuitemradio-aria-checked-true.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menuitemradio-aria-checked-undefined.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/navigation-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/navigation-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/navigation-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/note-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/note-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/note-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/progressbar-aria-valuemax-1.1.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/progressbar-aria-valuemin-1.1.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/progressbar-aria-valuenow-1.1.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/progressbar-aria-valuetext-Test-string-value.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radio-aria-checked-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radio-aria-checked-mixed.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radio-aria-checked-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radiogroup-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radiogroup-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radiogroup-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/region-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/region-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/region-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/row-aria-activedescendant-obj1.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowgroup-aria-activedescendant-obj1.html19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-expanded-false.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-expanded-true.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-expanded-undefined.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-readonly-false.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-readonly-true.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-required-false.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-required-true.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-selected-false.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-selected-true.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-selected-undefined.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/search-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/search-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/search-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/status-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/status-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/status-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tab-aria-expanded-false.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tab-aria-expanded-true.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tab-aria-expanded-undefined.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tablist-aria-activedescendant-obj1.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tablist-aria-expanded-false.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tablist-aria-expanded-true.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tablist-aria-expanded-undefined.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tabpanel-aria-expanded-false.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tabpanel-aria-expanded-true.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tabpanel-aria-expanded-undefined.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/timer-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/timer-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/timer-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/toolbar-aria-activedescendant-obj1.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/toolbar-aria-expanded-false.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/toolbar-aria-expanded-true.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/toolbar-aria-expanded-undefined.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tooltip-aria-expanded-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tooltip-aria-expanded-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tooltip-aria-expanded-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tree-aria-activedescendant-obj1.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tree-aria-expanded-false.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tree-aria-expanded-true.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tree-aria-expanded-undefined.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-activedescendant-obj1.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-expanded-false.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-expanded-true.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-expanded-undefined.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-level-1.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-multiselectable-false.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-multiselectable-true.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-readonly-false.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-readonly-true.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-required-false.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-required-true.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-checked-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-checked-mixed.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-checked-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-checked-undefined.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-level-1.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-posinset-1.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-selected-false.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-selected-true.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-selected-undefined.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-setsize-1.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-expanded-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-expanded-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-expanded-undefined.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-pressed-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-pressed-mixed.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-pressed-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-pressed-undefined.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-columnheader-aria-sort-ascending.html31
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-columnheader-aria-sort-descending.html31
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-columnheader-aria-sort-none.html31
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-columnheader-aria-sort-other.html31
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-combobox-aria-autocomplete-both.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-combobox-aria-autocomplete-inline.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-combobox-aria-autocomplete-list.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-combobox-aria-autocomplete-none.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-document-aria-expanded-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-document-aria-expanded-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-document-aria-expanded-undefined.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-grid-aria-multiselectable-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-grid-aria-multiselectable-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-grid-aria-readonly-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-grid-aria-readonly-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-readonly-false.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-readonly-true.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-required-false.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-required-true.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-selected-false.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-selected-true.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-selected-undefined.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-heading-aria-level-1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-link-aria-expanded-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-link-aria-expanded-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-link-aria-expanded-undefined.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listbox-aria-multiselectable-false.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listbox-aria-multiselectable-true.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listbox-aria-required-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listbox-aria-required-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listitem-aria-level-1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listitem-aria-posinset-1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listitem-aria-setsize-1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-checked-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-checked-mixed.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-checked-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-checked-undefined.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-posinset-1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-selected-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-selected-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-selected-undefined.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-setsize-1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-radiogroup-aria-required-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-radiogroup-aria-required-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-row-aria-level-1.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-row-aria-selected-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-row-aria-selected-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-row-aria-selected-undefined.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-rowheader-aria-sort-ascending.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-rowheader-aria-sort-descending.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-rowheader-aria-sort-none.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-rowheader-aria-sort-other.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-expanded-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-expanded-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-expanded-undefined.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-orientation-horizontal.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-orientation-vertical.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tab-aria-selected-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tab-aria-selected-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tab-aria-selected-undefined.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tablist-aria-level-1.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-activedescendant-obj1.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-autocomplete-both.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-autocomplete-inline.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-autocomplete-list.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-autocomplete-none.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-multiline-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-multiline-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-readonly-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-readonly-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-required-false.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-required-true.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tree-aria-multiselectable-false.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tree-aria-multiselectable-true.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tree-aria-required-false.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tree-aria-required-true.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/selected-state/670.html32
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/selected-state/671.html34
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/selected-state/672.html38
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/setsize-posinset-level/setsize-posinset-level-1.html86
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/setsize-posinset-level/setsize-posinset-level-5.html71
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/setsize-posinset-level/setsize-posinset-level-6.html75
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/setsize-posinset-level/testcase-769.html89
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/stability-of-dom/669.html33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-listbox-multiselectable-A.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-listbox-multiselectable-B.html50
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-listbox-multiselectable-C.html64
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-multiselectable-D.html41
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-tree-multiselectable-C.html46
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters1html.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters2html.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters2htmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters3html.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters3htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters4html.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters1xml.xml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters2xml.xml9
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters3xml.xml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters3xmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters4xml.xml7
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters4xmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters5xml.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters6xml.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters7xml.xml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters7xmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters8xml.xml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir1html.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir2html.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir3html.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir3htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir4html.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir1xml.xml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir2xml.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir2xmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir3xml.xml7
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir4xml.xml6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir5xml.xml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir6xml.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir6xmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain1html.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain1htmlrules.xml5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain2html.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain2htmlrules.xml6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain3html.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain3htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain4html.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain1xml.xml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain2xml.xml14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain4xml.xml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain4xmlrules.xml6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain5xml.xml17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain5xmlrules.xml6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain6xml.xml19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain7xml.xml16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain7xmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext1html.html33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext1htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext2html.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext3html.html33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext3htmlrules.xml5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext4html.html39
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext1xml.xml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext2xml.xml25
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext2xmlrules.xml6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext3xml.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext4xml.xml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext5xml.xml25
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext6xml.xml21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext6xmlrules.xml5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource1html.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource1htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource2html.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource2htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource3html.html20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource1xml.xml24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource2xml.xml22
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource2xmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource3xml.xml28
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource3xmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource4xml.xml25
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource5xml.xml20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource5xmlrules.xml5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue1html.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue1htmlrules.xml6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue2html.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue2htmlrules.xml7
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue3html.html22
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue1xml.xml20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue2xml.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue3xml.xml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue3xmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue4xml.xml17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue4xmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue5xml.xml20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo1html.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo1htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo2html.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo2htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo3html.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo1xml.xml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo2xml.xml19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo2xmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo3xml.xml20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo4xml.xml24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo4xmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale1html.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale1htmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale2html.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale3html.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale3htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale4html.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale5html.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale1xml.xml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale2xml.xml9
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale3xml.xml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale3xmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale4xml.xml16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale4xmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale5xml.xml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale6xml.xml14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale7xml.xml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale7xmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale8xml.xml18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote1html.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote1htmlrules.xml7
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote2html.html22
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote2htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote3html.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote3htmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote4html.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote4htmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote5html.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote5htmlrules.xml15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote6html.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote6htmlrules.xml15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote7html.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote8html.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote8htmlrules.xml16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote9html.html20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote10xml.xml33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote11xml.xml18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote11xmlrules.xml16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote1xml.xml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote2xml.xml19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote3xml.xml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote4xml.xml16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote5xml.xml15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote5xmlrules.xml9
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote6xml.xml21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote7xml.xml20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote8xml.xml17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote9xml.xml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue10html.html26
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue1html.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue1htmlrules.xml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue2html.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue2htmlrules.xml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue3html.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue3htmlrules.xml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue4html.html30
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue5html.html31
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue6html.html37
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue7html.html20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue8html.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue8htmlrules.xml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue9html.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue9htmlstandoff.xml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue10xml.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue11xml.xml21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue12xml.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue12xmlrules.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue13xml.xml24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue1xml.xml18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue2xml.xml18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue3xml.xml22
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue4xml.xml24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue5xml.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue5xmlrules.xml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue6xml.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue7xml.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue8xml.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue9xml.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/html/locqualityrating1html.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/html/locqualityrating2html.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/xml/locqualityrating1xml.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/xml/locqualityrating2xml.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/xml/locqualityrating3xml.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/xml/locqualityrating4xml.xml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence1html.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence2html.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence2htmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence3html.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence3htmlrules.xml5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence4html.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence4htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence5html.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence1xml.xml22
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence2xml.xml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence2xmlrules.xml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence3xml.xml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence4xml.xml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence5xml.xml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence5xmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence6xml.xml16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence7xml.xml16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace1xml.xml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace2xml.xml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace3xml.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace3xmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace4xml.xml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace5xml.xml14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace6xml.xml9
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace6xmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance1html.html32
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance1htmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance2html.html36
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance3html.html31
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance4html.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance5html.html35
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance5htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance6html.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance6htmlstandoff.xml14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance7html.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance7htmlstandoff.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance8html.html37
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance1xml.xml28
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance2xml.xml29
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance3xml.xml27
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance3xmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance4xml.xml27
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance4xmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance5xml.xml30
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance6xml.xml27
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance6xmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance7xml.xml20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance8xml.xml20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize1html.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize2html.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize2htmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize3html.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize3htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize4html.html20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize1xml.xml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize2xml.xml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize3xml.xml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize3xmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize4xml.xml6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize4xmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize5xml.xml5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize6xml.xml5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize7xml.xml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize7xmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize8xml.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize9xml.xml5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer1html.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer1htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer2html.html19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer2htmlrules.xml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer3html.html24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer1xml.xml14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer2xml.xml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer2xmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer3xml.xml17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer4xml.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer4xmlrules.xml6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology1html.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology1htmlrules.xml3
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology2html.html28
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology2htmlrules.xml5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology3html.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology4html.html28
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology4htmlrules.xml7
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology5html.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology6html.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology1xml.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology2xml.xml9
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology3xml.xml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology4xml.xml19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology4xmlrules.xml5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology5xml.xml7
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology6xml.xml7
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology7xml.xml17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology8xml.xml14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology8xmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology9xml.xml6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis1html.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis1htmlrules.xml9
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis2html.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis2htmlrules.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis3html.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis3htmlrules.xml5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis4html.html20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis5html.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis1xml.xml15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis2xml.xml7
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis2xmlrules.xml9
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis3xml.xml17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis4xml.xml7
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis4xmlrules.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis5xml.xml6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis6xml.xml7
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis7xml.xml14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis8xml.xml7
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis8xmlrules.xml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate1html.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate1htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate2html.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate3html.html24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate3htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate4html.html24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate4htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate5html.html35
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate5htmlrules.xml4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate6html.html35
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate6htmlrules.xml6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate7html.html19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate10xml.xml7
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate10xmlrules.xml5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate1xml.xml39
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate2xml.xml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate2xmlrules.xml5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate3xml.xml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate3xmlrules.xml6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate4xml.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate5xml.xml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate6xml.xml19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate7xml.xml19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate8xml.xml28
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate9xml.xml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0001-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0006-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0007-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0008-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0009-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0010-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0014-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0015-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0017-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0018-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0019-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0020-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0021-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0023-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0025-isvalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0026-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0027-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0029-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0030-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0031-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0032-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0033-isvalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0034-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0035-novalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0036-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0037-novalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0038-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0039-novalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0041-novalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0048-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0049-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0050-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0051-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0052-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0053-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0054-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0055-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0056-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0057-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0059-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0060-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0063-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0064-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0065-isvalid.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0066-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0067-isvalid.html9
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0068-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0069-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0070-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0071-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0072-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0073-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0074-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0075-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0079-novalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0080-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0083-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0084-isvalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0085-novalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0087-isvalid.html35
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0088-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0089-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0091-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0093-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0099-isvalid.html19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0104-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0106-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0107-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0109-novalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0110-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0111-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0112-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0114-isvalid.html19
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0115-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0117-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0118-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0119-isvalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0120-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0122-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0126-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0131-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0134-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0140-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0147-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0174-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0175-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0176-isvalid.html22
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0177-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0178-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0179-novalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0180-novalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0181-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0182-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0183-novalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0186-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0187-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0188-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0189-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0190-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0196-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0197-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0206-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0207-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0213-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0214-isvalid.html9
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0216-isvalid.html31
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0217-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0218-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0219-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0220-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0221-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0222-novalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0223-novalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0224-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0225-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0226-novalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0227-novalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0228-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0229-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0230-novalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0231-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0232-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0233-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0234-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0235-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0237-novalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0238-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0239-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0240-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0241-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0242-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0243-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0244-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0245-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0246-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0247-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0248-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0249-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0250-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0251-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0252-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0253-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0254-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0255-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0257-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0258-novalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0259-isvalid.html48
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0261-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0262-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0263-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0264-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0265-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0266-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0267-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0268-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0269-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0271-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0272-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0273-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0274-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0275-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0276-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0277-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0278-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0279-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0280-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0281-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0282-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0283-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0284-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0285-novalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0287-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0289-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0290-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0291-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0292-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0293-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0296-isvalid.html27
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0297-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0298-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0299-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0300-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0301-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0302-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0303-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0305-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0306-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0307-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0308-novalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0309-novalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0310-novalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0311-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0312-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0313-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0314-novalid.html36
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0315-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0316-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0317-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0318-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0319-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0320-novalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0321-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0322-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0323-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0324-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0325-isvalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0326-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0327-isvalid.html24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0328-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0329-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0330-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfa/0331-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0015-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0021-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0023-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0030-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0050-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0052-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0053-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0066-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0067-isvalid.html9
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0071-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0074-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0075-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0089-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0115-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0117-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0134-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0140-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0147.novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0214-isvalid.html9
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0235-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0238-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0239-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0240-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0241-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0242-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0255-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0259-isvalid.html48
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0263-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0264-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0272-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0273-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0274-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0275-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0276-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0277-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0281-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0282-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0283-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0287-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0296-isvalid.html27
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0301-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0302-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0305-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0306-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0307-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0311-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0312-isvalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0313-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0319-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0321-isvalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0322-isvalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0323-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0324-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0325-isvalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0326-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-rdfalite/0327-isvalid.html24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/0001isvalid.html130
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-dom-01-f-isvalid.html176
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-dom-02-f-isvalid.html66
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-02-t-isvalid.html82
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-03-t-isvalid.html70
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-04-t-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-05-t-isvalid.html58
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-06-t-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-07-t-isvalid.html58
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-08-t-isvalid.html65
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-09-t-isvalid.html77
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-10-t-isvalid.html78
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-11-t-isvalid.html77
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-12-t-isvalid.html77
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-13-t-isvalid.html86
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-14-t-isvalid.html62
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-15-t-isvalid.html62
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-17-t-isvalid.html62
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-19-t-isvalid.html62
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-20-t-isvalid.html59
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-21-t-isvalid.html67
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-22-b-isvalid.html63
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-23-t-isvalid.html64
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-24-t-novalid.html105
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-25-t-isvalid.html61
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-26-t-isvalid.html62
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-27-t-isvalid.html60
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-28-t-isvalid.html54
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-29-b-isvalid.html60
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-30-t-isvalid.html146
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-31-t-isvalid.html118
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-32-t-isvalid.html139
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-33-t-isvalid.html131
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-34-t-isvalid.html92
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-35-t-isvalid.html120
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-36-t-isvalid.html134
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-37-t-isvalid.html88
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-38-t-isvalid.html80
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-39-t-isvalid.html114
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-40-t-isvalid.html200
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-41-t-isvalid.html393
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-44-t-isvalid.html72
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-46-t-isvalid.html239
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-52-t-isvalid.html78
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-53-t-isvalid.html88
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-60-t-isvalid.html157
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-61-t-isvalid.html115
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-62-t-isvalid.html157
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-63-t-isvalid.html122
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-64-t-isvalid.html100
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-65-t-isvalid.html146
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-66-t-isvalid.html139
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-67-t-isvalid.html123
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-68-t-isvalid.html102
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-69-t-isvalid.html113
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-70-t-isvalid.html105
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-77-t-isvalid.html287
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-78-t-isvalid.html423
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-80-t-isvalid.html252
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-81-t-isvalid.html107
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-82-t-isvalid.html213
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-83-t-isvalid.html161
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-84-t-isvalid.html70
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-85-t-isvalid.html83
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-86-t-isvalid.html71
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-87-t-isvalid.html63
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-88-t-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-89-t-isvalid.html94
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-90-b-isvalid.html71
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-91-t-isvalid.html186
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-92-t-isvalid.html103
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-events-01-t-isvalid.html94
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-pevents-01-t-isvalid.html265
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-pevents-02-t-isvalid.html109
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-pevents-03-t-isvalid.html189
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-pevents-04-t-isvalid.html180
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-pservers-grad-01-b-novalid.html88
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-script-elem-01-b-isvalid.html70
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/animate-struct-dom-01-b-isvalid.html74
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/color-prof-01-f-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/color-prop-01-b-isvalid.html69
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/color-prop-02-f-isvalid.html99
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/color-prop-03-t-isvalid.html88
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/color-prop-04-t-isvalid.html84
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/color-prop-05-t-isvalid.html47
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/conform-viewers-02-f-isvalid.html64
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/conform-viewers-03-f-novalid.html102
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-coord-01-t-isvalid.html69
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-coord-02-t-isvalid.html69
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-01-f-novalid.html103
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-02-f-novalid.html84
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-03-f-isvalid.html99
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-04-f-isvalid.html155
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-01-b-isvalid.html226
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-02-t-isvalid.html163
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-03-t-isvalid.html86
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-04-t-isvalid.html75
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-05-t-isvalid.html75
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-06-t-isvalid.html69
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-07-t-isvalid.html57
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-08-t-isvalid.html63
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-09-t-isvalid.html89
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-10-f-isvalid.html77
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-11-f-isvalid.html77
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-12-f-isvalid.html79
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-13-f-isvalid.html77
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-14-f-isvalid.html79
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-01-f-novalid.html83
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-02-f-isvalid.html83
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-03-f-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-04-f-isvalid.html50
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-05-f-isvalid.html60
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-units-01-b-isvalid.html150
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-units-02-b-isvalid.html115
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-units-03-b-isvalid.html125
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/coords-viewattr-03-b-isvalid.html85
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/extend-namespace-01-f-novalid.html162
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-background-01-f-isvalid.html114
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-blend-01-b-isvalid.html88
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-color-01-b-isvalid.html82
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-color-02-b-novalid.html80
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-composite-02-b-isvalid.html181
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-composite-03-f-isvalid.html78
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-composite-04-f-isvalid.html68
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-composite-05-f-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-comptran-01-b-isvalid.html97
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-01-f-isvalid.html93
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-02-f-novalid.html67
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-03-f-isvalid.html84
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-04-f-novalid.html85
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-05-f-novalid.html74
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-diffuse-01-f-isvalid.html134
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-displace-01-f-isvalid.html105
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-displace-02-f-isvalid.html67
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-example-01-b-isvalid.html66
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-felem-01-b-isvalid.html68
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-felem-02-f-isvalid.html113
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-gauss-01-b-isvalid.html69
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-gauss-02-f-isvalid.html71
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-gauss-03-f-isvalid.html57
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-image-01-b-isvalid.html51
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-image-02-b-isvalid.html64
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-image-03-f-isvalid.html164
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-image-04-f-isvalid.html104
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-image-05-f-isvalid.html184
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-light-01-f-isvalid.html170
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-light-02-f-isvalid.html86
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-light-03-f-isvalid.html106
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-light-04-f-isvalid.html123
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-light-05-f-novalid.html207
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-morph-01-f-isvalid.html89
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-offset-01-b-isvalid.html85
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-offset-02-b-isvalid.html71
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-overview-01-b-isvalid.html151
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-overview-02-b-isvalid.html160
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-overview-03-b-isvalid.html151
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-specular-01-f-isvalid.html179
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-tile-01-b-isvalid.html63
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-turb-01-f-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/filters-turb-02-f-isvalid.html125
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-01-t-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-02-t-isvalid.html115
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-03-t-isvalid.html102
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-04-t-isvalid.html120
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-05-t-isvalid.html107
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-01-t-isvalid.html97
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-02-t-isvalid.html105
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-03-b-isvalid.html97
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-04-b-isvalid.html97
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-05-t-isvalid.html125
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-06-t-isvalid.html98
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-07-b-isvalid.html108
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-glyph-02-t-isvalid.html72
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-glyph-03-t-isvalid.html63
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-glyph-04-t-novalid.html58
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-kern-01-t-isvalid.html253
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/fonts-overview-201-t-novalid.html107
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/imp-path-01-f-isvalid.html50
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-cursor-01-f-isvalid.html113
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-dom-01-b-isvalid.html108
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-events-01-b-isvalid.html94
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-events-02-b-isvalid.html61
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-events-202-f-isvalid.html72
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-events-203-t-isvalid.html87
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-order-01-b-isvalid.html89
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-order-02-b-isvalid.html87
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-order-03-b-isvalid.html86
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-01-b-isvalid.html173
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-03-b-isvalid.html114
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-04-t-isvalid.html109
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-05-b-isvalid.html102
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-07-t-isvalid.html107
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-08-f-isvalid.html155
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-09-f-isvalid.html146
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-10-f-isvalid.html68
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-pointer-01-t-isvalid.html64
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-pointer-02-t-novalid.html64
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-pointer-03-t-isvalid.html62
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-pointer-04-f-isvalid.html71
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-zoom-01-t-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-zoom-02-t-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/interact-zoom-03-t-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/linking-a-01-b-isvalid.html54
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/linking-a-03-b-isvalid.html54
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/linking-a-04-t-isvalid.html65
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/linking-a-05-t-isvalid.html71
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/linking-a-07-t-isvalid.html75
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/linking-a-08-t-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/linking-a-09-b-novalid.html62
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/linking-a-10-f-isvalid.html77
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/linking-frag-01-f-isvalid.html57
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/linking-uri-01-b-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/linking-uri-02-b-isvalid.html96
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/linking-uri-03-t-isvalid.html59
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-filter-01-f-novalid.html64
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-intro-01-f-novalid.html69
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-mask-01-b-isvalid.html98
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-mask-02-f-isvalid.html45
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-opacity-01-b-isvalid.html74
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-path-01-b-isvalid.html69
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-path-02-b-isvalid.html58
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-path-03-b-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-path-04-b-isvalid.html59
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-path-05-f-isvalid.html57
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-path-06-b-isvalid.html57
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-path-07-b-isvalid.html117
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-path-08-b-isvalid.html125
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-path-09-b-isvalid.html63
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-path-10-b-isvalid.html123
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-path-11-b-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-path-12-f-isvalid.html73
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-path-13-f-isvalid.html50
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/masking-path-14-f-isvalid.html62
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/metadata-example-01-t-novalid.html147
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-control-01-f-isvalid.html94
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-control-02-f-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-control-03-f-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-control-04-f-isvalid.html50
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-control-05-f-isvalid.html107
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-control-06-f-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-01-t-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-02-t-isvalid.html60
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-03-t-isvalid.html54
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-04-t-isvalid.html54
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-05-b-isvalid.html60
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-01-f-isvalid.html124
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-02-f-isvalid.html212
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-03-f-isvalid.html75
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-04-f-novalid.html72
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-05-f-isvalid.html221
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-06-f-isvalid.html125
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-07-f-isvalid.html58
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-properties-01-f-isvalid.html80
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-render-01-b-isvalid.html128
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-render-02-b-isvalid.html72
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-01-t-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-02-t-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-03-t-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-04-t-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-05-t-isvalid.html73
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-06-t-isvalid.html60
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-07-t-isvalid.html54
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-08-t-isvalid.html68
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-09-t-isvalid.html48
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-10-t-isvalid.html63
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-01-t-isvalid.html135
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-02-t-isvalid.html108
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-03-f-isvalid.html97
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-04-t-isvalid.html69
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-05-t-isvalid.html66
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-06-t-isvalid.html71
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-07-t-isvalid.html70
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-08-t-isvalid.html68
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-09-t-isvalid.html65
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-10-t-isvalid.html98
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-12-t-isvalid.html57
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-13-t-isvalid.html49
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-14-t-isvalid.html50
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-15-t-isvalid.html53
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-16-t-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-17-f-isvalid.html51
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-18-f-novalid.html86
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-19-f-isvalid.html94
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-data-20-f-novalid.html77
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-dom-01-f-isvalid.html123
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/paths-dom-02-f-isvalid.html259
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-01-b-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-02-b-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-03-b-isvalid.html58
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-04-b-isvalid.html67
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-05-b-isvalid.html65
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-06-b-isvalid.html74
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-07-b-isvalid.html63
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-08-b-isvalid.html79
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-09-b-isvalid.html76
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-10-b-isvalid.html72
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-11-b-isvalid.html80
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-12-b-isvalid.html75
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-13-b-isvalid.html166
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-14-b-isvalid.html112
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-15-b-isvalid.html57
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-16-b-isvalid.html63
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-17-b-isvalid.html70
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-18-b-isvalid.html74
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-20-b-isvalid.html71
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-21-b-isvalid.html133
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-22-b-isvalid.html88
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-23-f-novalid.html57
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-24-f-isvalid.html60
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-stops-01-f-isvalid.html61
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-01-b-isvalid.html82
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-02-f-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-03-f-isvalid.html83
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-04-f-isvalid.html57
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-05-f-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-06-f-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-07-f-isvalid.html55
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-08-f-isvalid.html55
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-09-f-isvalid.html59
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/render-elems-01-t-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/render-elems-02-t-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/render-elems-06-t-isvalid.html64
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/render-elems-07-t-isvalid.html62
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/render-elems-08-t-isvalid.html64
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/render-groups-01-b-isvalid.html90
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/render-groups-03-t-isvalid.html84
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/script-handle-01-b-isvalid.html81
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/script-handle-02-b-isvalid.html106
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/script-handle-03-b-isvalid.html106
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/script-handle-04-b-isvalid.html106
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/script-specify-01-f-novalid.html59
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/script-specify-02-f-isvalid.html61
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-circle-01-t-isvalid.html50
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-circle-02-t-isvalid.html60
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-ellipse-01-t-isvalid.html63
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-ellipse-02-t-isvalid.html57
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-ellipse-03-f-isvalid.html58
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-grammar-01-f-isvalid.html63
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-intro-01-t-isvalid.html103
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-intro-02-f-isvalid.html76
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-line-01-t-isvalid.html72
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-line-02-f-isvalid.html48
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-polygon-01-t-isvalid.html68
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-polygon-02-t-isvalid.html73
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-polygon-03-t-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-polyline-01-t-isvalid.html74
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-polyline-02-t-isvalid.html73
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-01-t-isvalid.html64
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-02-t-isvalid.html63
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-03-t-novalid.html127
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-04-f-isvalid.html53
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-05-f-isvalid.html59
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-06-f-isvalid.html57
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-07-f-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-01-t-isvalid.html49
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-02-t-haswarn.html561
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-03-t-isvalid.html63
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-overview-02-f-isvalid.html55
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-overview-03-f-isvalid.html49
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-overview-04-f-isvalid.html47
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-overview-05-f-isvalid.html60
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-defs-01-t-isvalid.html51
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-01-b-isvalid.html166
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-02-b-isvalid.html97
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-03-b-isvalid.html97
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-04-b-isvalid.html116
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-05-b-isvalid.html114
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-06-b-isvalid.html90
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-07-f-isvalid.html81
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-08-f-isvalid.html69
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-11-f-isvalid.html153
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-12-b-isvalid.html84
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-13-f-isvalid.html159
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-14-f-isvalid.html96
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-15-f-isvalid.html131
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-16-f-isvalid.html117
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-17-f-novalid.html95
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-18-f-isvalid.html130
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-19-f-novalid.html80
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-20-f-isvalid.html131
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-01-t-isvalid.html41
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-02-t-isvalid.html51
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-03-t-isvalid.html49
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-04-t-isvalid.html49
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-05-t-novalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-06-t-isvalid.html58
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-group-01-t-isvalid.html58
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-group-02-b-isvalid.html53
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-group-03-t-isvalid.html269
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-01-t-isvalid.html46
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-02-b-isvalid.html69
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-03-t-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-04-t-isvalid.html46
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-05-b-isvalid.html45
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-06-t-isvalid.html83
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-07-t-novalid.html66
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-08-t-isvalid.html50
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-09-t-isvalid.html49
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-10-t-isvalid.html50
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-11-b-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-12-b-novalid.html60
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-13-f-isvalid.html111
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-14-f-isvalid.html111
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-15-f-isvalid.html120
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-16-f-isvalid.html49
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-17-b-isvalid.html46
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-18-f-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-image-19-f-isvalid.html53
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-svg-01-f-isvalid.html114
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-svg-02-f-isvalid.html134
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-svg-03-f-isvalid.html60
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-symbol-01-b-isvalid.html60
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-use-01-t-isvalid.html99
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-use-03-t-isvalid.html61
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-use-04-b-isvalid.html54
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-use-05-b-isvalid.html70
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-use-06-b-isvalid.html51
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-use-07-b-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-use-08-b-isvalid.html57
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-use-09-b-isvalid.html67
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-use-10-f-isvalid.html121
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-use-11-f-novalid.html137
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-use-12-f-novalid.html86
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-use-13-f-isvalid.html65
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-use-14-f-isvalid.html63
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/struct-use-15-f-isvalid.html66
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-class-01-f-isvalid.html62
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-css-01-b-isvalid.html82
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-css-02-b-isvalid.html78
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-css-03-b-isvalid.html84
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-css-04-f-isvalid.html141
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-css-05-b-isvalid.html60
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-css-06-b-isvalid.html165
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-css-07-f-isvalid.html50
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-css-08-f-isvalid.html104
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-css-09-f-isvalid.html70
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-css-10-f-isvalid.html59
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-elem-01-b-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-inherit-01-b-isvalid.html61
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-01-t-isvalid.html48
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-02-f-novalid.html185
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-03-f-isvalid.html48
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-04-f-isvalid.html93
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-05-f-isvalid.html66
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/svgdom-over-01-f-novalid.html190
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-align-01-b-isvalid.html67
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-align-02-b-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-align-03-b-isvalid.html53
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-align-04-b-isvalid.html72
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-align-05-b-isvalid.html61
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-align-06-b-isvalid.html62
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-align-07-t-isvalid.html69
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-align-08-b-isvalid.html73
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-altglyph-01-b-isvalid.html100
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-altglyph-02-b-isvalid.html323
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-altglyph-03-b-isvalid.html348
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-bidi-01-t-isvalid.html49
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-deco-01-b-isvalid.html60
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-dom-01-f-isvalid.html161
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-dom-02-f-isvalid.html110
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-dom-03-f-novalid.html113
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-dom-04-f-isvalid.html149
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-dom-05-f-isvalid.html157
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-01-t-isvalid.html55
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-02-t-isvalid.html63
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-03-t-novalid.html73
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-04-t-isvalid.html59
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-05-f-novalid.html51
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-202-t-isvalid.html74
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-203-t-isvalid.html119
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-204-t-isvalid.html111
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-intro-01-t-isvalid.html64
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-intro-02-b-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-intro-03-b-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-intro-04-t-isvalid.html55
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-intro-05-t-isvalid.html54
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-intro-06-t-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-intro-07-t-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-intro-09-b-isvalid.html67
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-intro-10-f-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-intro-11-t-isvalid.html57
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-intro-12-t-isvalid.html56
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-path-01-b-isvalid.html76
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-path-02-b-isvalid.html81
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-spacing-01-b-isvalid.html52
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-text-01-b-isvalid.html147
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-text-03-b-isvalid.html78
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-text-04-t-isvalid.html183
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-text-05-t-isvalid.html157
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-text-06-t-isvalid.html108
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-text-07-t-isvalid.html47
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-text-08-b-isvalid.html48
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-text-09-t-isvalid.html47
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-text-10-t-isvalid.html68
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-text-11-t-isvalid.html72
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-text-12-t-isvalid.html167
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-tref-01-b-isvalid.html58
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-tselect-01-b-isvalid.html55
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-tselect-02-f-isvalid.html94
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-tselect-03-f-isvalid.html105
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-tspan-01-b-isvalid.html100
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/text-tspan-02-b-isvalid.html110
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/types-basic-01-f-isvalid.html64
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/types-basic-02-f-isvalid.html75
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/types-dom-01-b-isvalid.html75
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/types-dom-02-f-isvalid.html134
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/types-dom-03-b-isvalid.html69
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/types-dom-04-b-novalid.html226
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/types-dom-05-b-isvalid.html109
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/types-dom-06-f-isvalid.html119
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/types-dom-07-f-isvalid.html135
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/types-dom-08-f-isvalid.html181
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svgfittoviewbox-01-f-isvalid.html82
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svglengthlist-01-f-isvalid.html105
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svgnumberlist-01-f-isvalid.html105
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svgstringlist-01-f-isvalid.html104
-rw-r--r--testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svgtransformable-01-f-isvalid.html81
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/Makefile20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/attributes/accesskey/duplicate-key-labels-novalid.html9
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/attributes/accesskey/multi-character-key-label-novalid.html9
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/attributes/data/no-characters-after-hyphen-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/attributes/data/not-xml-serializable-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/attributes/data/value-isvalid.html7
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/attributes/lang/deprecated-tag-haswarn.html9
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/attributes/lang/empty-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/attributes/lang/extlang-bad-novalid.html9
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/attributes/lang/xmllang-different-value-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/attributes/lang/xmllang-only-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/attributes/lang/xmllang-same-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/attributes/role/unrecognized-role-name-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/attributes/spellcheck/value-bad-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/attributes/spellcheck/value-isvalid.html11
-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
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href-and-target-missing-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-pile-of-poo-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-question-mark-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-empty-hash-only-no-path-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-non-ascii-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-semicolon-question-mark-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-slash-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-192.0x00A80001-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-broken-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-fullwidth-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-percent-encoded-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-exotic-dot-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-exotic-whitespace-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-fullwidth-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-idn-unicode-han-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-ipv6-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-ipv6-port-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-is-pile-of-poo-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-colon-colon-number-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-colon-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-contains-pile-of-poo-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-chars-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-colon-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-hash-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-letter-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-number-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-slash-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-non-ascii-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-dot-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-mixed-case-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-multiple-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-slash-plus-slashes-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-slash-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-space-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-u0000-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-u0091-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-simple-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-colon-number-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-only-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-pile-of-poo-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-starts-with-pile-of-poo-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-u202E-u202D-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-uFEFF-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-unicode-han-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-0-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-00000000000000-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-00000000000000000000080-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-none-but-colon-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-contains-pile-of-poo-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-contains-question-mark-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-empty-no-path-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-no-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-host-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-host-included-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-no-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-scheme-only-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-single-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-only-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-c-bar-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-only-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-slash-only-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-uppercase-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftps-no-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftps-single-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-gopher-no-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-gopher-single-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-javascript-single-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-mailto-no-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-mailto-single-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-none-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-no-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-chars-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-colon-slashes-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-only-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-single-letter-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-single-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-slash-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-schemeless-relative-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ws-single-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-wss-no-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-wss-single-slash-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-host-port-path-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-user-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-percent-encoded-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-non-alpha-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/bdo/model-isvalid.html28
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/bdo/model-novalid.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/model-isvalid.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/blockquote/model-novalid.html31
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/br/model-isvalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/br/model-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction-whitespace-only-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/canvas/model-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/canvas/model-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/cite/model-isvalid.html24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/cite/model-novalid.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/code/model-isvalid.html22
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/code/model-novalid.html25
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dd/dd-hgroup-isvalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-0004-02-29-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-0005-02-29-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-0214-09-29-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-1900-02-29-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-1969-02-29-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-20014-09-29-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-2014-02-29-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-2100-02-29-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-2200-02-29-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-01-32-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-03-32-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-04-31-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-05-32-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-06-31-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-07-32-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-08-32-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-09-31-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-10-32-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-11-31-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-12-32-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-missing-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-one-digit-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-three-digits-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-iso8601-YYYYMMDD-no-hyphen-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-leading-bom-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-leading-whitespace-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-00-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-13-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-missing-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-one-digit-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-three-digits-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-non-ascii-digit-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-trailing-U+0000-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-trailing-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-trailing-whitespace-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-wrong-day-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-wrong-month-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-year-0000-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-year-five-digits-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-year-negative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/date-year-three-digits-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/datetime-isvalid.html33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/duration-P-form-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/duration-time-component-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-2400-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-60-minutes-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-60-seconds-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-bad-fraction-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-four-digit-fraction-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-hour-one-digit-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-hour-three-digits-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-iso8601-hh-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-iso8601-hhmm-no-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-iso8601-hhmmss-no-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-lowercase-z-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-minutes-one-digit-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-minutes-three-digits-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-missing-minutes-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-missing-seconds-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-nbsp-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-seconds-one-digit-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-seconds-three-digits-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-space-before-timezone-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-60-minutes-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-iso8601-two-digit-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-lowercase-t-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-minus-1300-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-minus-2400-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-minutes-15-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-multiple-spaces-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-non-T-character-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-offset-colon-start-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-offset-space-start-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-one-digit-hour-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-one-digit-minute-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-plus-1500-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-plus-2400-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-three-digit-hour-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-three-digit-minute-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-with-seconds-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-with-both-T-and-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-wrong-minutes-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-wrong-seconds-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-zero-digit-fraction-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/local-date-and-time-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/model-isvalid.html32
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/model-novalid.html45
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/month-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/time-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/week-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/year-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/del/yearless-date-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dfn/model-isvalid.html24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dfn/model-novalid.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dialog/model-novalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/div/model-isvalid.html20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/div/model-novalid.html27
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/article-in-dt-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/aside-in-dt-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/dd-in-template-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/div-contains-dl-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/div-contains-text-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/div-multiple-groups-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/div-splitting-groups-2-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/div-splitting-groups-3-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/div-splitting-groups-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-contains-dl-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-contains-text-2-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-contains-text-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-in-p-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-isvalid.html34
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/dt-in-template-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/empty-div-2-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/empty-div-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/first-dd-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/footer-in-dt-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/h1-in-dt-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/h2-in-dt-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/h3-in-dt-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/h4-in-dt-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/h5-in-dt-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/h6-in-dt-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/header-in-dt-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/hgroup-in-dt-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/last-dt-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/mixed-div-dt-dd-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/mixed-dt-dd-div-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/nav-in-dt-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/nested-divs-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/only-dd-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/only-dt-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/dl/section-in-dt-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/em/model-isvalid.html22
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/em/model-novalid.html25
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/height-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src-whitespace-only-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/src/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/type-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/embed/width-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/footer/nested-footer-novalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/footer/nested-header-novalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action-whitespace-only-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/h1/model-isvalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/h1/model-novalid.html29
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/h2/model-isvalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/h2/model-novalid.html29
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/h3/model-isvalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/h3/model-novalid.html29
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/h4/model-isvalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/h4/model-novalid.html29
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/h5/model-isvalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/h5/model-novalid.html29
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/h6/model-isvalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/h6/model-novalid.html29
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/header/nested-footer-novalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/header/nested-header-novalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/hr/model-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/hr/model-novalid.html28
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/i/model-isvalid.html24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/i/model-novalid.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-isvalid.html20
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-novalid.html74
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-whitespace-only-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/model-isvalid.html31
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/model-novalid.html33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src-whitespace-only-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/src/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/usemap-bad-value-novalid.html1
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/usemap-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/width-height-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/img/width-height-negative-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-address-novalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-empty-novalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-section-novalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-text-isvalid.html41
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-token-novalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-work-novalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/list-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction-whitespace-only-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src-whitespace-only-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction-whitespace-only-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value-isvalid.html69
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-empty-hash-only-no-path-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-non-ascii-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-semicolon-question-mark-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-slash-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-percent-encoded-slash-plus-slashes-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-percent-encoded-slash-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-simple-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-slash-only-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/query-empty-no-path-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-schemeless-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-0004-02-29-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-0005-02-29-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-0214-09-29-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-1900-02-29-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-1969-02-29-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-20014-09-29-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-2014-02-29-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-2100-02-29-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-2200-02-29-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-01-32-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-03-32-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-04-31-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-05-32-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-06-31-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-07-32-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-08-32-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-09-31-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-10-32-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-11-31-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-12-32-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-missing-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-one-digit-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-three-digits-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-iso8601-YYYYMMDD-no-hyphen-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-leading-bom-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-leading-whitespace-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-00-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-13-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-missing-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-one-digit-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-three-digits-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-non-ascii-digit-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-trailing-U+0000-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-trailing-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-trailing-whitespace-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-wrong-day-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-wrong-month-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-year-0000-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-year-five-digits-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-year-negative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/date-year-three-digits-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/datetime-isvalid.html33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/duration-P-form-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/duration-time-component-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-2400-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-60-minutes-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-60-seconds-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-bad-fraction-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-four-digit-fraction-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-hour-one-digit-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-hour-three-digits-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-iso8601-hh-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-iso8601-hhmm-no-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-iso8601-hhmmss-no-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-lowercase-z-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-minutes-one-digit-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-minutes-three-digits-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-missing-minutes-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-missing-seconds-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-nbsp-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-seconds-one-digit-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-seconds-three-digits-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-space-before-timezone-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-60-minutes-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-iso8601-two-digit-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-lowercase-t-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-minus-1300-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-minus-2400-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-minutes-15-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-multiple-spaces-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-non-T-character-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-offset-colon-start-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-offset-space-start-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-one-digit-hour-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-one-digit-minute-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-plus-1500-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-plus-2400-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-three-digit-hour-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-three-digit-minute-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-with-seconds-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-with-both-T-and-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-wrong-minutes-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-wrong-seconds-separator-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-zero-digit-fraction-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/local-date-and-time-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/model-isvalid.html32
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/model-novalid.html46
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/month-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/time-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/week-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/year-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ins/yearless-date-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/kbd/model-isvalid.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/kbd/model-novalid.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/keygen/challenge-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/keygen/id-bad-novalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/keygen/id-missing-novalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/keygen/id-redundant-novalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/keygen/keygen-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-bad-value-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-empty-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/keygen/model-also-novalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/keygen/model-novalid.html12
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/keygen/no-attributes-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/keygen/non-void-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/label/for-descendant-no-id-novalid.html1
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/label/for-isvalid.html1
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/label/multiple-descendants-novalid.html1
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href-missing-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href-whitespace-only-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/href/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/imagesizes-no-imagesrcset-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/imagesrcset-no-as-image-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/imagesrcset-no-preload-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/link/imagesrcset-valid.html6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/map/model-isvalid.html27
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/map/model-novalid.html27
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/mark/model-isvalid.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/meta/names-registered-isvalid.html768
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/meta/names-standard-isvalid.html21
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/meta/refresh-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/noscript/model-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data-type-missing-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data-whitespace-only-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/model-isvalid.html79
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/object/model-novalid.html81
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ol/model-isvalid.html38
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ol/model-novalid.html55
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/option/label-isvalid.html6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/option/label-novalid.html6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/option/model-isvalid.html6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/option/model-novalid.html6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/p/model-isvalid.html15
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/p/model-novalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/param/model-isvalid.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/param/model-novalid.html40
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-all-spaces-with-following-source-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-all-with-following-source-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-empty-with-following-source-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-spaces-with-following-source-srcset-novalid.html6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-uppercase-with-following-source-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-sizes-with-following-source-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-with-following-img-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-with-following-source-media-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-with-following-source-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-with-following-source-type-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/audio-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-img-end-tag-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-picture-no-end-tag-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-picture-slash-no-end-tag-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-picture-slash-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-source-end-tag-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-with-picture-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-with-source-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-with-srcset-and-picture-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-with-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/img-srcset-no-descriptor-with-sizes-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/img-srcset-w-and-x-width-sizes-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/img-srcset-w-no-sizes-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/img-type-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/img-type-with-picture-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/img-with-sizes-no-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/input-type-image-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-br-after-img-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-br-after-source-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-br-before-img-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-br-before-source-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-figure-wrapping-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-input-type-hidden-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-math-nog-img-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-noscript-after-source-no-img-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-noscript-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-p-after-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-p-before-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-p-wrapping-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-picture-before-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-picture-wrapping-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-span-after-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-span-before-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-span-wrapping-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-style-scroped-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-svg-no-img-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-svg-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-text-after-img-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-text-after-source-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-text-before-img-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-text-before-source-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-video-before-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-video-no-img-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/link-rel-icon-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-empty-picture-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-only-script-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-only-source-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-script-and-source-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-source-and-script-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/multiple-img-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/multiple-img-with-script-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/multiple-img-with-source-and-script-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/multiple-img-with-source-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/object-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-dl-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-hgroup-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-noscript-in-head-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-rp-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-ul-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-align-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-alt-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-application-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-button-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-img-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-presentation-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-region-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-border-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-crossorigin-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-height-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-hspace-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-ismap-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-isvalid.html110
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-longdesc-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-lowsrc-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-media-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-name-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-sizes-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-src-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-usemap-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-vspace-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-width-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-auto-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-comma-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-css-comment-after-plus-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-css-comment-before-unit-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-default-first-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-default-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-deg-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-dpcm-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-dpi-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-dppx-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-empty-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-foo-bar-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-grad-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-hz-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-inherit-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-initial-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-junk-in-default-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-junk-in-source-size-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-khz-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-all-and-min-width-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-all-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-bad-junk-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-general-enclosed-junk-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-min-width-no-parenthesis-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-ms-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-negative-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-no-unit-in-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-percent-in-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-rad-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-s-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-scientific-notation-negative-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-scientific-notation-non-integer-in-exponent-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-trailing-comma-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-trailing-junk-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-turn-source-size-value-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-two-defaults-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-after-img-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-align-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-alt-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-aria-role-img-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-aria-role-presentation-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-before-and-after-img-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-border-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-crossorigin-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-hspace-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-ismap-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-longdesc-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-name-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-no-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-no-srcset-with-media-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-no-srcset-with-sizes-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-no-srcset-with-type-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-src-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-src-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-srcset-h-with-sizes-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-srcset-w-and-x-with-sizes-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-srcset-w-no-sizes-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-srcset-x-with-sizes-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-type-srcset-w-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-usemap-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/source-vspace-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-broken-url-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-comma-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-css-comment-after-descriptor-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-curly-bracket-junk-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-empty-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-function-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-h-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-infinity-x-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-leading-comma-multiple-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-leading-comma-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-leading-dot-x-valid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-nan-x-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-negative-w-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-negative-x-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-negative-zero-w-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-negative-zero-x-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-non-integer-w-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-parenthesis-junk-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-pipe-junk-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-plus-w-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-plus-x-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-scientific-notation-w-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-square-bracket-junk-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-trailing-comma-multiple-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-trailing-comma-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-1x-and-omitted-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-2x-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-integer-and-decimals-x-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-w-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-uppercase-w-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-w-and-h-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-w-and-no-descriptor-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-x-and-h-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-x-and-w-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-zero-w-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-zero-x-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/svg-image-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/track-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/video-source-media-src-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/video-source-sizes-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/video-source-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/video-source-srcset-src-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/picture/video-srcset-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/pre/model-isvalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/pre/model-novalid.html26
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/model-isvalid.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/q/model-novalid.html25
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ruby/empty-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ruby/missing-rt-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/s/model-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/samp/model-isvalid.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/samp/model-novalid.html25
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/language-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src-whitespace-only-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/src/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/streams-demo-append-child-isvalid.html98
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/streams-demo-streaming-element-backpressure-isvalid.html60
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/script/streams-demo-streaming-element-isvalid.html60
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/small/model-isvalid.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/small/model-novalid.html25
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src-whitespace-only-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/source/src/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/span/model-isvalid.html23
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/span/model-novalid.html25
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/strong/model-isvalid.html22
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/strong/model-novalid.html25
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/style/html-spec-comms-isvalid.html274
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/style/model-isvalid.html17
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-as-div-child-novalid.html8
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-as-p-child-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-in-head-novalid.html6
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-model-novalid.html8
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-multiple-adjacent-novalid.html9
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/style/type-novalid.html13
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/sub/model-isvalid.html24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/sub/model-novalid.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/sup/model-isvalid.html24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/sup/model-novalid.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/table/integrity/Alexis_of_Russia-novalid.html1966
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/table/integrity/Feodor_I_of_Russia-novalid.html1772
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/table/integrity/vertical-novalid.html14
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/table/model-input-child-hidden-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/table/model-input-child-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/table/model-input-type-child-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/time/datetime-isvalid.html57
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/title/empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/title/missing-novalid.html2
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src-whitespace-only-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/track/src/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/u/model-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ul/model-isvalid.html39
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/ul/model-novalid.html55
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/var/model-isvalid.html24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/var/model-novalid.html18
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/model-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/model-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster-whitespace-only-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/elements/video/src/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/001-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/001-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/002-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/002-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/003-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/003-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/004-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/005-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/005-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/006-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/006-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/007-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/007-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/008-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/008-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/009-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/009-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/010-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/010-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/011-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/011-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/012-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/012-valid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/013-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/013-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/014-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/014-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/015-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/016-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/017-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/018-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/019-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/019-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/020-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/020-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/021-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/022-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/023-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/024-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/025-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/026-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/027-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/028-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/029-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/030-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/031-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/032-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/033-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/device-aspect-ratio-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/projection-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/source-isvalid.txt33
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/source-novalid.txt24
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/media-queries/tv-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid-empty-isvalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid-isvalid.html91
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid-scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-file-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-file-single-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-file-slash-slash-abc-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-file-triple-slash-c-bar-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype-isvalid.html69
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype-scheme-data-contains-fragment-haswarn.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-contains-hash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-empty-hash-only-no-path-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-non-ascii-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-semicolon-question-mark-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-slash-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-double-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-double-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-empty-userinfo-empty-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-empty-with-userinfo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-hostname-in-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-invalid-unicode-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-invalid-unicode-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-square-brackets-port-contains-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-u0000-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-u0000-percent-encoded-percent-encoded-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-bare-percent-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-contains-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-leading-backslash-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-leading-colon-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-leading-colon-chars-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-percent-encoded-malformed-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-percent-encoded-slash-plus-slashes-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-percent-encoded-slash-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-relative-square-brackets-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-simple-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-slash-only-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-u0091-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-999999-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-leading-colon-bracket-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-leading-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-leading-dash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-multiple-letters-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-single-letter-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/query-empty-no-path-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/query-leading-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/query-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-data-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-ftp-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-ftp-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-no-slash-colon-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-no-slash-square-bracket-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-https-no-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-https-single-slash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-schemeless-relative-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-trailing-cr-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-trailing-newline-novalid.html5
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-trailing-space-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-trailing-tab-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-backslash-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-password-bad-chars-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-password-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-username-contains-at-sign-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-username-contains-pile-of-poo-novalid.html4
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/001-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/001-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/002-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/002-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/003-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/003-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/004-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/004-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/005-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/005-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/006-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/006-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/007-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/007-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/008-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/008-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/009-isvalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/009-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/010-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/010-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/011-isvalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/011-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/source-isvalid.txt11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/mime-types/source-novalid.txt11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/obsolete/acronym-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/obsolete/applet-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/obsolete/basefont-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/obsolete/big-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/obsolete/center-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/obsolete/dir-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/obsolete/font-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/obsolete/frameset-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/obsolete/noframes-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/obsolete/profile-novalid.html11
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/obsolete/strike-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/obsolete/tt-novalid.html10
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/other/applet-novalid.html108
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/other/obj-novalid.html123
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/parser/cr-charref-novalid.html1
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/parser/range-charref-novalid.html1
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/parser/u000b-charref-novalid.html1
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/parser/u000b-novalid.html1
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/parser/u007f-charref-novalid.html1
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/parser/u10ffff-charref-novalid.html1
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/parser/ufffe-charref-novalid.html1
-rw-r--r--testing/web-platform/tests/conformance-checkers/html/parser/unassigned-charref-novalid.html1
-rw-r--r--testing/web-platform/tests/conformance-checkers/index.html113
-rw-r--r--testing/web-platform/tests/conformance-checkers/messages.json2492
-rw-r--r--testing/web-platform/tests/conformance-checkers/select/autocomplete-address-novalid.html20
-rw-r--r--testing/web-platform/tests/conformance-checkers/select/autocomplete-empty-novalid.html20
-rw-r--r--testing/web-platform/tests/conformance-checkers/select/autocomplete-isvalid.html180
-rw-r--r--testing/web-platform/tests/conformance-checkers/select/autocomplete-section-novalid.html20
-rw-r--r--testing/web-platform/tests/conformance-checkers/select/autocomplete-token-novalid.html20
-rw-r--r--testing/web-platform/tests/conformance-checkers/select/autocomplete-work-novalid.html20
-rw-r--r--testing/web-platform/tests/conformance-checkers/textarea/autocomplete-address-novalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/textarea/autocomplete-empty-novalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/textarea/autocomplete-isvalid.html80
-rw-r--r--testing/web-platform/tests/conformance-checkers/textarea/autocomplete-section-novalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/textarea/autocomplete-token-novalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/textarea/autocomplete-work-novalid.html16
-rw-r--r--testing/web-platform/tests/conformance-checkers/tools/dl.py99
-rw-r--r--testing/web-platform/tests/conformance-checkers/tools/ins-del-datetime.py175
-rw-r--r--testing/web-platform/tests/conformance-checkers/tools/picture.py366
-rw-r--r--testing/web-platform/tests/conformance-checkers/tools/url.py425
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/attributes/accesskey/003-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/attributes/accesskey/004-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/attributes/data/002-novalid.xhtml9
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/050-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/051-isvalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/052-isvalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/053-isvalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/350-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/a/100-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/address/029-isvalid.xhtml15
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/base/001-novalid.xhtml9
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/blockquote/028-isvalid.xhtml16
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/code/010-isvalid.xhtml20
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/del/041-isvalid.xhtml32
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/dialog/001-novalid.xhtml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/dl/032-isvalid.xhtml53
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/em/006-isvalid.xhtml21
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/embed/001-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/embed/002-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/embed/003-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/002-novalid.xhtml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/101-novalid.xhtml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/102-novalid.xhtml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/103-novalid.xhtml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/104-novalid.xhtml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/304-novalid.xhtml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/footer/001-novalid.xhtml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/footer/003-novalid.xhtml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/header/001-novalid.xhtml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/header/002-novalid.xhtml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/iframe/042-isvalid.xhtml19
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/iframe/042-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/img/003-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/img/004-novalid.xhtml9
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/img/043-isvalid.xhtml29
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/img/051-isvalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/img/051-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/img/052-isvalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/img/302-isvalid.xhtml9
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/input/003-novalid.xhtml9
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/ins/040-isvalid.xhtml25
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/054-also-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/054-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/055-also-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/056-also-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/056-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/057-also-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/057-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/058-also-novalid.xhtml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/058-novalid.xhtml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/059-novalid.xhtml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/060-novalid.xhtml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/061-novalid.xhtml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/154-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/157-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/359-novalid.xhtml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/360-novalid.xhtml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/361-novalid.xhtml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/keygen-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/link/001-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/map/048-isvalid.xhtml21
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/mark/009-isvalid.xhtml21
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/embed-contextmenu-isvalid.xhtml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-containing-hr-novalid.xhtml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-containing-menu-novalid.xhtml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-containing-text-novalid.xhtml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-type-context-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-type-popup-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-type-toolbar-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-valid.xhtml23
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menuitem-children-novalid.xhtml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menuitem-label-novalid.xhtml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/p-contextmenu-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/002-isvalid.xhtml26
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/003-isvalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/010-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/011-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/012-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/110-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/312-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/object/001-novalid.xhtml9
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/object/044-isvalid.xhtml75
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/ol/031-isvalid.xhtml36
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/p/025-isvalid.xhtml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/pre/027-isvalid.xhtml15
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/002-isvalid.xhtml10
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/008-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/009-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/108-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/309-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/q/013-isvalid.xhtml20
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/ruby/001-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/ruby/002-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/samp/011-isvalid.xhtml20
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/script/001-novalid.xhtml8
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/span/014-isvalid.xhtml20
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/strong/007-isvalid.xhtml20
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/strong/008-isvalid.xhtml20
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/table/201-isvalid.xhtml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/table/201-novalid.xhtml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/table/202-isvalid.xhtml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/table/202-novalid.xhtml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/table/203-isvalid.xhtml12
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/table/203-novalid.xhtml11
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/table/204-isvalid.xhtml8892
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/table/204-novalid.xhtml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/table/205-novalid.xhtml13
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/time/001-isvalid.xhtml55
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/elements/ul/030-isvalid.xhtml35
-rw-r--r--testing/web-platform/tests/conformance-checkers/xhtml/other/045-novalid.xhtml105
4428 files changed, 106700 insertions, 0 deletions
diff --git a/testing/web-platform/tests/conformance-checkers/META.yml b/testing/web-platform/tests/conformance-checkers/META.yml
new file mode 100644
index 0000000000..9b8c31d67e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/META.yml
@@ -0,0 +1,3 @@
+suggested_reviewers:
+ - sideshowbarker
+ - zcorpan
diff --git a/testing/web-platform/tests/conformance-checkers/Makefile b/testing/web-platform/tests/conformance-checkers/Makefile
new file mode 100644
index 0000000000..eea5db44dc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/Makefile
@@ -0,0 +1,57 @@
+HTML2MARKDOWN ?= html2text
+PERL ?= perl
+PERLFLAGS ?=
+FMT ?= fmt
+FMTFLAGS ?= -80
+EXPAND ?= expand
+EXPANDFLAGS ?=
+GIT? = git
+GITFLAGS ?=
+PYTHON ?= python3
+PYTHONFLAGS ?=
+CURL ?= curl
+CURLFLAGS ?=
+JAVA ?= java
+JAVAFLAGS ?=
+VNU_TEST_REPO ?= git@github.com:validator/tests.git
+ITS_REPO ?= git@github.com:w3c/its-2.0-testsuite-inputdata.git
+.PHONY: .FORCE
+
+all: README.md messages.json
+
+README.md: index.html
+ $(HTML2MARKDOWN) $(HTML2MARKDOWNFLAGS) $< \
+ | $(PERL) $(PERLFLAGS) -pe 'undef $$/; s/(\s+\n)+/\n\n/g' \
+ | $(PERL) $(PERLFLAGS) -pe 'undef $$/; s/(\n\n\n)+/\n/g' \
+ | $(FMT) $(FMTFLAGS) \
+ | $(PERL) $(PERLFLAGS) -pe 'undef $$/; s/ +(\[[0-9]+\]:)\n +/\n $$1 /g' \
+ | $(EXPAND) $(EXPANDFLAGS) > $@
+
+messages.json: .FORCE
+ $(CURL) $(CURLFLAGS) -O -L \
+ https://github.com/validator/validator/releases/download/latest/vnu.jar
+ $(JAVA) $(JAVAFLAGS) -cp vnu.jar nu.validator.client.TestRunner \
+ --ignore=html-its --write-messages $@
+ $(PYTHON) $(PYTHONFLAGS) -mjson.tool --sort-keys $@ > $@.tmp
+ mv $@.tmp $@
+
+test: .FORCE
+ $(CURL) $(CURLFLAGS) -O -L \
+ https://github.com/validator/validator/releases/download/jar/vnu.jar
+ $(JAVA) $(JAVAFLAGS) -cp vnu.jar nu.validator.client.TestRunner \
+ --ignore=html-its messages.json
+
+push:
+ cd .. \
+ && git push $(VNU_TEST_REPO) `git subtree split -P conformance-checkers`:master --force \
+ && cd -
+
+its-push:
+ cd ..\
+ && $(GIT) subtree push -P conformance-checkers/html-its/ $(ITS_REPO) master \
+ && cd -
+
+its-pull:
+ cd .. \
+ && $(GIT) pull -s subtree $(ITS_REPO) master \
+ && cd -
diff --git a/testing/web-platform/tests/conformance-checkers/README.md b/testing/web-platform/tests/conformance-checkers/README.md
new file mode 100644
index 0000000000..6bbd151a66
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/README.md
@@ -0,0 +1,13 @@
+# WPT conformance-checker tests
+
+The files in this part of the tree are not browser tests; they're documents
+intended for testing the behavior of conformance checkers (e.g., validator.nu
+and the W3C Nu Markup Validator).
+
+To update the generated tests, run `wpt update-built --include conformance-checkers`.
+
+TK: We should have here some details about the contents of the existing
+subdirectories in this tree...
+
+Curious committers should see the makefile.
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/_/780.htm b/testing/web-platform/tests/conformance-checkers/html-aria/_/780.htm
new file mode 100644
index 0000000000..7e37b720ef
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/_/780.htm
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>AT-SPI ONLY: option within listbox exposed as ROLE_MENU: option is exposed as ROLE_MENU_ITEM</title>
+ </head>
+ <body>
+ <h1>AT-SPI ONLY: option within listbox exposed as ROLE_MENU: option is exposed as ROLE_MENU_ITEM</h1>
+ <div role="combobox" aria-expanded="true" aria-label="Combobox for AT-SPI test of listbox/option mappings">
+ <input type="text" value="combobox entry field">
+ <div role="listbox" aria-label="Listbox child of combobox for AT-SPI test of listbox/option mappings">
+ <p role="option" id="test">Test option</p>
+ <p role="option">Another option</p>
+ <p role="option">A third option</p>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/ariatree.html b/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/ariatree.html
new file mode 100644
index 0000000000..d915c55d78
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/ariatree.html
@@ -0,0 +1,106 @@
+<!DOCTYPE HTML><!-- HTML 5 -->
+<html lang="en">
+<head>
+ <title>ARIA Tree Example</title>
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8">
+ <link rel="stylesheet" href="./css/treesimple.css" type="text/css">
+ <script src="./js/prototype.js"></script>
+ <script src="./js/aria.js"></script>
+ <script src="./js/init.js"></script>
+</head>
+<body>
+
+ <h1>Directions</h1>
+ <ol>
+ <li>Tab into the tree control.</li>
+ <li>Use the up/down arrow keys to change the active descendant.</li>
+ <li>Use the right/left arrow keys to expand/collapse appropriate nodes.</li>
+ </ol>
+
+ <p>Some <a href="javascript:$('tree0').focus();">focusable</a> content before the ARIA application.</p>
+
+ <div role="application">
+ <h1 id="treelabel">ARIA Tree Example</h1>
+ <ul id="tree0" role="tree" aria-labelledby="treelabel" aria-activedescendant="tree0_item0_2_0_1" tabindex="0">
+ <!-- all the ids and aria-* attributes are hardcoded here for sake of example (final version will use javascript to assign ids as needed) -->
+ <li id="tree0_item0" role="treeitem" aria-level="1" aria-expanded="true">
+ <!-- .expander becomes the javascript trigger for expand/collapse -->
+ <span class="expander"></span>
+ Animals
+ <ul role="group">
+ <li id="tree0_item0_0" role="treeitem" aria-level="2"><span>Birds</span></li>
+ <li id="tree0_item0_1" role="treeitem" aria-level="2" aria-expanded="false">
+ <span class="expander"></span>
+ Cats
+ <ul role="group">
+ <li id="tree0_item0_1_0" role="treeitem" aria-level="3">Siamese</li>
+ <li id="tree0_item0_1_1" role="treeitem" aria-level="3">Tabby</li>
+ </ul>
+ </li>
+ <li id="tree0_item0_2" role="treeitem" aria-level="2" aria-expanded="true">
+ <span class="expander"></span>
+ Dogs
+ <ul role="group">
+ <li id="tree0_item0_2_0" role="treeitem" aria-level="3" aria-expanded="true">
+ <span class="expander"></span>
+ Small Breeds
+ <ul role="group">
+ <li id="tree0_item0_2_0_0" role="treeitem" aria-level="4">Chihuahua</li>
+ <li id="tree0_item0_2_0_1" role="treeitem" aria-level="4">Italian Greyhound</li>
+ <li id="tree0_item0_2_0_2" role="treeitem" aria-level="4">Japanese Chin</li>
+ </ul>
+ </li>
+ <li id="tree0_item0_2_1" role="treeitem" aria-level="3" aria-expanded="false">
+ <span class="expander"></span>
+ Medium Breeds
+ <ul role="group">
+ <li id="tree0_item0_2_1_0" role="treeitem" aria-level="4">Beagle</li>
+ <li id="tree0_item0_2_1_1" role="treeitem" aria-level="4">Cocker Spaniel</li>
+ <li id="tree0_item0_2_1_2" role="treeitem" aria-level="4">Pit Bull</li>
+ </ul>
+ </li>
+ <li id="tree0_item0_2_2" role="treeitem" aria-level="3" aria-expanded="false">
+ <span class="expander"></span>
+ Large Breeds
+ <ul role="group">
+ <li id="tree0_item0_2_2_0" role="treeitem" aria-level="4">Afghan</li>
+ <li id="tree0_item0_2_2_1" role="treeitem" aria-level="4">Great Dane</li>
+ <li id="tree0_item0_2_2_2" role="treeitem" aria-level="4">Mastiff</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li id="tree0_item1" role="treeitem" aria-level="1" aria-expanded="true">
+ <span class="expander"></span>
+ Minerals
+ <ul role="group">
+ <li id="tree0_item1_0" role="treeitem" aria-level="2">Zinc</li>
+ <li id="tree0_item1_1" role="treeitem" aria-level="2" aria-expanded="false">
+ <span class="expander"></span>
+ Gold
+ <ul role="group">
+ <li id="tree0_item1_1_0" role="treeitem" aria-level="3">Yellow Gold</li>
+ <li id="tree0_item1_1_1" role="treeitem" aria-level="3">White Gold</li>
+ </ul>
+ </li>
+ <li id="tree0_item1_2" role="treeitem" aria-level="2">Silver</li>
+ </ul>
+ </li>
+ <li id="tree0_item2" role="treeitem" aria-level="1" aria-expanded="true">
+ <span class="expander"></span>
+ Vegetables
+ <ul role="group">
+ <li id="tree0_item2_0" role="treeitem" aria-level="2">Carrot</li>
+ <li id="tree0_item2_1" role="treeitem" aria-level="2">Tomato</li>
+ <li id="tree0_item2_2" role="treeitem" aria-level="2">Lettuce</li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+
+ <p>More <a href="javascript:$('tree0').focus();">focusable</a> content after the ARIA application.</p>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/ariatree2.html b/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/ariatree2.html
new file mode 100644
index 0000000000..3efe246488
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/ariatree2.html
@@ -0,0 +1,124 @@
+<!DOCTYPE HTML><!-- HTML 5 -->
+<html lang="en">
+<head>
+ <title>ARIA Tree Example</title>
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8">
+ <link rel="stylesheet" href="./css/treebox.css" type="text/css">
+ <script src="./js/prototype.js"></script>
+ <script src="./js/aria.js"></script>
+ <script src="./js/init.js"></script>
+</head>
+<body>
+
+ <h1>Directions</h1>
+ <ol>
+ <li>Tab into the tree control.</li>
+ <li>Use the up/down arrow keys to change the active descendant.</li>
+ <li>Use the right/left arrow keys to expand/collapse appropriate nodes.</li>
+ </ol>
+
+ <p>Some <a href="javascript:$('tree0').focus();">focusable</a> content before the ARIA application.</p>
+
+ <div role="application">
+ <h1 id="treelabel">ARIA Tree Example</h1>
+ <ul id="tree0" role="tree" aria-labelledby="treelabel" aria-activedescendant="tree0_item0_2_0_1" tabindex="0">
+ <!-- all the ids and aria-* attributes are hardcoded here for sake of example (final version will use javascript to assign ids as needed) -->
+ <li id="tree0_item0" role="treeitem" aria-level="1" aria-expanded="true">
+ <!-- .expander becomes the javascript trigger for expand/collapse -->
+ <span>
+ <span class="expander"></span>
+ Animals
+ </span>
+ <ul role="group">
+ <li id="tree0_item0_0" role="treeitem" aria-level="2"><span>Birds</span></li>
+ <li id="tree0_item0_1" role="treeitem" aria-level="2" aria-expanded="false">
+ <span>
+ <span class="expander"></span>
+ Cats
+ </span>
+ <ul role="group">
+ <li id="tree0_item0_1_0" role="treeitem" aria-level="3"><span>Siamese</span></li>
+ <li id="tree0_item0_1_1" role="treeitem" aria-level="3"><span>Tabby</span></li>
+ </ul>
+ </li>
+ <li id="tree0_item0_2" role="treeitem" aria-level="2" aria-expanded="true">
+ <span>
+ <span class="expander"></span>
+ Dogs
+ </span>
+ <ul role="group">
+ <li id="tree0_item0_2_0" role="treeitem" aria-level="3" aria-expanded="true">
+ <span>
+ <span class="expander"></span>
+ Small Breeds
+ </span>
+ <ul role="group">
+ <li id="tree0_item0_2_0_0" role="treeitem" aria-level="4"><span>Chihuahua</span></li>
+ <li id="tree0_item0_2_0_1" role="treeitem" aria-level="4"><span>Italian Greyhound</span></li>
+ <li id="tree0_item0_2_0_2" role="treeitem" aria-level="4"><span>Japanese Chin</span></li>
+ </ul>
+ </li>
+ <li id="tree0_item0_2_1" role="treeitem" aria-level="3" aria-expanded="false">
+ <span>
+ <span class="expander"></span>
+ Medium Breeds
+ </span>
+ <ul role="group">
+ <li id="tree0_item0_2_1_0" role="treeitem" aria-level="4"><span>Beagle</span></li>
+ <li id="tree0_item0_2_1_1" role="treeitem" aria-level="4"><span>Cocker Spaniel</span></li>
+ <li id="tree0_item0_2_1_2" role="treeitem" aria-level="4"><span>Pit Bull</span></li>
+ </ul>
+ </li>
+ <li id="tree0_item0_2_2" role="treeitem" aria-level="3" aria-expanded="false">
+ <span>
+ <span class="expander"></span>
+ Large Breeds
+ </span>
+ <ul role="group">
+ <li id="tree0_item0_2_2_0" role="treeitem" aria-level="4"><span>Afghan</span></li>
+ <li id="tree0_item0_2_2_1" role="treeitem" aria-level="4"><span>Great Dane</span></li>
+ <li id="tree0_item0_2_2_2" role="treeitem" aria-level="4"><span>Mastiff</span></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li id="tree0_item1" role="treeitem" aria-level="1" aria-expanded="true">
+ <span>
+ <span class="expander"></span>
+ Minerals
+ </span>
+ <ul role="group">
+ <li id="tree0_item1_0" role="treeitem" aria-level="2"><span>Zinc</span></li>
+ <li id="tree0_item1_1" role="treeitem" aria-level="2" aria-expanded="false">
+ <span>
+ <span class="expander"></span>
+ Gold
+ </span>
+ <ul role="group">
+ <li id="tree0_item1_1_0" role="treeitem" aria-level="3"><span>Yellow Gold</span></li>
+ <li id="tree0_item1_1_1" role="treeitem" aria-level="3"><span>White Gold</span></li>
+ </ul>
+ </li>
+ <li id="tree0_item1_2" role="treeitem" aria-level="2"><span>Silver</span></li>
+ </ul>
+ </li>
+ <li id="tree0_item2" role="treeitem" aria-level="1" aria-expanded="true">
+ <span>
+ <span class="expander"></span>
+ Vegetables
+ </span>
+ <ul role="group">
+ <li id="tree0_item2_0" role="treeitem" aria-level="2"><span>Carrot</span></li>
+ <li id="tree0_item2_1" role="treeitem" aria-level="2"><span>Tomato</span></li>
+ <li id="tree0_item2_2" role="treeitem" aria-level="2"><span>Lettuce</span></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+
+ <p>More <a href="javascript:$('tree0').focus();">focusable</a> content after the ARIA application.</p>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/css/img/expander.gif b/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/css/img/expander.gif
new file mode 100644
index 0000000000..e305b9dd73
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/css/img/expander.gif
Binary files differ
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/css/treebox.css b/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/css/treebox.css
new file mode 100644
index 0000000000..5064fa308a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/css/treebox.css
@@ -0,0 +1,65 @@
+
+/* variant of treesimple.css, that adds slightly more complex styling. */
+
+html, body {
+ color:#333;
+ background-color:#fff;
+ font-family:"helvetica neue", arial, helvetica, sans-serif;
+ font-size:12px;
+ line-height:1.4em;
+}
+h1{
+ font-size:14px;
+}
+[role="tree"]{
+ border:solid 1px #000;
+ width:300px; /* hardcoded for example */
+ cursor:default;
+}
+ul[role="tree"], [role="tree"] li, [role="tree"] ul {
+ display:block;
+ list-style:none;
+ margin:0;
+ padding:0;
+}
+li[role="treeitem"] {
+ position:relative;
+}
+
+[role="treeitem"] > span{ display:block; }
+
+/* looks kinda redundant, but is necessary to get the full left bleed on sub-level items */
+[role="treeitem"] > span{ padding-left:15px; }
+[role="treeitem"] [role="treeitem"] > span{ padding-left:30px; }
+[role="treeitem"] [role="treeitem"] [role="treeitem"] > span{ padding-left:45px; }
+[role="treeitem"] [role="treeitem"] [role="treeitem"] [role="treeitem"] > span{ padding-left:60px; }
+[role="treeitem"] [role="treeitem"] [role="treeitem"] [role="treeitem"] [role="treeitem"] > span{ padding-left:75px; }
+
+.expander {
+ display:block;
+ position:absolute;
+ left:2px;
+ top:0.3em;
+ width:9px;
+ height:9px;
+ background:transparent url(./img/expander.gif) -9px 0 no-repeat;
+}
+[aria-expanded="false"] > * > .expander {
+ background-position:0 0;
+}
+[role="treeitem"] [role="treeitem"] .expander { left:17px; }
+[role="treeitem"] [role="treeitem"] [role="treeitem"] .expander { left:32px; }
+[role="treeitem"] [role="treeitem"] [role="treeitem"] [role="treeitem"] .expander { left:47px; }
+[role="treeitem"] [role="treeitem"] [role="treeitem"] [role="treeitem"] [role="treeitem"] .expander { left:62px; }
+
+
+[aria-expanded="false"] [role="group"] {
+ display:none;
+}
+[role="tree"] .activedescendant > span {
+ background-color:#ccc;
+}
+[role="tree"]:focus .activedescendant > span {
+ color:#fff;
+ background-color:#03c;
+}
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/css/treesimple.css b/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/css/treesimple.css
new file mode 100644
index 0000000000..835d4e1c3b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/css/treesimple.css
@@ -0,0 +1,50 @@
+
+html, body {
+ color:#333;
+ background-color:#fff;
+ font-family:"helvetica neue", arial, helvetica, sans-serif;
+ font-size:12px;
+ line-height:1.4em;
+}
+h1{
+ font-size:14px;
+}
+[role="tree"]{
+ cursor:default;
+}
+ul[role="tree"], [role="tree"] li, [role="tree"] ul {
+ display:block;
+ list-style:none;
+ margin:0;
+ padding:0;
+}
+li[role="treeitem"] {
+ position:relative;
+ padding-left:15px;
+}
+.expander {
+ display:block;
+ position:absolute;
+ left:2px;
+ top:0.3em;
+ width:9px;
+ height:9px;
+ background:transparent url(./img/expander.gif) -9px 0 no-repeat;
+}
+[aria-expanded="false"] > * > .expander {
+ background-position:0 0;
+}
+[aria-expanded="false"] [role="group"] {
+ display:none;
+}
+[role="tree"] .activedescendant {
+ font-weight:bold;
+ color:#000;
+}
+[role="tree"]:focus .activedescendant{
+ color:#03c;
+}
+[role="tree"] .activedescendant [role="group"] {
+ font-weight:normal;
+ color:#000;
+}
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/js/aria.js b/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/js/aria.js
new file mode 100644
index 0000000000..bf3bc5399e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/js/aria.js
@@ -0,0 +1,158 @@
+
+/* Aria Singleton */
+var Aria = {
+ Trees: new Array(), // instances of Aria.Tree Class
+ isEnabled: function(inNode){
+ // todo: this may need to check isEnabled on all parentNodes, inheritence of aria-enabled is ambiguous
+ if(inNode.getAttribute('aria-enabled') && inNode.getAttribute('aria-enabled').toLowerCase()=='false') return false;
+ else return true;
+ },
+ isExpanded: function(inNode){
+ if(inNode.getAttribute('aria-expanded') && inNode.getAttribute('aria-expanded').toLowerCase()=='false') return false;
+ else return true;
+ },
+ isTreeItem: function(inNode){
+ if(inNode.getAttribute('role') && inNode.getAttribute('role').toLowerCase()=='treeitem') return true;
+ else return false;
+ }
+};
+
+Aria.Tree = Class.create();
+Aria.Tree.prototype = {
+ initialize: function(inNode){
+ this.el = $(inNode);
+ this.index = Aria.Trees.length; // each tree should know its index in the Aria singleton's list, in order to concatenate id strings
+ this.strActiveDescendant = this.el.getAttribute('aria-activedescendant');
+ this.strDefaultActiveDescendant = 'tree'+this.index+'_item0'; // default first item
+ if(!$(this.strActiveDescendant)) this.strActiveDescendant = this.strDefaultActiveDescendant; // set to default if no existing activedescendant
+ this.setActiveDescendant($(this.strActiveDescendant));
+
+ // set up event delegation on the tree node
+ Event.observe(this.el, 'click', this.handleClick.bindAsEventListener(this));
+ Event.observe(this.el, 'keydown', this.handleKeyPress.bindAsEventListener(this)); //webkit doesn't send keypress events for arrow keys, so use keydown instead
+
+ },
+ getActiveDescendant: function(inNode){
+ if(inNode){ // if inNode (from event target), sets the activedescendant to nearest ancestor treeitem
+ var el = $(inNode);
+ while(el != this.el){
+ if(Aria.isTreeItem(el)) break; // exit the loop; we have the treeitem
+ el = el.parentNode;
+ }
+ if(el == this.el) {
+ this.setActiveDescendant(); // set to default activedescendant
+ } else {
+ this.setActiveDescendant(el);
+ return el;
+ }
+ } else {
+ return $(this.el.getAttribute('aria-activedescendant'));
+ }
+ },
+ getNextTreeItem: function(inNode){
+ var el = $(inNode);
+ var originalElm = $(inNode);
+ while(!Aria.isTreeItem(el) || el == originalElm){
+ if(Aria.isExpanded(el) && el.down()){ // should be el.down('[role="treeitem"]');
+ var elements = el.getElementsByTagName('*');
+ for(var i=0, c=elements.length; i<c; i++){
+ if(Aria.isTreeItem(elements[i])) return elements[i];
+ }
+ }
+ if(el.next()){
+ el = el.next();
+ } else {
+ while(!el.parentNode.next() && el.parentNode != this.el){
+ el = el.parentNode;
+ }
+ if(el.parentNode == this.el) return originalElm; // if no next items in tree, return current treeitem
+ else el = el.parentNode.next();
+ }
+ }
+ return el;
+ },
+ getPreviousTreeItem: function(inNode){
+ var el = $(inNode);
+ var originalElm = $(inNode);
+ while(!Aria.isTreeItem(el) || el == originalElm){
+ if(el.previous()){
+ el = el.previous();
+ // recursively choose last child node of previous el, as long as it's not in an collapsed node
+ if (el.down() && Aria.isExpanded(el)){
+ el = el.down();
+ while (el.next() || (el.down() && Aria.isExpanded(el))){
+ if (el.next()) el = el.next();
+ else el = el.down();
+ }
+ }
+ } else {
+ if(el.parentNode == this.el) return originalElm; // if no previous items in tree, return current treeitem
+ el = el.parentNode;
+ }
+ }
+ if(el == this.el) return originalElm; // if no previous items in tree, return current treeitem
+ return el;
+ },
+ handleClick: function(inEvent){
+ var target = inEvent.target; // get the click target
+ var el = this.getActiveDescendant(target);
+ if(target.className.indexOf('expander')>-1){ // if it's an expander widget
+ this.toggleExpanded(el); // toggle the aria-expanded attribute on activedescendant
+ Event.stop(inEvent); // and stop the event
+ }
+ },
+ handleKeyPress: function(inEvent){
+ switch(inEvent.keyCode){
+ // case Event.KEY_PAGEUP: break;
+ // case Event.KEY_PAGEDOWN: break;
+ // case Event.KEY_END: break;
+ // case Event.KEY_HOME: break;
+ case Event.KEY_LEFT: this.keyLeft(); break;
+ case Event.KEY_UP: this.keyUp(); break;
+ case Event.KEY_RIGHT: this.keyRight(); break;
+ case Event.KEY_DOWN: this.keyDown(); break;
+ default:
+ return;
+ }
+ Event.stop(inEvent);
+ },
+ keyLeft: function(){
+ var el = this.activeDescendant;
+ if(Aria.isExpanded(el)){
+ el.setAttribute('aria-expanded','false');
+ this.setActiveDescendant(this.activeDescendant);
+ }
+ },
+ keyUp: function(){
+ var el = this.activeDescendant;
+ this.setActiveDescendant(this.getPreviousTreeItem(el));
+ },
+ keyRight: function(){
+ var el = this.activeDescendant;
+ if(!Aria.isExpanded(el)){
+ el.setAttribute('aria-expanded','true');
+ this.setActiveDescendant(this.activeDescendant);
+ }
+ },
+ keyDown: function(){
+ var el = this.activeDescendant;
+ this.setActiveDescendant(this.getNextTreeItem(el));
+ },
+ setActiveDescendant: function(inNode){
+ Element.removeClassName(this.activeDescendant,'activedescendant')
+ if($(inNode)) this.activeDescendant = $(inNode);
+ else this.activeDescendant = $(this.strDefaultActiveDescendant);
+ Element.addClassName(this.activeDescendant,'activedescendant')
+ this.strActiveDescendant = this.activeDescendant.id;
+ this.el.setAttribute('aria-activedescendant', this.activeDescendant.id);
+ },
+ toggleExpanded: function(inNode){
+ var el = $(inNode);
+ if(Aria.isExpanded(el)){
+ el.setAttribute('aria-expanded','false');
+ } else {
+ el.setAttribute('aria-expanded','true');
+ }
+ this.setActiveDescendant(el);
+ }
+};
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/js/init.js b/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/js/init.js
new file mode 100644
index 0000000000..c4e507f1f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/js/init.js
@@ -0,0 +1,8 @@
+function myLoad(){
+ $$('[role="tree"]').each(function(elm){
+ // for each node where [role="tree"], create a new Aria.Tree instance and append it to array Aria.Trees
+ Aria.Trees.push(new Aria.Tree(elm));
+ });
+}
+Event.observe(window, 'load', myLoad); // will probably use onDOMContentLoaded instead of onLoad
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/js/prototype.js b/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/js/prototype.js
new file mode 100644
index 0000000000..c14b177230
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/_functional/tree/js/prototype.js
@@ -0,0 +1,4180 @@
+/* Prototype JavaScript framework, version 1.6.0
+ * (c) 2005-2007 Sam Stephenson
+ *
+ * Prototype is freely distributable under the terms of an MIT-style license.
+ * For details, see the Prototype web site: http://www.prototypejs.org/
+ *
+ *--------------------------------------------------------------------------*/
+
+var Prototype = {
+ Version: '1.6.0',
+
+ Browser: {
+ IE: !!(window.attachEvent && !window.opera),
+ Opera: !!window.opera,
+ WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
+ Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') == -1,
+ MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
+ },
+
+ BrowserFeatures: {
+ XPath: !!document.evaluate,
+ ElementExtensions: !!window.HTMLElement,
+ SpecificElementExtensions:
+ document.createElement('div').__proto__ &&
+ document.createElement('div').__proto__ !==
+ document.createElement('form').__proto__
+ },
+
+ ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
+ JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,
+
+ emptyFunction: function() { },
+ K: function(x) { return x }
+};
+
+if (Prototype.Browser.MobileSafari)
+ Prototype.BrowserFeatures.SpecificElementExtensions = false;
+
+if (Prototype.Browser.WebKit)
+ Prototype.BrowserFeatures.XPath = false;
+
+/* Based on Alex Arnell's inheritance implementation. */
+var Class = {
+ create: function() {
+ var parent = null, properties = $A(arguments);
+ if (Object.isFunction(properties[0]))
+ parent = properties.shift();
+
+ function klass() {
+ this.initialize.apply(this, arguments);
+ }
+
+ Object.extend(klass, Class.Methods);
+ klass.superclass = parent;
+ klass.subclasses = [];
+
+ if (parent) {
+ var subclass = function() { };
+ subclass.prototype = parent.prototype;
+ klass.prototype = new subclass;
+ parent.subclasses.push(klass);
+ }
+
+ for (var i = 0; i < properties.length; i++)
+ klass.addMethods(properties[i]);
+
+ if (!klass.prototype.initialize)
+ klass.prototype.initialize = Prototype.emptyFunction;
+
+ klass.prototype.constructor = klass;
+
+ return klass;
+ }
+};
+
+Class.Methods = {
+ addMethods: function(source) {
+ var ancestor = this.superclass && this.superclass.prototype;
+ var properties = Object.keys(source);
+
+ if (!Object.keys({ toString: true }).length)
+ properties.push("toString", "valueOf");
+
+ for (var i = 0, length = properties.length; i < length; i++) {
+ var property = properties[i], value = source[property];
+ if (ancestor && Object.isFunction(value) &&
+ value.argumentNames().first() == "$super") {
+ var method = value, value = Object.extend((function(m) {
+ return function() { return ancestor[m].apply(this, arguments) };
+ })(property).wrap(method), {
+ valueOf: function() { return method },
+ toString: function() { return method.toString() }
+ });
+ }
+ this.prototype[property] = value;
+ }
+
+ return this;
+ }
+};
+
+var Abstract = { };
+
+Object.extend = function(destination, source) {
+ for (var property in source)
+ destination[property] = source[property];
+ return destination;
+};
+
+Object.extend(Object, {
+ inspect: function(object) {
+ try {
+ if (object === undefined) return 'undefined';
+ if (object === null) return 'null';
+ return object.inspect ? object.inspect() : object.toString();
+ } catch (e) {
+ if (e instanceof RangeError) return '...';
+ throw e;
+ }
+ },
+
+ toJSON: function(object) {
+ var type = typeof object;
+ switch (type) {
+ case 'undefined':
+ case 'function':
+ case 'unknown': return;
+ case 'boolean': return object.toString();
+ }
+
+ if (object === null) return 'null';
+ if (object.toJSON) return object.toJSON();
+ if (Object.isElement(object)) return;
+
+ var results = [];
+ for (var property in object) {
+ var value = Object.toJSON(object[property]);
+ if (value !== undefined)
+ results.push(property.toJSON() + ': ' + value);
+ }
+
+ return '{' + results.join(', ') + '}';
+ },
+
+ toQueryString: function(object) {
+ return $H(object).toQueryString();
+ },
+
+ toHTML: function(object) {
+ return object && object.toHTML ? object.toHTML() : String.interpret(object);
+ },
+
+ keys: function(object) {
+ var keys = [];
+ for (var property in object)
+ keys.push(property);
+ return keys;
+ },
+
+ values: function(object) {
+ var values = [];
+ for (var property in object)
+ values.push(object[property]);
+ return values;
+ },
+
+ clone: function(object) {
+ return Object.extend({ }, object);
+ },
+
+ isElement: function(object) {
+ return object && object.nodeType == 1;
+ },
+
+ isArray: function(object) {
+ return object && object.constructor === Array;
+ },
+
+ isHash: function(object) {
+ return object instanceof Hash;
+ },
+
+ isFunction: function(object) {
+ return typeof object == "function";
+ },
+
+ isString: function(object) {
+ return typeof object == "string";
+ },
+
+ isNumber: function(object) {
+ return typeof object == "number";
+ },
+
+ isUndefined: function(object) {
+ return typeof object == "undefined";
+ }
+});
+
+Object.extend(Function.prototype, {
+ argumentNames: function() {
+ var names = this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").invoke("strip");
+ return names.length == 1 && !names[0] ? [] : names;
+ },
+
+ bind: function() {
+ if (arguments.length < 2 && arguments[0] === undefined) return this;
+ var __method = this, args = $A(arguments), object = args.shift();
+ return function() {
+ return __method.apply(object, args.concat($A(arguments)));
+ }
+ },
+
+ bindAsEventListener: function() {
+ var __method = this, args = $A(arguments), object = args.shift();
+ return function(event) {
+ return __method.apply(object, [event || window.event].concat(args));
+ }
+ },
+
+ curry: function() {
+ if (!arguments.length) return this;
+ var __method = this, args = $A(arguments);
+ return function() {
+ return __method.apply(this, args.concat($A(arguments)));
+ }
+ },
+
+ delay: function() {
+ var __method = this, args = $A(arguments), timeout = args.shift() * 1000;
+ return window.setTimeout(function() {
+ return __method.apply(__method, args);
+ }, timeout);
+ },
+
+ wrap: function(wrapper) {
+ var __method = this;
+ return function() {
+ return wrapper.apply(this, [__method.bind(this)].concat($A(arguments)));
+ }
+ },
+
+ methodize: function() {
+ if (this._methodized) return this._methodized;
+ var __method = this;
+ return this._methodized = function() {
+ return __method.apply(null, [this].concat($A(arguments)));
+ };
+ }
+});
+
+Function.prototype.defer = Function.prototype.delay.curry(0.01);
+
+Date.prototype.toJSON = function() {
+ return '"' + this.getUTCFullYear() + '-' +
+ (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
+ this.getUTCDate().toPaddedString(2) + 'T' +
+ this.getUTCHours().toPaddedString(2) + ':' +
+ this.getUTCMinutes().toPaddedString(2) + ':' +
+ this.getUTCSeconds().toPaddedString(2) + 'Z"';
+};
+
+var Try = {
+ these: function() {
+ var returnValue;
+
+ for (var i = 0, length = arguments.length; i < length; i++) {
+ var lambda = arguments[i];
+ try {
+ returnValue = lambda();
+ break;
+ } catch (e) { }
+ }
+
+ return returnValue;
+ }
+};
+
+RegExp.prototype.match = RegExp.prototype.test;
+
+RegExp.escape = function(str) {
+ return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
+};
+
+/*--------------------------------------------------------------------------*/
+
+var PeriodicalExecuter = Class.create({
+ initialize: function(callback, frequency) {
+ this.callback = callback;
+ this.frequency = frequency;
+ this.currentlyExecuting = false;
+
+ this.registerCallback();
+ },
+
+ registerCallback: function() {
+ this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
+ },
+
+ execute: function() {
+ this.callback(this);
+ },
+
+ stop: function() {
+ if (!this.timer) return;
+ clearInterval(this.timer);
+ this.timer = null;
+ },
+
+ onTimerEvent: function() {
+ if (!this.currentlyExecuting) {
+ try {
+ this.currentlyExecuting = true;
+ this.execute();
+ } finally {
+ this.currentlyExecuting = false;
+ }
+ }
+ }
+});
+Object.extend(String, {
+ interpret: function(value) {
+ return value == null ? '' : String(value);
+ },
+ specialChar: {
+ '\b': '\\b',
+ '\t': '\\t',
+ '\n': '\\n',
+ '\f': '\\f',
+ '\r': '\\r',
+ '\\': '\\\\'
+ }
+});
+
+Object.extend(String.prototype, {
+ gsub: function(pattern, replacement) {
+ var result = '', source = this, match;
+ replacement = arguments.callee.prepareReplacement(replacement);
+
+ while (source.length > 0) {
+ if (match = source.match(pattern)) {
+ result += source.slice(0, match.index);
+ result += String.interpret(replacement(match));
+ source = source.slice(match.index + match[0].length);
+ } else {
+ result += source, source = '';
+ }
+ }
+ return result;
+ },
+
+ sub: function(pattern, replacement, count) {
+ replacement = this.gsub.prepareReplacement(replacement);
+ count = count === undefined ? 1 : count;
+
+ return this.gsub(pattern, function(match) {
+ if (--count < 0) return match[0];
+ return replacement(match);
+ });
+ },
+
+ scan: function(pattern, iterator) {
+ this.gsub(pattern, iterator);
+ return String(this);
+ },
+
+ truncate: function(length, truncation) {
+ length = length || 30;
+ truncation = truncation === undefined ? '...' : truncation;
+ return this.length > length ?
+ this.slice(0, length - truncation.length) + truncation : String(this);
+ },
+
+ strip: function() {
+ return this.replace(/^\s+/, '').replace(/\s+$/, '');
+ },
+
+ stripTags: function() {
+ return this.replace(/<\/?[^>]+>/gi, '');
+ },
+
+ stripScripts: function() {
+ return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
+ },
+
+ extractScripts: function() {
+ var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
+ var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
+ return (this.match(matchAll) || []).map(function(scriptTag) {
+ return (scriptTag.match(matchOne) || ['', ''])[1];
+ });
+ },
+
+ evalScripts: function() {
+ return this.extractScripts().map(function(script) { return eval(script) });
+ },
+
+ escapeHTML: function() {
+ var self = arguments.callee;
+ self.text.data = this;
+ return self.div.innerHTML;
+ },
+
+ unescapeHTML: function() {
+ var div = new Element('div');
+ div.innerHTML = this.stripTags();
+ return div.childNodes[0] ? (div.childNodes.length > 1 ?
+ $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) :
+ div.childNodes[0].nodeValue) : '';
+ },
+
+ toQueryParams: function(separator) {
+ var match = this.strip().match(/([^?#]*)(#.*)?$/);
+ if (!match) return { };
+
+ return match[1].split(separator || '&').inject({ }, function(hash, pair) {
+ if ((pair = pair.split('='))[0]) {
+ var key = decodeURIComponent(pair.shift());
+ var value = pair.length > 1 ? pair.join('=') : pair[0];
+ if (value != undefined) value = decodeURIComponent(value);
+
+ if (key in hash) {
+ if (!Object.isArray(hash[key])) hash[key] = [hash[key]];
+ hash[key].push(value);
+ }
+ else hash[key] = value;
+ }
+ return hash;
+ });
+ },
+
+ toArray: function() {
+ return this.split('');
+ },
+
+ succ: function() {
+ return this.slice(0, this.length - 1) +
+ String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
+ },
+
+ times: function(count) {
+ return count < 1 ? '' : new Array(count + 1).join(this);
+ },
+
+ camelize: function() {
+ var parts = this.split('-'), len = parts.length;
+ if (len == 1) return parts[0];
+
+ var camelized = this.charAt(0) == '-'
+ ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)
+ : parts[0];
+
+ for (var i = 1; i < len; i++)
+ camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1);
+
+ return camelized;
+ },
+
+ capitalize: function() {
+ return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
+ },
+
+ underscore: function() {
+ return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase();
+ },
+
+ dasherize: function() {
+ return this.gsub(/_/,'-');
+ },
+
+ inspect: function(useDoubleQuotes) {
+ var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) {
+ var character = String.specialChar[match[0]];
+ return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16);
+ });
+ if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"';
+ return "'" + escapedString.replace(/'/g, '\\\'') + "'";
+ },
+
+ toJSON: function() {
+ return this.inspect(true);
+ },
+
+ unfilterJSON: function(filter) {
+ return this.sub(filter || Prototype.JSONFilter, '#{1}');
+ },
+
+ isJSON: function() {
+ var str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');
+ return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
+ },
+
+ evalJSON: function(sanitize) {
+ var json = this.unfilterJSON();
+ try {
+ if (!sanitize || json.isJSON()) return eval('(' + json + ')');
+ } catch (e) { }
+ throw new SyntaxError('Badly formed JSON string: ' + this.inspect());
+ },
+
+ include: function(pattern) {
+ return this.indexOf(pattern) > -1;
+ },
+
+ startsWith: function(pattern) {
+ return this.indexOf(pattern) === 0;
+ },
+
+ endsWith: function(pattern) {
+ var d = this.length - pattern.length;
+ return d >= 0 && this.lastIndexOf(pattern) === d;
+ },
+
+ empty: function() {
+ return this == '';
+ },
+
+ blank: function() {
+ return /^\s*$/.test(this);
+ },
+
+ interpolate: function(object, pattern) {
+ return new Template(this, pattern).evaluate(object);
+ }
+});
+
+if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, {
+ escapeHTML: function() {
+ return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
+ },
+ unescapeHTML: function() {
+ return this.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');
+ }
+});
+
+String.prototype.gsub.prepareReplacement = function(replacement) {
+ if (Object.isFunction(replacement)) return replacement;
+ var template = new Template(replacement);
+ return function(match) { return template.evaluate(match) };
+};
+
+String.prototype.parseQuery = String.prototype.toQueryParams;
+
+Object.extend(String.prototype.escapeHTML, {
+ div: document.createElement('div'),
+ text: document.createTextNode('')
+});
+
+with (String.prototype.escapeHTML) div.appendChild(text);
+
+var Template = Class.create({
+ initialize: function(template, pattern) {
+ this.template = template.toString();
+ this.pattern = pattern || Template.Pattern;
+ },
+
+ evaluate: function(object) {
+ if (Object.isFunction(object.toTemplateReplacements))
+ object = object.toTemplateReplacements();
+
+ return this.template.gsub(this.pattern, function(match) {
+ if (object == null) return '';
+
+ var before = match[1] || '';
+ if (before == '\\') return match[2];
+
+ var ctx = object, expr = match[3];
+ var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/, match = pattern.exec(expr);
+ if (match == null) return before;
+
+ while (match != null) {
+ var comp = match[1].startsWith('[') ? match[2].gsub('\\\\]', ']') : match[1];
+ ctx = ctx[comp];
+ if (null == ctx || '' == match[3]) break;
+ expr = expr.substring('[' == match[3] ? match[1].length : match[0].length);
+ match = pattern.exec(expr);
+ }
+
+ return before + String.interpret(ctx);
+ }.bind(this));
+ }
+});
+Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
+
+var $break = { };
+
+var Enumerable = {
+ each: function(iterator, context) {
+ var index = 0;
+ iterator = iterator.bind(context);
+ try {
+ this._each(function(value) {
+ iterator(value, index++);
+ });
+ } catch (e) {
+ if (e != $break) throw e;
+ }
+ return this;
+ },
+
+ eachSlice: function(number, iterator, context) {
+ iterator = iterator ? iterator.bind(context) : Prototype.K;
+ var index = -number, slices = [], array = this.toArray();
+ while ((index += number) < array.length)
+ slices.push(array.slice(index, index+number));
+ return slices.collect(iterator, context);
+ },
+
+ all: function(iterator, context) {
+ iterator = iterator ? iterator.bind(context) : Prototype.K;
+ var result = true;
+ this.each(function(value, index) {
+ result = result && !!iterator(value, index);
+ if (!result) throw $break;
+ });
+ return result;
+ },
+
+ any: function(iterator, context) {
+ iterator = iterator ? iterator.bind(context) : Prototype.K;
+ var result = false;
+ this.each(function(value, index) {
+ if (result = !!iterator(value, index))
+ throw $break;
+ });
+ return result;
+ },
+
+ collect: function(iterator, context) {
+ iterator = iterator ? iterator.bind(context) : Prototype.K;
+ var results = [];
+ this.each(function(value, index) {
+ results.push(iterator(value, index));
+ });
+ return results;
+ },
+
+ detect: function(iterator, context) {
+ iterator = iterator.bind(context);
+ var result;
+ this.each(function(value, index) {
+ if (iterator(value, index)) {
+ result = value;
+ throw $break;
+ }
+ });
+ return result;
+ },
+
+ findAll: function(iterator, context) {
+ iterator = iterator.bind(context);
+ var results = [];
+ this.each(function(value, index) {
+ if (iterator(value, index))
+ results.push(value);
+ });
+ return results;
+ },
+
+ grep: function(filter, iterator, context) {
+ iterator = iterator ? iterator.bind(context) : Prototype.K;
+ var results = [];
+
+ if (Object.isString(filter))
+ filter = new RegExp(filter);
+
+ this.each(function(value, index) {
+ if (filter.match(value))
+ results.push(iterator(value, index));
+ });
+ return results;
+ },
+
+ include: function(object) {
+ if (Object.isFunction(this.indexOf))
+ if (this.indexOf(object) != -1) return true;
+
+ var found = false;
+ this.each(function(value) {
+ if (value == object) {
+ found = true;
+ throw $break;
+ }
+ });
+ return found;
+ },
+
+ inGroupsOf: function(number, fillWith) {
+ fillWith = fillWith === undefined ? null : fillWith;
+ return this.eachSlice(number, function(slice) {
+ while(slice.length < number) slice.push(fillWith);
+ return slice;
+ });
+ },
+
+ inject: function(memo, iterator, context) {
+ iterator = iterator.bind(context);
+ this.each(function(value, index) {
+ memo = iterator(memo, value, index);
+ });
+ return memo;
+ },
+
+ invoke: function(method) {
+ var args = $A(arguments).slice(1);
+ return this.map(function(value) {
+ return value[method].apply(value, args);
+ });
+ },
+
+ max: function(iterator, context) {
+ iterator = iterator ? iterator.bind(context) : Prototype.K;
+ var result;
+ this.each(function(value, index) {
+ value = iterator(value, index);
+ if (result == undefined || value >= result)
+ result = value;
+ });
+ return result;
+ },
+
+ min: function(iterator, context) {
+ iterator = iterator ? iterator.bind(context) : Prototype.K;
+ var result;
+ this.each(function(value, index) {
+ value = iterator(value, index);
+ if (result == undefined || value < result)
+ result = value;
+ });
+ return result;
+ },
+
+ partition: function(iterator, context) {
+ iterator = iterator ? iterator.bind(context) : Prototype.K;
+ var trues = [], falses = [];
+ this.each(function(value, index) {
+ (iterator(value, index) ?
+ trues : falses).push(value);
+ });
+ return [trues, falses];
+ },
+
+ pluck: function(property) {
+ var results = [];
+ this.each(function(value) {
+ results.push(value[property]);
+ });
+ return results;
+ },
+
+ reject: function(iterator, context) {
+ iterator = iterator.bind(context);
+ var results = [];
+ this.each(function(value, index) {
+ if (!iterator(value, index))
+ results.push(value);
+ });
+ return results;
+ },
+
+ sortBy: function(iterator, context) {
+ iterator = iterator.bind(context);
+ return this.map(function(value, index) {
+ return {value: value, criteria: iterator(value, index)};
+ }).sort(function(left, right) {
+ var a = left.criteria, b = right.criteria;
+ return a < b ? -1 : a > b ? 1 : 0;
+ }).pluck('value');
+ },
+
+ toArray: function() {
+ return this.map();
+ },
+
+ zip: function() {
+ var iterator = Prototype.K, args = $A(arguments);
+ if (Object.isFunction(args.last()))
+ iterator = args.pop();
+
+ var collections = [this].concat(args).map($A);
+ return this.map(function(value, index) {
+ return iterator(collections.pluck(index));
+ });
+ },
+
+ size: function() {
+ return this.toArray().length;
+ },
+
+ inspect: function() {
+ return '#<Enumerable:' + this.toArray().inspect() + '>';
+ }
+};
+
+Object.extend(Enumerable, {
+ map: Enumerable.collect,
+ find: Enumerable.detect,
+ select: Enumerable.findAll,
+ filter: Enumerable.findAll,
+ member: Enumerable.include,
+ entries: Enumerable.toArray,
+ every: Enumerable.all,
+ some: Enumerable.any
+});
+function $A(iterable) {
+ if (!iterable) return [];
+ if (iterable.toArray) return iterable.toArray();
+ var length = iterable.length, results = new Array(length);
+ while (length--) results[length] = iterable[length];
+ return results;
+}
+
+if (Prototype.Browser.WebKit) {
+ function $A(iterable) {
+ if (!iterable) return [];
+ if (!(Object.isFunction(iterable) && iterable == '[object NodeList]') &&
+ iterable.toArray) return iterable.toArray();
+ var length = iterable.length, results = new Array(length);
+ while (length--) results[length] = iterable[length];
+ return results;
+ }
+}
+
+Array.from = $A;
+
+Object.extend(Array.prototype, Enumerable);
+
+if (!Array.prototype._reverse) Array.prototype._reverse = Array.prototype.reverse;
+
+Object.extend(Array.prototype, {
+ _each: function(iterator) {
+ for (var i = 0, length = this.length; i < length; i++)
+ iterator(this[i]);
+ },
+
+ clear: function() {
+ this.length = 0;
+ return this;
+ },
+
+ first: function() {
+ return this[0];
+ },
+
+ last: function() {
+ return this[this.length - 1];
+ },
+
+ compact: function() {
+ return this.select(function(value) {
+ return value != null;
+ });
+ },
+
+ flatten: function() {
+ return this.inject([], function(array, value) {
+ return array.concat(Object.isArray(value) ?
+ value.flatten() : [value]);
+ });
+ },
+
+ without: function() {
+ var values = $A(arguments);
+ return this.select(function(value) {
+ return !values.include(value);
+ });
+ },
+
+ reverse: function(inline) {
+ return (inline !== false ? this : this.toArray())._reverse();
+ },
+
+ reduce: function() {
+ return this.length > 1 ? this : this[0];
+ },
+
+ uniq: function(sorted) {
+ return this.inject([], function(array, value, index) {
+ if (0 == index || (sorted ? array.last() != value : !array.include(value)))
+ array.push(value);
+ return array;
+ });
+ },
+
+ intersect: function(array) {
+ return this.uniq().findAll(function(item) {
+ return array.detect(function(value) { return item === value });
+ });
+ },
+
+ clone: function() {
+ return [].concat(this);
+ },
+
+ size: function() {
+ return this.length;
+ },
+
+ inspect: function() {
+ return '[' + this.map(Object.inspect).join(', ') + ']';
+ },
+
+ toJSON: function() {
+ var results = [];
+ this.each(function(object) {
+ var value = Object.toJSON(object);
+ if (value !== undefined) results.push(value);
+ });
+ return '[' + results.join(', ') + ']';
+ }
+});
+
+// use native browser JS 1.6 implementation if available
+if (Object.isFunction(Array.prototype.forEach))
+ Array.prototype._each = Array.prototype.forEach;
+
+if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {
+ i || (i = 0);
+ var length = this.length;
+ if (i < 0) i = length + i;
+ for (; i < length; i++)
+ if (this[i] === item) return i;
+ return -1;
+};
+
+if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) {
+ i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;
+ var n = this.slice(0, i).reverse().indexOf(item);
+ return (n < 0) ? n : i - n - 1;
+};
+
+Array.prototype.toArray = Array.prototype.clone;
+
+function $w(string) {
+ if (!Object.isString(string)) return [];
+ string = string.strip();
+ return string ? string.split(/\s+/) : [];
+}
+
+if (Prototype.Browser.Opera){
+ Array.prototype.concat = function() {
+ var array = [];
+ for (var i = 0, length = this.length; i < length; i++) array.push(this[i]);
+ for (var i = 0, length = arguments.length; i < length; i++) {
+ if (Object.isArray(arguments[i])) {
+ for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++)
+ array.push(arguments[i][j]);
+ } else {
+ array.push(arguments[i]);
+ }
+ }
+ return array;
+ };
+}
+Object.extend(Number.prototype, {
+ toColorPart: function() {
+ return this.toPaddedString(2, 16);
+ },
+
+ succ: function() {
+ return this + 1;
+ },
+
+ times: function(iterator) {
+ $R(0, this, true).each(iterator);
+ return this;
+ },
+
+ toPaddedString: function(length, radix) {
+ var string = this.toString(radix || 10);
+ return '0'.times(length - string.length) + string;
+ },
+
+ toJSON: function() {
+ return isFinite(this) ? this.toString() : 'null';
+ }
+});
+
+$w('abs round ceil floor').each(function(method){
+ Number.prototype[method] = Math[method].methodize();
+});
+function $H(object) {
+ return new Hash(object);
+};
+
+var Hash = Class.create(Enumerable, (function() {
+ if (function() {
+ var i = 0, Test = function(value) { this.key = value };
+ Test.prototype.key = 'foo';
+ for (var property in new Test('bar')) i++;
+ return i > 1;
+ }()) {
+ function each(iterator) {
+ var cache = [];
+ for (var key in this._object) {
+ var value = this._object[key];
+ if (cache.include(key)) continue;
+ cache.push(key);
+ var pair = [key, value];
+ pair.key = key;
+ pair.value = value;
+ iterator(pair);
+ }
+ }
+ } else {
+ function each(iterator) {
+ for (var key in this._object) {
+ var value = this._object[key], pair = [key, value];
+ pair.key = key;
+ pair.value = value;
+ iterator(pair);
+ }
+ }
+ }
+
+ function toQueryPair(key, value) {
+ if (Object.isUndefined(value)) return key;
+ return key + '=' + encodeURIComponent(String.interpret(value));
+ }
+
+ return {
+ initialize: function(object) {
+ this._object = Object.isHash(object) ? object.toObject() : Object.clone(object);
+ },
+
+ _each: each,
+
+ set: function(key, value) {
+ return this._object[key] = value;
+ },
+
+ get: function(key) {
+ return this._object[key];
+ },
+
+ unset: function(key) {
+ var value = this._object[key];
+ delete this._object[key];
+ return value;
+ },
+
+ toObject: function() {
+ return Object.clone(this._object);
+ },
+
+ keys: function() {
+ return this.pluck('key');
+ },
+
+ values: function() {
+ return this.pluck('value');
+ },
+
+ index: function(value) {
+ var match = this.detect(function(pair) {
+ return pair.value === value;
+ });
+ return match && match.key;
+ },
+
+ merge: function(object) {
+ return this.clone().update(object);
+ },
+
+ update: function(object) {
+ return new Hash(object).inject(this, function(result, pair) {
+ result.set(pair.key, pair.value);
+ return result;
+ });
+ },
+
+ toQueryString: function() {
+ return this.map(function(pair) {
+ var key = encodeURIComponent(pair.key), values = pair.value;
+
+ if (values && typeof values == 'object') {
+ if (Object.isArray(values))
+ return values.map(toQueryPair.curry(key)).join('&');
+ }
+ return toQueryPair(key, values);
+ }).join('&');
+ },
+
+ inspect: function() {
+ return '#<Hash:{' + this.map(function(pair) {
+ return pair.map(Object.inspect).join(': ');
+ }).join(', ') + '}>';
+ },
+
+ toJSON: function() {
+ return Object.toJSON(this.toObject());
+ },
+
+ clone: function() {
+ return new Hash(this);
+ }
+ }
+})());
+
+Hash.prototype.toTemplateReplacements = Hash.prototype.toObject;
+Hash.from = $H;
+var ObjectRange = Class.create(Enumerable, {
+ initialize: function(start, end, exclusive) {
+ this.start = start;
+ this.end = end;
+ this.exclusive = exclusive;
+ },
+
+ _each: function(iterator) {
+ var value = this.start;
+ while (this.include(value)) {
+ iterator(value);
+ value = value.succ();
+ }
+ },
+
+ include: function(value) {
+ if (value < this.start)
+ return false;
+ if (this.exclusive)
+ return value < this.end;
+ return value <= this.end;
+ }
+});
+
+var $R = function(start, end, exclusive) {
+ return new ObjectRange(start, end, exclusive);
+};
+
+var Ajax = {
+ getTransport: function() {
+ return Try.these(
+ function() {return new XMLHttpRequest()},
+ function() {return new ActiveXObject('Msxml2.XMLHTTP')},
+ function() {return new ActiveXObject('Microsoft.XMLHTTP')}
+ ) || false;
+ },
+
+ activeRequestCount: 0
+};
+
+Ajax.Responders = {
+ responders: [],
+
+ _each: function(iterator) {
+ this.responders._each(iterator);
+ },
+
+ register: function(responder) {
+ if (!this.include(responder))
+ this.responders.push(responder);
+ },
+
+ unregister: function(responder) {
+ this.responders = this.responders.without(responder);
+ },
+
+ dispatch: function(callback, request, transport, json) {
+ this.each(function(responder) {
+ if (Object.isFunction(responder[callback])) {
+ try {
+ responder[callback].apply(responder, [request, transport, json]);
+ } catch (e) { }
+ }
+ });
+ }
+};
+
+Object.extend(Ajax.Responders, Enumerable);
+
+Ajax.Responders.register({
+ onCreate: function() { Ajax.activeRequestCount++ },
+ onComplete: function() { Ajax.activeRequestCount-- }
+});
+
+Ajax.Base = Class.create({
+ initialize: function(options) {
+ this.options = {
+ method: 'post',
+ asynchronous: true,
+ contentType: 'application/x-www-form-urlencoded',
+ encoding: 'UTF-8',
+ parameters: '',
+ evalJSON: true,
+ evalJS: true
+ };
+ Object.extend(this.options, options || { });
+
+ this.options.method = this.options.method.toLowerCase();
+ if (Object.isString(this.options.parameters))
+ this.options.parameters = this.options.parameters.toQueryParams();
+ }
+});
+
+Ajax.Request = Class.create(Ajax.Base, {
+ _complete: false,
+
+ initialize: function($super, url, options) {
+ $super(options);
+ this.transport = Ajax.getTransport();
+ this.request(url);
+ },
+
+ request: function(url) {
+ this.url = url;
+ this.method = this.options.method;
+ var params = Object.clone(this.options.parameters);
+
+ if (!['get', 'post'].include(this.method)) {
+ // simulate other verbs over post
+ params['_method'] = this.method;
+ this.method = 'post';
+ }
+
+ this.parameters = params;
+
+ if (params = Object.toQueryString(params)) {
+ // when GET, append parameters to URL
+ if (this.method == 'get')
+ this.url += (this.url.include('?') ? '&' : '?') + params;
+ else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
+ params += '&_=';
+ }
+
+ try {
+ var response = new Ajax.Response(this);
+ if (this.options.onCreate) this.options.onCreate(response);
+ Ajax.Responders.dispatch('onCreate', this, response);
+
+ this.transport.open(this.method.toUpperCase(), this.url,
+ this.options.asynchronous);
+
+ if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1);
+
+ this.transport.onreadystatechange = this.onStateChange.bind(this);
+ this.setRequestHeaders();
+
+ this.body = this.method == 'post' ? (this.options.postBody || params) : null;
+ this.transport.send(this.body);
+
+ /* Force Firefox to handle ready state 4 for synchronous requests */
+ if (!this.options.asynchronous && this.transport.overrideMimeType)
+ this.onStateChange();
+
+ }
+ catch (e) {
+ this.dispatchException(e);
+ }
+ },
+
+ onStateChange: function() {
+ var readyState = this.transport.readyState;
+ if (readyState > 1 && !((readyState == 4) && this._complete))
+ this.respondToReadyState(this.transport.readyState);
+ },
+
+ setRequestHeaders: function() {
+ var headers = {
+ 'X-Requested-With': 'XMLHttpRequest',
+ 'X-Prototype-Version': Prototype.Version,
+ 'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
+ };
+
+ if (this.method == 'post') {
+ headers['Content-type'] = this.options.contentType +
+ (this.options.encoding ? '; charset=' + this.options.encoding : '');
+
+ /* Force "Connection: close" for older Mozilla browsers to work
+ * around a bug where XMLHttpRequest sends an incorrect
+ * Content-length header. See Mozilla Bugzilla #246651.
+ */
+ if (this.transport.overrideMimeType &&
+ (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
+ headers['Connection'] = 'close';
+ }
+
+ // user-defined headers
+ if (typeof this.options.requestHeaders == 'object') {
+ var extras = this.options.requestHeaders;
+
+ if (Object.isFunction(extras.push))
+ for (var i = 0, length = extras.length; i < length; i += 2)
+ headers[extras[i]] = extras[i+1];
+ else
+ $H(extras).each(function(pair) { headers[pair.key] = pair.value });
+ }
+
+ for (var name in headers)
+ this.transport.setRequestHeader(name, headers[name]);
+ },
+
+ success: function() {
+ var status = this.getStatus();
+ return !status || (status >= 200 && status < 300);
+ },
+
+ getStatus: function() {
+ try {
+ return this.transport.status || 0;
+ } catch (e) { return 0 }
+ },
+
+ respondToReadyState: function(readyState) {
+ var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this);
+
+ if (state == 'Complete') {
+ try {
+ this._complete = true;
+ (this.options['on' + response.status]
+ || this.options['on' + (this.success() ? 'Success' : 'Failure')]
+ || Prototype.emptyFunction)(response, response.headerJSON);
+ } catch (e) {
+ this.dispatchException(e);
+ }
+
+ var contentType = response.getHeader('Content-type');
+ if (this.options.evalJS == 'force'
+ || (this.options.evalJS && contentType
+ && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
+ this.evalResponse();
+ }
+
+ try {
+ (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON);
+ Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON);
+ } catch (e) {
+ this.dispatchException(e);
+ }
+
+ if (state == 'Complete') {
+ // avoid memory leak in MSIE: clean up
+ this.transport.onreadystatechange = Prototype.emptyFunction;
+ }
+ },
+
+ getHeader: function(name) {
+ try {
+ return this.transport.getResponseHeader(name);
+ } catch (e) { return null }
+ },
+
+ evalResponse: function() {
+ try {
+ return eval((this.transport.responseText || '').unfilterJSON());
+ } catch (e) {
+ this.dispatchException(e);
+ }
+ },
+
+ dispatchException: function(exception) {
+ (this.options.onException || Prototype.emptyFunction)(this, exception);
+ Ajax.Responders.dispatch('onException', this, exception);
+ }
+});
+
+Ajax.Request.Events =
+ ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
+
+Ajax.Response = Class.create({
+ initialize: function(request){
+ this.request = request;
+ var transport = this.transport = request.transport,
+ readyState = this.readyState = transport.readyState;
+
+ if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) {
+ this.status = this.getStatus();
+ this.statusText = this.getStatusText();
+ this.responseText = String.interpret(transport.responseText);
+ this.headerJSON = this._getHeaderJSON();
+ }
+
+ if(readyState == 4) {
+ var xml = transport.responseXML;
+ this.responseXML = xml === undefined ? null : xml;
+ this.responseJSON = this._getResponseJSON();
+ }
+ },
+
+ status: 0,
+ statusText: '',
+
+ getStatus: Ajax.Request.prototype.getStatus,
+
+ getStatusText: function() {
+ try {
+ return this.transport.statusText || '';
+ } catch (e) { return '' }
+ },
+
+ getHeader: Ajax.Request.prototype.getHeader,
+
+ getAllHeaders: function() {
+ try {
+ return this.getAllResponseHeaders();
+ } catch (e) { return null }
+ },
+
+ getResponseHeader: function(name) {
+ return this.transport.getResponseHeader(name);
+ },
+
+ getAllResponseHeaders: function() {
+ return this.transport.getAllResponseHeaders();
+ },
+
+ _getHeaderJSON: function() {
+ var json = this.getHeader('X-JSON');
+ if (!json) return null;
+ json = decodeURIComponent(escape(json));
+ try {
+ return json.evalJSON(this.request.options.sanitizeJSON);
+ } catch (e) {
+ this.request.dispatchException(e);
+ }
+ },
+
+ _getResponseJSON: function() {
+ var options = this.request.options;
+ if (!options.evalJSON || (options.evalJSON != 'force' &&
+ !(this.getHeader('Content-type') || '').include('application/json')))
+ return null;
+ try {
+ return this.transport.responseText.evalJSON(options.sanitizeJSON);
+ } catch (e) {
+ this.request.dispatchException(e);
+ }
+ }
+});
+
+Ajax.Updater = Class.create(Ajax.Request, {
+ initialize: function($super, container, url, options) {
+ this.container = {
+ success: (container.success || container),
+ failure: (container.failure || (container.success ? null : container))
+ };
+
+ options = options || { };
+ var onComplete = options.onComplete;
+ options.onComplete = (function(response, param) {
+ this.updateContent(response.responseText);
+ if (Object.isFunction(onComplete)) onComplete(response, param);
+ }).bind(this);
+
+ $super(url, options);
+ },
+
+ updateContent: function(responseText) {
+ var receiver = this.container[this.success() ? 'success' : 'failure'],
+ options = this.options;
+
+ if (!options.evalScripts) responseText = responseText.stripScripts();
+
+ if (receiver = $(receiver)) {
+ if (options.insertion) {
+ if (Object.isString(options.insertion)) {
+ var insertion = { }; insertion[options.insertion] = responseText;
+ receiver.insert(insertion);
+ }
+ else options.insertion(receiver, responseText);
+ }
+ else receiver.update(responseText);
+ }
+
+ if (this.success()) {
+ if (this.onComplete) this.onComplete.bind(this).defer();
+ }
+ }
+});
+
+Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
+ initialize: function($super, container, url, options) {
+ $super(options);
+ this.onComplete = this.options.onComplete;
+
+ this.frequency = (this.options.frequency || 2);
+ this.decay = (this.options.decay || 1);
+
+ this.updater = { };
+ this.container = container;
+ this.url = url;
+
+ this.start();
+ },
+
+ start: function() {
+ this.options.onComplete = this.updateComplete.bind(this);
+ this.onTimerEvent();
+ },
+
+ stop: function() {
+ this.updater.options.onComplete = undefined;
+ clearTimeout(this.timer);
+ (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
+ },
+
+ updateComplete: function(response) {
+ if (this.options.decay) {
+ this.decay = (response.responseText == this.lastText ?
+ this.decay * this.options.decay : 1);
+
+ this.lastText = response.responseText;
+ }
+ this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency);
+ },
+
+ onTimerEvent: function() {
+ this.updater = new Ajax.Updater(this.container, this.url, this.options);
+ }
+});
+function $(element) {
+ if (arguments.length > 1) {
+ for (var i = 0, elements = [], length = arguments.length; i < length; i++)
+ elements.push($(arguments[i]));
+ return elements;
+ }
+ if (Object.isString(element))
+ element = document.getElementById(element);
+ return Element.extend(element);
+}
+
+if (Prototype.BrowserFeatures.XPath) {
+ document._getElementsByXPath = function(expression, parentElement) {
+ var results = [];
+ var query = document.evaluate(expression, $(parentElement) || document,
+ null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+ for (var i = 0, length = query.snapshotLength; i < length; i++)
+ results.push(Element.extend(query.snapshotItem(i)));
+ return results;
+ };
+}
+
+/*--------------------------------------------------------------------------*/
+
+if (!window.Node) var Node = { };
+
+if (!Node.ELEMENT_NODE) {
+ // DOM level 2 ECMAScript Language Binding
+ Object.extend(Node, {
+ ELEMENT_NODE: 1,
+ ATTRIBUTE_NODE: 2,
+ TEXT_NODE: 3,
+ CDATA_SECTION_NODE: 4,
+ ENTITY_REFERENCE_NODE: 5,
+ ENTITY_NODE: 6,
+ PROCESSING_INSTRUCTION_NODE: 7,
+ COMMENT_NODE: 8,
+ DOCUMENT_NODE: 9,
+ DOCUMENT_TYPE_NODE: 10,
+ DOCUMENT_FRAGMENT_NODE: 11,
+ NOTATION_NODE: 12
+ });
+}
+
+(function() {
+ var element = this.Element;
+ this.Element = function(tagName, attributes) {
+ attributes = attributes || { };
+ tagName = tagName.toLowerCase();
+ var cache = Element.cache;
+ if (Prototype.Browser.IE && attributes.name) {
+ tagName = '<' + tagName + ' name="' + attributes.name + '">';
+ delete attributes.name;
+ return Element.writeAttribute(document.createElement(tagName), attributes);
+ }
+ if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName));
+ return Element.writeAttribute(cache[tagName].cloneNode(false), attributes);
+ };
+ Object.extend(this.Element, element || { });
+}).call(window);
+
+Element.cache = { };
+
+Element.Methods = {
+ visible: function(element) {
+ return $(element).style.display != 'none';
+ },
+
+ toggle: function(element) {
+ element = $(element);
+ Element[Element.visible(element) ? 'hide' : 'show'](element);
+ return element;
+ },
+
+ hide: function(element) {
+ $(element).style.display = 'none';
+ return element;
+ },
+
+ show: function(element) {
+ $(element).style.display = '';
+ return element;
+ },
+
+ remove: function(element) {
+ element = $(element);
+ element.parentNode.removeChild(element);
+ return element;
+ },
+
+ update: function(element, content) {
+ element = $(element);
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) return element.update().insert(content);
+ content = Object.toHTML(content);
+ element.innerHTML = content.stripScripts();
+ content.evalScripts.bind(content).defer();
+ return element;
+ },
+
+ replace: function(element, content) {
+ element = $(element);
+ if (content && content.toElement) content = content.toElement();
+ else if (!Object.isElement(content)) {
+ content = Object.toHTML(content);
+ var range = element.ownerDocument.createRange();
+ range.selectNode(element);
+ content.evalScripts.bind(content).defer();
+ content = range.createContextualFragment(content.stripScripts());
+ }
+ element.parentNode.replaceChild(content, element);
+ return element;
+ },
+
+ insert: function(element, insertions) {
+ element = $(element);
+
+ if (Object.isString(insertions) || Object.isNumber(insertions) ||
+ Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML)))
+ insertions = {bottom:insertions};
+
+ var content, t, range;
+
+ for (position in insertions) {
+ content = insertions[position];
+ position = position.toLowerCase();
+ t = Element._insertionTranslations[position];
+
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) {
+ t.insert(element, content);
+ continue;
+ }
+
+ content = Object.toHTML(content);
+
+ range = element.ownerDocument.createRange();
+ t.initializeRange(element, range);
+ t.insert(element, range.createContextualFragment(content.stripScripts()));
+
+ content.evalScripts.bind(content).defer();
+ }
+
+ return element;
+ },
+
+ wrap: function(element, wrapper, attributes) {
+ element = $(element);
+ if (Object.isElement(wrapper))
+ $(wrapper).writeAttribute(attributes || { });
+ else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes);
+ else wrapper = new Element('div', wrapper);
+ if (element.parentNode)
+ element.parentNode.replaceChild(wrapper, element);
+ wrapper.appendChild(element);
+ return wrapper;
+ },
+
+ inspect: function(element) {
+ element = $(element);
+ var result = '<' + element.tagName.toLowerCase();
+ $H({'id': 'id', 'className': 'class'}).each(function(pair) {
+ var property = pair.first(), attribute = pair.last();
+ var value = (element[property] || '').toString();
+ if (value) result += ' ' + attribute + '=' + value.inspect(true);
+ });
+ return result + '>';
+ },
+
+ recursivelyCollect: function(element, property) {
+ element = $(element);
+ var elements = [];
+ while (element = element[property])
+ if (element.nodeType == 1)
+ elements.push(Element.extend(element));
+ return elements;
+ },
+
+ ancestors: function(element) {
+ return $(element).recursivelyCollect('parentNode');
+ },
+
+ descendants: function(element) {
+ return $A($(element).getElementsByTagName('*')).each(Element.extend);
+ },
+
+ firstDescendant: function(element) {
+ element = $(element).firstChild;
+ while (element && element.nodeType != 1) element = element.nextSibling;
+ return $(element);
+ },
+
+ immediateDescendants: function(element) {
+ if (!(element = $(element).firstChild)) return [];
+ while (element && element.nodeType != 1) element = element.nextSibling;
+ if (element) return [element].concat($(element).nextSiblings());
+ return [];
+ },
+
+ previousSiblings: function(element) {
+ return $(element).recursivelyCollect('previousSibling');
+ },
+
+ nextSiblings: function(element) {
+ return $(element).recursivelyCollect('nextSibling');
+ },
+
+ siblings: function(element) {
+ element = $(element);
+ return element.previousSiblings().reverse().concat(element.nextSiblings());
+ },
+
+ match: function(element, selector) {
+ if (Object.isString(selector))
+ selector = new Selector(selector);
+ return selector.match($(element));
+ },
+
+ up: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return $(element.parentNode);
+ var ancestors = element.ancestors();
+ return expression ? Selector.findElement(ancestors, expression, index) :
+ ancestors[index || 0];
+ },
+
+ down: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return element.firstDescendant();
+ var descendants = element.descendants();
+ return expression ? Selector.findElement(descendants, expression, index) :
+ descendants[index || 0];
+ },
+
+ previous: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element));
+ var previousSiblings = element.previousSiblings();
+ return expression ? Selector.findElement(previousSiblings, expression, index) :
+ previousSiblings[index || 0];
+ },
+
+ next: function(element, expression, index) {
+ element = $(element);
+ if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element));
+ var nextSiblings = element.nextSiblings();
+ return expression ? Selector.findElement(nextSiblings, expression, index) :
+ nextSiblings[index || 0];
+ },
+
+ select: function() {
+ var args = $A(arguments), element = $(args.shift());
+ return Selector.findChildElements(element, args);
+ },
+
+ adjacent: function() {
+ var args = $A(arguments), element = $(args.shift());
+ return Selector.findChildElements(element.parentNode, args).without(element);
+ },
+
+ identify: function(element) {
+ element = $(element);
+ var id = element.readAttribute('id'), self = arguments.callee;
+ if (id) return id;
+ do { id = 'anonymous_element_' + self.counter++ } while ($(id));
+ element.writeAttribute('id', id);
+ return id;
+ },
+
+ readAttribute: function(element, name) {
+ element = $(element);
+ if (Prototype.Browser.IE) {
+ var t = Element._attributeTranslations.read;
+ if (t.values[name]) return t.values[name](element, name);
+ if (t.names[name]) name = t.names[name];
+ if (name.include(':')) {
+ return (!element.attributes || !element.attributes[name]) ? null :
+ element.attributes[name].value;
+ }
+ }
+ return element.getAttribute(name);
+ },
+
+ writeAttribute: function(element, name, value) {
+ element = $(element);
+ var attributes = { }, t = Element._attributeTranslations.write;
+
+ if (typeof name == 'object') attributes = name;
+ else attributes[name] = value === undefined ? true : value;
+
+ for (var attr in attributes) {
+ var name = t.names[attr] || attr, value = attributes[attr];
+ if (t.values[attr]) name = t.values[attr](element, value);
+ if (value === false || value === null)
+ element.removeAttribute(name);
+ else if (value === true)
+ element.setAttribute(name, name);
+ else element.setAttribute(name, value);
+ }
+ return element;
+ },
+
+ getHeight: function(element) {
+ return $(element).getDimensions().height;
+ },
+
+ getWidth: function(element) {
+ return $(element).getDimensions().width;
+ },
+
+ classNames: function(element) {
+ return new Element.ClassNames(element);
+ },
+
+ hasClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ var elementClassName = element.className;
+ return (elementClassName.length > 0 && (elementClassName == className ||
+ new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
+ },
+
+ addClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ if (!element.hasClassName(className))
+ element.className += (element.className ? ' ' : '') + className;
+ return element;
+ },
+
+ removeClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ element.className = element.className.replace(
+ new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip();
+ return element;
+ },
+
+ toggleClassName: function(element, className) {
+ if (!(element = $(element))) return;
+ return element[element.hasClassName(className) ?
+ 'removeClassName' : 'addClassName'](className);
+ },
+
+ // removes whitespace-only text node children
+ cleanWhitespace: function(element) {
+ element = $(element);
+ var node = element.firstChild;
+ while (node) {
+ var nextNode = node.nextSibling;
+ if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
+ element.removeChild(node);
+ node = nextNode;
+ }
+ return element;
+ },
+
+ empty: function(element) {
+ return $(element).innerHTML.blank();
+ },
+
+ descendantOf: function(element, ancestor) {
+ element = $(element), ancestor = $(ancestor);
+
+ if (element.compareDocumentPosition)
+ return (element.compareDocumentPosition(ancestor) & 8) === 8;
+
+ if (element.sourceIndex && !Prototype.Browser.Opera) {
+ var e = element.sourceIndex, a = ancestor.sourceIndex,
+ nextAncestor = ancestor.nextSibling;
+ if (!nextAncestor) {
+ do { ancestor = ancestor.parentNode; }
+ while (!(nextAncestor = ancestor.nextSibling) && ancestor.parentNode);
+ }
+ if (nextAncestor) return (e > a && e < nextAncestor.sourceIndex);
+ }
+
+ while (element = element.parentNode)
+ if (element == ancestor) return true;
+ return false;
+ },
+
+ scrollTo: function(element) {
+ element = $(element);
+ var pos = element.cumulativeOffset();
+ window.scrollTo(pos[0], pos[1]);
+ return element;
+ },
+
+ getStyle: function(element, style) {
+ element = $(element);
+ style = style == 'float' ? 'cssFloat' : style.camelize();
+ var value = element.style[style];
+ if (!value) {
+ var css = document.defaultView.getComputedStyle(element, null);
+ value = css ? css[style] : null;
+ }
+ if (style == 'opacity') return value ? parseFloat(value) : 1.0;
+ return value == 'auto' ? null : value;
+ },
+
+ getOpacity: function(element) {
+ return $(element).getStyle('opacity');
+ },
+
+ setStyle: function(element, styles) {
+ element = $(element);
+ var elementStyle = element.style, match;
+ if (Object.isString(styles)) {
+ element.style.cssText += ';' + styles;
+ return styles.include('opacity') ?
+ element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element;
+ }
+ for (var property in styles)
+ if (property == 'opacity') element.setOpacity(styles[property]);
+ else
+ elementStyle[(property == 'float' || property == 'cssFloat') ?
+ (elementStyle.styleFloat === undefined ? 'cssFloat' : 'styleFloat') :
+ property] = styles[property];
+
+ return element;
+ },
+
+ setOpacity: function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1 || value === '') ? '' :
+ (value < 0.00001) ? 0 : value;
+ return element;
+ },
+
+ getDimensions: function(element) {
+ element = $(element);
+ var display = $(element).getStyle('display');
+ if (display != 'none' && display != null) // Safari bug
+ return {width: element.offsetWidth, height: element.offsetHeight};
+
+ // All *Width and *Height properties give 0 on elements with display none,
+ // so enable the element temporarily
+ var els = element.style;
+ var originalVisibility = els.visibility;
+ var originalPosition = els.position;
+ var originalDisplay = els.display;
+ els.visibility = 'hidden';
+ els.position = 'absolute';
+ els.display = 'block';
+ var originalWidth = element.clientWidth;
+ var originalHeight = element.clientHeight;
+ els.display = originalDisplay;
+ els.position = originalPosition;
+ els.visibility = originalVisibility;
+ return {width: originalWidth, height: originalHeight};
+ },
+
+ makePositioned: function(element) {
+ element = $(element);
+ var pos = Element.getStyle(element, 'position');
+ if (pos == 'static' || !pos) {
+ element._madePositioned = true;
+ element.style.position = 'relative';
+ // Opera returns the offset relative to the positioning context, when an
+ // element is position relative but top and left have not been defined
+ if (window.opera) {
+ element.style.top = 0;
+ element.style.left = 0;
+ }
+ }
+ return element;
+ },
+
+ undoPositioned: function(element) {
+ element = $(element);
+ if (element._madePositioned) {
+ element._madePositioned = undefined;
+ element.style.position =
+ element.style.top =
+ element.style.left =
+ element.style.bottom =
+ element.style.right = '';
+ }
+ return element;
+ },
+
+ makeClipping: function(element) {
+ element = $(element);
+ if (element._overflow) return element;
+ element._overflow = Element.getStyle(element, 'overflow') || 'auto';
+ if (element._overflow !== 'hidden')
+ element.style.overflow = 'hidden';
+ return element;
+ },
+
+ undoClipping: function(element) {
+ element = $(element);
+ if (!element._overflow) return element;
+ element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;
+ element._overflow = null;
+ return element;
+ },
+
+ cumulativeOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ } while (element);
+ return Element._returnOffset(valueL, valueT);
+ },
+
+ positionedOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ element = element.offsetParent;
+ if (element) {
+ if (element.tagName == 'BODY') break;
+ var p = Element.getStyle(element, 'position');
+ if (p == 'relative' || p == 'absolute') break;
+ }
+ } while (element);
+ return Element._returnOffset(valueL, valueT);
+ },
+
+ absolutize: function(element) {
+ element = $(element);
+ if (element.getStyle('position') == 'absolute') return;
+ // Position.prepare(); // To be done manually by Scripty when it needs it.
+
+ var offsets = element.positionedOffset();
+ var top = offsets[1];
+ var left = offsets[0];
+ var width = element.clientWidth;
+ var height = element.clientHeight;
+
+ element._originalLeft = left - parseFloat(element.style.left || 0);
+ element._originalTop = top - parseFloat(element.style.top || 0);
+ element._originalWidth = element.style.width;
+ element._originalHeight = element.style.height;
+
+ element.style.position = 'absolute';
+ element.style.top = top + 'px';
+ element.style.left = left + 'px';
+ element.style.width = width + 'px';
+ element.style.height = height + 'px';
+ return element;
+ },
+
+ relativize: function(element) {
+ element = $(element);
+ if (element.getStyle('position') == 'relative') return;
+ // Position.prepare(); // To be done manually by Scripty when it needs it.
+
+ element.style.position = 'relative';
+ var top = parseFloat(element.style.top || 0) - (element._originalTop || 0);
+ var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
+
+ element.style.top = top + 'px';
+ element.style.left = left + 'px';
+ element.style.height = element._originalHeight;
+ element.style.width = element._originalWidth;
+ return element;
+ },
+
+ cumulativeScrollOffset: function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.scrollTop || 0;
+ valueL += element.scrollLeft || 0;
+ element = element.parentNode;
+ } while (element);
+ return Element._returnOffset(valueL, valueT);
+ },
+
+ getOffsetParent: function(element) {
+ if (element.offsetParent) return $(element.offsetParent);
+ if (element == document.body) return $(element);
+
+ while ((element = element.parentNode) && element != document.body)
+ if (Element.getStyle(element, 'position') != 'static')
+ return $(element);
+
+ return $(document.body);
+ },
+
+ viewportOffset: function(forElement) {
+ var valueT = 0, valueL = 0;
+
+ var element = forElement;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+
+ // Safari fix
+ if (element.offsetParent == document.body &&
+ Element.getStyle(element, 'position') == 'absolute') break;
+
+ } while (element = element.offsetParent);
+
+ element = forElement;
+ do {
+ if (!Prototype.Browser.Opera || element.tagName == 'BODY') {
+ valueT -= element.scrollTop || 0;
+ valueL -= element.scrollLeft || 0;
+ }
+ } while (element = element.parentNode);
+
+ return Element._returnOffset(valueL, valueT);
+ },
+
+ clonePosition: function(element, source) {
+ var options = Object.extend({
+ setLeft: true,
+ setTop: true,
+ setWidth: true,
+ setHeight: true,
+ offsetTop: 0,
+ offsetLeft: 0
+ }, arguments[2] || { });
+
+ // find page position of source
+ source = $(source);
+ var p = source.viewportOffset();
+
+ // find coordinate system to use
+ element = $(element);
+ var delta = [0, 0];
+ var parent = null;
+ // delta [0,0] will do fine with position: fixed elements,
+ // position:absolute needs offsetParent deltas
+ if (Element.getStyle(element, 'position') == 'absolute') {
+ parent = element.getOffsetParent();
+ delta = parent.viewportOffset();
+ }
+
+ // correct by body offsets (fixes Safari)
+ if (parent == document.body) {
+ delta[0] -= document.body.offsetLeft;
+ delta[1] -= document.body.offsetTop;
+ }
+
+ // set position
+ if (options.setLeft) element.style.left = (p[0] - delta[0] + options.offsetLeft) + 'px';
+ if (options.setTop) element.style.top = (p[1] - delta[1] + options.offsetTop) + 'px';
+ if (options.setWidth) element.style.width = source.offsetWidth + 'px';
+ if (options.setHeight) element.style.height = source.offsetHeight + 'px';
+ return element;
+ }
+};
+
+Element.Methods.identify.counter = 1;
+
+Object.extend(Element.Methods, {
+ getElementsBySelector: Element.Methods.select,
+ childElements: Element.Methods.immediateDescendants
+});
+
+Element._attributeTranslations = {
+ write: {
+ names: {
+ className: 'class',
+ htmlFor: 'for'
+ },
+ values: { }
+ }
+};
+
+
+if (!document.createRange || Prototype.Browser.Opera) {
+ Element.Methods.insert = function(element, insertions) {
+ element = $(element);
+
+ if (Object.isString(insertions) || Object.isNumber(insertions) ||
+ Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML)))
+ insertions = { bottom: insertions };
+
+ var t = Element._insertionTranslations, content, position, pos, tagName;
+
+ for (position in insertions) {
+ content = insertions[position];
+ position = position.toLowerCase();
+ pos = t[position];
+
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) {
+ pos.insert(element, content);
+ continue;
+ }
+
+ content = Object.toHTML(content);
+ tagName = ((position == 'before' || position == 'after')
+ ? element.parentNode : element).tagName.toUpperCase();
+
+ if (t.tags[tagName]) {
+ var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
+ if (position == 'top' || position == 'after') fragments.reverse();
+ fragments.each(pos.insert.curry(element));
+ }
+ else element.insertAdjacentHTML(pos.adjacency, content.stripScripts());
+
+ content.evalScripts.bind(content).defer();
+ }
+
+ return element;
+ };
+}
+
+if (Prototype.Browser.Opera) {
+ Element.Methods._getStyle = Element.Methods.getStyle;
+ Element.Methods.getStyle = function(element, style) {
+ switch(style) {
+ case 'left':
+ case 'top':
+ case 'right':
+ case 'bottom':
+ if (Element._getStyle(element, 'position') == 'static') return null;
+ default: return Element._getStyle(element, style);
+ }
+ };
+ Element.Methods._readAttribute = Element.Methods.readAttribute;
+ Element.Methods.readAttribute = function(element, attribute) {
+ if (attribute == 'title') return element.title;
+ return Element._readAttribute(element, attribute);
+ };
+}
+
+else if (Prototype.Browser.IE) {
+ $w('positionedOffset getOffsetParent viewportOffset').each(function(method) {
+ Element.Methods[method] = Element.Methods[method].wrap(
+ function(proceed, element) {
+ element = $(element);
+ var position = element.getStyle('position');
+ if (position != 'static') return proceed(element);
+ element.setStyle({ position: 'relative' });
+ var value = proceed(element);
+ element.setStyle({ position: position });
+ return value;
+ }
+ );
+ });
+
+ Element.Methods.getStyle = function(element, style) {
+ element = $(element);
+ style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
+ var value = element.style[style];
+ if (!value && element.currentStyle) value = element.currentStyle[style];
+
+ if (style == 'opacity') {
+ if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/))
+ if (value[1]) return parseFloat(value[1]) / 100;
+ return 1.0;
+ }
+
+ if (value == 'auto') {
+ if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none'))
+ return element['offset' + style.capitalize()] + 'px';
+ return null;
+ }
+ return value;
+ };
+
+ Element.Methods.setOpacity = function(element, value) {
+ function stripAlpha(filter){
+ return filter.replace(/alpha\([^\)]*\)/gi,'');
+ }
+ element = $(element);
+ var currentStyle = element.currentStyle;
+ if ((currentStyle && !currentStyle.hasLayout) ||
+ (!currentStyle && element.style.zoom == 'normal'))
+ element.style.zoom = 1;
+
+ var filter = element.getStyle('filter'), style = element.style;
+ if (value == 1 || value === '') {
+ (filter = stripAlpha(filter)) ?
+ style.filter = filter : style.removeAttribute('filter');
+ return element;
+ } else if (value < 0.00001) value = 0;
+ style.filter = stripAlpha(filter) +
+ 'alpha(opacity=' + (value * 100) + ')';
+ return element;
+ };
+
+ Element._attributeTranslations = {
+ read: {
+ names: {
+ 'class': 'className',
+ 'for': 'htmlFor'
+ },
+ values: {
+ _getAttr: function(element, attribute) {
+ return element.getAttribute(attribute, 2);
+ },
+ _getAttrNode: function(element, attribute) {
+ var node = element.getAttributeNode(attribute);
+ return node ? node.value : "";
+ },
+ _getEv: function(element, attribute) {
+ var attribute = element.getAttribute(attribute);
+ return attribute ? attribute.toString().slice(23, -2) : null;
+ },
+ _flag: function(element, attribute) {
+ return $(element).hasAttribute(attribute) ? attribute : null;
+ },
+ style: function(element) {
+ return element.style.cssText.toLowerCase();
+ },
+ title: function(element) {
+ return element.title;
+ }
+ }
+ }
+ };
+
+ Element._attributeTranslations.write = {
+ names: Object.clone(Element._attributeTranslations.read.names),
+ values: {
+ checked: function(element, value) {
+ element.checked = !!value;
+ },
+
+ style: function(element, value) {
+ element.style.cssText = value ? value : '';
+ }
+ }
+ };
+
+ Element._attributeTranslations.has = {};
+
+ $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +
+ 'encType maxLength readOnly longDesc').each(function(attr) {
+ Element._attributeTranslations.write.names[attr.toLowerCase()] = attr;
+ Element._attributeTranslations.has[attr.toLowerCase()] = attr;
+ });
+
+ (function(v) {
+ Object.extend(v, {
+ href: v._getAttr,
+ src: v._getAttr,
+ type: v._getAttr,
+ action: v._getAttrNode,
+ disabled: v._flag,
+ checked: v._flag,
+ readonly: v._flag,
+ multiple: v._flag,
+ onload: v._getEv,
+ onunload: v._getEv,
+ onclick: v._getEv,
+ ondblclick: v._getEv,
+ onmousedown: v._getEv,
+ onmouseup: v._getEv,
+ onmouseover: v._getEv,
+ onmousemove: v._getEv,
+ onmouseout: v._getEv,
+ onfocus: v._getEv,
+ onblur: v._getEv,
+ onkeypress: v._getEv,
+ onkeydown: v._getEv,
+ onkeyup: v._getEv,
+ onsubmit: v._getEv,
+ onreset: v._getEv,
+ onselect: v._getEv,
+ onchange: v._getEv
+ });
+ })(Element._attributeTranslations.read.values);
+}
+
+else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) {
+ Element.Methods.setOpacity = function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1) ? 0.999999 :
+ (value === '') ? '' : (value < 0.00001) ? 0 : value;
+ return element;
+ };
+}
+
+else if (Prototype.Browser.WebKit) {
+ Element.Methods.setOpacity = function(element, value) {
+ element = $(element);
+ element.style.opacity = (value == 1 || value === '') ? '' :
+ (value < 0.00001) ? 0 : value;
+
+ if (value == 1)
+ if(element.tagName == 'IMG' && element.width) {
+ element.width++; element.width--;
+ } else try {
+ var n = document.createTextNode(' ');
+ element.appendChild(n);
+ element.removeChild(n);
+ } catch (e) { }
+
+ return element;
+ };
+
+ // Safari returns margins on body which is incorrect if the child is absolutely
+ // positioned. For performance reasons, redefine Position.cumulativeOffset for
+ // KHTML/WebKit only.
+ Element.Methods.cumulativeOffset = function(element) {
+ var valueT = 0, valueL = 0;
+ do {
+ valueT += element.offsetTop || 0;
+ valueL += element.offsetLeft || 0;
+ if (element.offsetParent == document.body)
+ if (Element.getStyle(element, 'position') == 'absolute') break;
+
+ element = element.offsetParent;
+ } while (element);
+
+ return Element._returnOffset(valueL, valueT);
+ };
+}
+
+if (Prototype.Browser.IE || Prototype.Browser.Opera) {
+ // IE and Opera are missing .innerHTML support for TABLE-related and SELECT elements
+ Element.Methods.update = function(element, content) {
+ element = $(element);
+
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) return element.update().insert(content);
+
+ content = Object.toHTML(content);
+ var tagName = element.tagName.toUpperCase();
+
+ if (tagName in Element._insertionTranslations.tags) {
+ $A(element.childNodes).each(function(node) { element.removeChild(node) });
+ Element._getContentFromAnonymousElement(tagName, content.stripScripts())
+ .each(function(node) { element.appendChild(node) });
+ }
+ else element.innerHTML = content.stripScripts();
+
+ content.evalScripts.bind(content).defer();
+ return element;
+ };
+}
+
+if (document.createElement('div').outerHTML) {
+ Element.Methods.replace = function(element, content) {
+ element = $(element);
+
+ if (content && content.toElement) content = content.toElement();
+ if (Object.isElement(content)) {
+ element.parentNode.replaceChild(content, element);
+ return element;
+ }
+
+ content = Object.toHTML(content);
+ var parent = element.parentNode, tagName = parent.tagName.toUpperCase();
+
+ if (Element._insertionTranslations.tags[tagName]) {
+ var nextSibling = element.next();
+ var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
+ parent.removeChild(element);
+ if (nextSibling)
+ fragments.each(function(node) { parent.insertBefore(node, nextSibling) });
+ else
+ fragments.each(function(node) { parent.appendChild(node) });
+ }
+ else element.outerHTML = content.stripScripts();
+
+ content.evalScripts.bind(content).defer();
+ return element;
+ };
+}
+
+Element._returnOffset = function(l, t) {
+ var result = [l, t];
+ result.left = l;
+ result.top = t;
+ return result;
+};
+
+Element._getContentFromAnonymousElement = function(tagName, html) {
+ var div = new Element('div'), t = Element._insertionTranslations.tags[tagName];
+ div.innerHTML = t[0] + html + t[1];
+ t[2].times(function() { div = div.firstChild });
+ return $A(div.childNodes);
+};
+
+Element._insertionTranslations = {
+ before: {
+ adjacency: 'beforeBegin',
+ insert: function(element, node) {
+ element.parentNode.insertBefore(node, element);
+ },
+ initializeRange: function(element, range) {
+ range.setStartBefore(element);
+ }
+ },
+ top: {
+ adjacency: 'afterBegin',
+ insert: function(element, node) {
+ element.insertBefore(node, element.firstChild);
+ },
+ initializeRange: function(element, range) {
+ range.selectNodeContents(element);
+ range.collapse(true);
+ }
+ },
+ bottom: {
+ adjacency: 'beforeEnd',
+ insert: function(element, node) {
+ element.appendChild(node);
+ }
+ },
+ after: {
+ adjacency: 'afterEnd',
+ insert: function(element, node) {
+ element.parentNode.insertBefore(node, element.nextSibling);
+ },
+ initializeRange: function(element, range) {
+ range.setStartAfter(element);
+ }
+ },
+ tags: {
+ TABLE: ['<table>', '</table>', 1],
+ TBODY: ['<table><tbody>', '</tbody></table>', 2],
+ TR: ['<table><tbody><tr>', '</tr></tbody></table>', 3],
+ TD: ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4],
+ SELECT: ['<select>', '</select>', 1]
+ }
+};
+
+(function() {
+ this.bottom.initializeRange = this.top.initializeRange;
+ Object.extend(this.tags, {
+ THEAD: this.tags.TBODY,
+ TFOOT: this.tags.TBODY,
+ TH: this.tags.TD
+ });
+}).call(Element._insertionTranslations);
+
+Element.Methods.Simulated = {
+ hasAttribute: function(element, attribute) {
+ attribute = Element._attributeTranslations.has[attribute] || attribute;
+ var node = $(element).getAttributeNode(attribute);
+ return node && node.specified;
+ }
+};
+
+Element.Methods.ByTag = { };
+
+Object.extend(Element, Element.Methods);
+
+if (!Prototype.BrowserFeatures.ElementExtensions &&
+ document.createElement('div').__proto__) {
+ window.HTMLElement = { };
+ window.HTMLElement.prototype = document.createElement('div').__proto__;
+ Prototype.BrowserFeatures.ElementExtensions = true;
+}
+
+Element.extend = (function() {
+ if (Prototype.BrowserFeatures.SpecificElementExtensions)
+ return Prototype.K;
+
+ var Methods = { }, ByTag = Element.Methods.ByTag;
+
+ var extend = Object.extend(function(element) {
+ if (!element || element._extendedByPrototype ||
+ element.nodeType != 1 || element == window) return element;
+
+ var methods = Object.clone(Methods),
+ tagName = element.tagName, property, value;
+
+ // extend methods for specific tags
+ if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);
+
+ for (property in methods) {
+ value = methods[property];
+ if (Object.isFunction(value) && !(property in element))
+ element[property] = value.methodize();
+ }
+
+ element._extendedByPrototype = Prototype.emptyFunction;
+ return element;
+
+ }, {
+ refresh: function() {
+ // extend methods for all tags (Safari doesn't need this)
+ if (!Prototype.BrowserFeatures.ElementExtensions) {
+ Object.extend(Methods, Element.Methods);
+ Object.extend(Methods, Element.Methods.Simulated);
+ }
+ }
+ });
+
+ extend.refresh();
+ return extend;
+})();
+
+Element.hasAttribute = function(element, attribute) {
+ if (element.hasAttribute) return element.hasAttribute(attribute);
+ return Element.Methods.Simulated.hasAttribute(element, attribute);
+};
+
+Element.addMethods = function(methods) {
+ var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag;
+
+ if (!methods) {
+ Object.extend(Form, Form.Methods);
+ Object.extend(Form.Element, Form.Element.Methods);
+ Object.extend(Element.Methods.ByTag, {
+ "FORM": Object.clone(Form.Methods),
+ "INPUT": Object.clone(Form.Element.Methods),
+ "SELECT": Object.clone(Form.Element.Methods),
+ "TEXTAREA": Object.clone(Form.Element.Methods)
+ });
+ }
+
+ if (arguments.length == 2) {
+ var tagName = methods;
+ methods = arguments[1];
+ }
+
+ if (!tagName) Object.extend(Element.Methods, methods || { });
+ else {
+ if (Object.isArray(tagName)) tagName.each(extend);
+ else extend(tagName);
+ }
+
+ function extend(tagName) {
+ tagName = tagName.toUpperCase();
+ if (!Element.Methods.ByTag[tagName])
+ Element.Methods.ByTag[tagName] = { };
+ Object.extend(Element.Methods.ByTag[tagName], methods);
+ }
+
+ function copy(methods, destination, onlyIfAbsent) {
+ onlyIfAbsent = onlyIfAbsent || false;
+ for (var property in methods) {
+ var value = methods[property];
+ if (!Object.isFunction(value)) continue;
+ if (!onlyIfAbsent || !(property in destination))
+ destination[property] = value.methodize();
+ }
+ }
+
+ function findDOMClass(tagName) {
+ var klass;
+ var trans = {
+ "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",
+ "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList",
+ "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading",
+ "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",
+ "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION":
+ "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":
+ "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR":
+ "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":
+ "FrameSet", "IFRAME": "IFrame"
+ };
+ if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element';
+ if (window[klass]) return window[klass];
+ klass = 'HTML' + tagName + 'Element';
+ if (window[klass]) return window[klass];
+ klass = 'HTML' + tagName.capitalize() + 'Element';
+ if (window[klass]) return window[klass];
+
+ window[klass] = { };
+ window[klass].prototype = document.createElement(tagName).__proto__;
+ return window[klass];
+ }
+
+ if (F.ElementExtensions) {
+ copy(Element.Methods, HTMLElement.prototype);
+ copy(Element.Methods.Simulated, HTMLElement.prototype, true);
+ }
+
+ if (F.SpecificElementExtensions) {
+ for (var tag in Element.Methods.ByTag) {
+ var klass = findDOMClass(tag);
+ if (Object.isUndefined(klass)) continue;
+ copy(T[tag], klass.prototype);
+ }
+ }
+
+ Object.extend(Element, Element.Methods);
+ delete Element.ByTag;
+
+ if (Element.extend.refresh) Element.extend.refresh();
+ Element.cache = { };
+};
+
+document.viewport = {
+ getDimensions: function() {
+ var dimensions = { };
+ $w('width height').each(function(d) {
+ var D = d.capitalize();
+ dimensions[d] = self['inner' + D] ||
+ (document.documentElement['client' + D] || document.body['client' + D]);
+ });
+ return dimensions;
+ },
+
+ getWidth: function() {
+ return this.getDimensions().width;
+ },
+
+ getHeight: function() {
+ return this.getDimensions().height;
+ },
+
+ getScrollOffsets: function() {
+ return Element._returnOffset(
+ window.pageXOffset || document.scrollingElement.scrollLeft,
+ window.pageYOffset || document.scrollingElement.scrollTop);
+ }
+};
+/* Portions of the Selector class are derived from Jack Slocum’s DomQuery,
+ * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style
+ * license. Please see http://www.yui-ext.com/ for more information. */
+
+var Selector = Class.create({
+ initialize: function(expression) {
+ this.expression = expression.strip();
+ this.compileMatcher();
+ },
+
+ compileMatcher: function() {
+ // Selectors with namespaced attributes can't use the XPath version
+ if (Prototype.BrowserFeatures.XPath && !(/(\[[\w-]*?:|:checked)/).test(this.expression))
+ return this.compileXPathMatcher();
+
+ var e = this.expression, ps = Selector.patterns, h = Selector.handlers,
+ c = Selector.criteria, le, p, m;
+
+ if (Selector._cache[e]) {
+ this.matcher = Selector._cache[e];
+ return;
+ }
+
+ this.matcher = ["this.matcher = function(root) {",
+ "var r = root, h = Selector.handlers, c = false, n;"];
+
+ while (e && le != e && (/\S/).test(e)) {
+ le = e;
+ for (var i in ps) {
+ p = ps[i];
+ if (m = e.match(p)) {
+ this.matcher.push(Object.isFunction(c[i]) ? c[i](m) :
+ new Template(c[i]).evaluate(m));
+ e = e.replace(m[0], '');
+ break;
+ }
+ }
+ }
+
+ this.matcher.push("return h.unique(n);\n}");
+ eval(this.matcher.join('\n'));
+ Selector._cache[this.expression] = this.matcher;
+ },
+
+ compileXPathMatcher: function() {
+ var e = this.expression, ps = Selector.patterns,
+ x = Selector.xpath, le, m;
+
+ if (Selector._cache[e]) {
+ this.xpath = Selector._cache[e]; return;
+ }
+
+ this.matcher = ['.//*'];
+ while (e && le != e && (/\S/).test(e)) {
+ le = e;
+ for (var i in ps) {
+ if (m = e.match(ps[i])) {
+ this.matcher.push(Object.isFunction(x[i]) ? x[i](m) :
+ new Template(x[i]).evaluate(m));
+ e = e.replace(m[0], '');
+ break;
+ }
+ }
+ }
+
+ this.xpath = this.matcher.join('');
+ Selector._cache[this.expression] = this.xpath;
+ },
+
+ findElements: function(root) {
+ root = root || document;
+ if (this.xpath) return document._getElementsByXPath(this.xpath, root);
+ return this.matcher(root);
+ },
+
+ match: function(element) {
+ this.tokens = [];
+
+ var e = this.expression, ps = Selector.patterns, as = Selector.assertions;
+ var le, p, m;
+
+ while (e && le !== e && (/\S/).test(e)) {
+ le = e;
+ for (var i in ps) {
+ p = ps[i];
+ if (m = e.match(p)) {
+ // use the Selector.assertions methods unless the selector
+ // is too complex.
+ if (as[i]) {
+ this.tokens.push([i, Object.clone(m)]);
+ e = e.replace(m[0], '');
+ } else {
+ // reluctantly do a document-wide search
+ // and look for a match in the array
+ return this.findElements(document).include(element);
+ }
+ }
+ }
+ }
+
+ var match = true, name, matches;
+ for (var i = 0, token; token = this.tokens[i]; i++) {
+ name = token[0], matches = token[1];
+ if (!Selector.assertions[name](element, matches)) {
+ match = false; break;
+ }
+ }
+
+ return match;
+ },
+
+ toString: function() {
+ return this.expression;
+ },
+
+ inspect: function() {
+ return "#<Selector:" + this.expression.inspect() + ">";
+ }
+});
+
+Object.extend(Selector, {
+ _cache: { },
+
+ xpath: {
+ descendant: "//*",
+ child: "/*",
+ adjacent: "/following-sibling::*[1]",
+ laterSibling: '/following-sibling::*',
+ tagName: function(m) {
+ if (m[1] == '*') return '';
+ return "[local-name()='" + m[1].toLowerCase() +
+ "' or local-name()='" + m[1].toUpperCase() + "']";
+ },
+ className: "[contains(concat(' ', @class, ' '), ' #{1} ')]",
+ id: "[@id='#{1}']",
+ attrPresence: "[@#{1}]",
+ attr: function(m) {
+ m[3] = m[5] || m[6];
+ return new Template(Selector.xpath.operators[m[2]]).evaluate(m);
+ },
+ pseudo: function(m) {
+ var h = Selector.xpath.pseudos[m[1]];
+ if (!h) return '';
+ if (Object.isFunction(h)) return h(m);
+ return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);
+ },
+ operators: {
+ '=': "[@#{1}='#{3}']",
+ '!=': "[@#{1}!='#{3}']",
+ '^=': "[starts-with(@#{1}, '#{3}')]",
+ '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",
+ '*=': "[contains(@#{1}, '#{3}')]",
+ '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",
+ '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"
+ },
+ pseudos: {
+ 'first-child': '[not(preceding-sibling::*)]',
+ 'last-child': '[not(following-sibling::*)]',
+ 'only-child': '[not(preceding-sibling::* or following-sibling::*)]',
+ 'empty': "[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]",
+ 'checked': "[@checked]",
+ 'disabled': "[@disabled]",
+ 'enabled': "[not(@disabled)]",
+ 'not': function(m) {
+ var e = m[6], p = Selector.patterns,
+ x = Selector.xpath, le, m, v;
+
+ var exclusion = [];
+ while (e && le != e && (/\S/).test(e)) {
+ le = e;
+ for (var i in p) {
+ if (m = e.match(p[i])) {
+ v = Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m);
+ exclusion.push("(" + v.substring(1, v.length - 1) + ")");
+ e = e.replace(m[0], '');
+ break;
+ }
+ }
+ }
+ return "[not(" + exclusion.join(" and ") + ")]";
+ },
+ 'nth-child': function(m) {
+ return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);
+ },
+ 'nth-last-child': function(m) {
+ return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);
+ },
+ 'nth-of-type': function(m) {
+ return Selector.xpath.pseudos.nth("position() ", m);
+ },
+ 'nth-last-of-type': function(m) {
+ return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m);
+ },
+ 'first-of-type': function(m) {
+ m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m);
+ },
+ 'last-of-type': function(m) {
+ m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m);
+ },
+ 'only-of-type': function(m) {
+ var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m);
+ },
+ nth: function(fragment, m) {
+ var mm, formula = m[6], predicate;
+ if (formula == 'even') formula = '2n+0';
+ if (formula == 'odd') formula = '2n+1';
+ if (mm = formula.match(/^(\d+)$/)) // digit only
+ return '[' + fragment + "= " + mm[1] + ']';
+ if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
+ if (mm[1] == "-") mm[1] = -1;
+ var a = mm[1] ? Number(mm[1]) : 1;
+ var b = mm[2] ? Number(mm[2]) : 0;
+ predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " +
+ "((#{fragment} - #{b}) div #{a} >= 0)]";
+ return new Template(predicate).evaluate({
+ fragment: fragment, a: a, b: b });
+ }
+ }
+ }
+ },
+
+ criteria: {
+ tagName: 'n = h.tagName(n, r, "#{1}", c); c = false;',
+ className: 'n = h.className(n, r, "#{1}", c); c = false;',
+ id: 'n = h.id(n, r, "#{1}", c); c = false;',
+ attrPresence: 'n = h.attrPresence(n, r, "#{1}"); c = false;',
+ attr: function(m) {
+ m[3] = (m[5] || m[6]);
+ return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}"); c = false;').evaluate(m);
+ },
+ pseudo: function(m) {
+ if (m[6]) m[6] = m[6].replace(/"/g, '\\"');
+ return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);
+ },
+ descendant: 'c = "descendant";',
+ child: 'c = "child";',
+ adjacent: 'c = "adjacent";',
+ laterSibling: 'c = "laterSibling";'
+ },
+
+ patterns: {
+ // combinators must be listed first
+ // (and descendant needs to be last combinator)
+ laterSibling: /^\s*~\s*/,
+ child: /^\s*>\s*/,
+ adjacent: /^\s*\+\s*/,
+ descendant: /^\s/,
+
+ // selectors follow
+ tagName: /^\s*(\*|[\w\-]+)(\b|$)?/,
+ id: /^#([\w\-\*]+)(\b|$)/,
+ className: /^\.([\w\-\*]+)(\b|$)/,
+ pseudo: /^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s)|(?=:))/,
+ attrPresence: /^\[([\w]+)\]/,
+ attr: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/
+ },
+
+ // for Selector.match and Element#match
+ assertions: {
+ tagName: function(element, matches) {
+ return matches[1].toUpperCase() == element.tagName.toUpperCase();
+ },
+
+ className: function(element, matches) {
+ return Element.hasClassName(element, matches[1]);
+ },
+
+ id: function(element, matches) {
+ return element.id === matches[1];
+ },
+
+ attrPresence: function(element, matches) {
+ return Element.hasAttribute(element, matches[1]);
+ },
+
+ attr: function(element, matches) {
+ var nodeValue = Element.readAttribute(element, matches[1]);
+ return Selector.operators[matches[2]](nodeValue, matches[3]);
+ }
+ },
+
+ handlers: {
+ // UTILITY FUNCTIONS
+ // joins two collections
+ concat: function(a, b) {
+ for (var i = 0, node; node = b[i]; i++)
+ a.push(node);
+ return a;
+ },
+
+ // marks an array of nodes for counting
+ mark: function(nodes) {
+ for (var i = 0, node; node = nodes[i]; i++)
+ node._counted = true;
+ return nodes;
+ },
+
+ unmark: function(nodes) {
+ for (var i = 0, node; node = nodes[i]; i++)
+ node._counted = undefined;
+ return nodes;
+ },
+
+ // mark each child node with its position (for nth calls)
+ // "ofType" flag indicates whether we're indexing for nth-of-type
+ // rather than nth-child
+ index: function(parentNode, reverse, ofType) {
+ parentNode._counted = true;
+ if (reverse) {
+ for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) {
+ var node = nodes[i];
+ if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++;
+ }
+ } else {
+ for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++)
+ if (node.nodeType == 1 && (!ofType || node._counted)) node.nodeIndex = j++;
+ }
+ },
+
+ // filters out duplicates and extends all nodes
+ unique: function(nodes) {
+ if (nodes.length == 0) return nodes;
+ var results = [], n;
+ for (var i = 0, l = nodes.length; i < l; i++)
+ if (!(n = nodes[i])._counted) {
+ n._counted = true;
+ results.push(Element.extend(n));
+ }
+ return Selector.handlers.unmark(results);
+ },
+
+ // COMBINATOR FUNCTIONS
+ descendant: function(nodes) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ h.concat(results, node.getElementsByTagName('*'));
+ return results;
+ },
+
+ child: function(nodes) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ for (var j = 0, children = [], child; child = node.childNodes[j]; j++)
+ if (child.nodeType == 1 && child.tagName != '!') results.push(child);
+ }
+ return results;
+ },
+
+ adjacent: function(nodes) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ var next = this.nextElementSibling(node);
+ if (next) results.push(next);
+ }
+ return results;
+ },
+
+ laterSibling: function(nodes) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ h.concat(results, Element.nextSiblings(node));
+ return results;
+ },
+
+ nextElementSibling: function(node) {
+ while (node = node.nextSibling)
+ if (node.nodeType == 1) return node;
+ return null;
+ },
+
+ previousElementSibling: function(node) {
+ while (node = node.previousSibling)
+ if (node.nodeType == 1) return node;
+ return null;
+ },
+
+ // TOKEN FUNCTIONS
+ tagName: function(nodes, root, tagName, combinator) {
+ tagName = tagName.toUpperCase();
+ var results = [], h = Selector.handlers;
+ if (nodes) {
+ if (combinator) {
+ // fastlane for ordinary descendant combinators
+ if (combinator == "descendant") {
+ for (var i = 0, node; node = nodes[i]; i++)
+ h.concat(results, node.getElementsByTagName(tagName));
+ return results;
+ } else nodes = this[combinator](nodes);
+ if (tagName == "*") return nodes;
+ }
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node.tagName.toUpperCase() == tagName) results.push(node);
+ return results;
+ } else return root.getElementsByTagName(tagName);
+ },
+
+ id: function(nodes, root, id, combinator) {
+ var targetNode = $(id), h = Selector.handlers;
+ if (!targetNode) return [];
+ if (!nodes && root == document) return [targetNode];
+ if (nodes) {
+ if (combinator) {
+ if (combinator == 'child') {
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (targetNode.parentNode == node) return [targetNode];
+ } else if (combinator == 'descendant') {
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (Element.descendantOf(targetNode, node)) return [targetNode];
+ } else if (combinator == 'adjacent') {
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (Selector.handlers.previousElementSibling(targetNode) == node)
+ return [targetNode];
+ } else nodes = h[combinator](nodes);
+ }
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node == targetNode) return [targetNode];
+ return [];
+ }
+ return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : [];
+ },
+
+ className: function(nodes, root, className, combinator) {
+ if (nodes && combinator) nodes = this[combinator](nodes);
+ return Selector.handlers.byClassName(nodes, root, className);
+ },
+
+ byClassName: function(nodes, root, className) {
+ if (!nodes) nodes = Selector.handlers.descendant([root]);
+ var needle = ' ' + className + ' ';
+ for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) {
+ nodeClassName = node.className;
+ if (nodeClassName.length == 0) continue;
+ if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle))
+ results.push(node);
+ }
+ return results;
+ },
+
+ attrPresence: function(nodes, root, attr) {
+ if (!nodes) nodes = root.getElementsByTagName("*");
+ var results = [];
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (Element.hasAttribute(node, attr)) results.push(node);
+ return results;
+ },
+
+ attr: function(nodes, root, attr, value, operator) {
+ if (!nodes) nodes = root.getElementsByTagName("*");
+ var handler = Selector.operators[operator], results = [];
+ for (var i = 0, node; node = nodes[i]; i++) {
+ var nodeValue = Element.readAttribute(node, attr);
+ if (nodeValue === null) continue;
+ if (handler(nodeValue, value)) results.push(node);
+ }
+ return results;
+ },
+
+ pseudo: function(nodes, name, value, root, combinator) {
+ if (nodes && combinator) nodes = this[combinator](nodes);
+ if (!nodes) nodes = root.getElementsByTagName("*");
+ return Selector.pseudos[name](nodes, value, root);
+ }
+ },
+
+ pseudos: {
+ 'first-child': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ if (Selector.handlers.previousElementSibling(node)) continue;
+ results.push(node);
+ }
+ return results;
+ },
+ 'last-child': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ if (Selector.handlers.nextElementSibling(node)) continue;
+ results.push(node);
+ }
+ return results;
+ },
+ 'only-child': function(nodes, value, root) {
+ var h = Selector.handlers;
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (!h.previousElementSibling(node) && !h.nextElementSibling(node))
+ results.push(node);
+ return results;
+ },
+ 'nth-child': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root);
+ },
+ 'nth-last-child': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root, true);
+ },
+ 'nth-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root, false, true);
+ },
+ 'nth-last-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, formula, root, true, true);
+ },
+ 'first-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, "1", root, false, true);
+ },
+ 'last-of-type': function(nodes, formula, root) {
+ return Selector.pseudos.nth(nodes, "1", root, true, true);
+ },
+ 'only-of-type': function(nodes, formula, root) {
+ var p = Selector.pseudos;
+ return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root);
+ },
+
+ // handles the an+b logic
+ getIndices: function(a, b, total) {
+ if (a == 0) return b > 0 ? [b] : [];
+ return $R(1, total).inject([], function(memo, i) {
+ if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i);
+ return memo;
+ });
+ },
+
+ // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type
+ nth: function(nodes, formula, root, reverse, ofType) {
+ if (nodes.length == 0) return [];
+ if (formula == 'even') formula = '2n+0';
+ if (formula == 'odd') formula = '2n+1';
+ var h = Selector.handlers, results = [], indexed = [], m;
+ h.mark(nodes);
+ for (var i = 0, node; node = nodes[i]; i++) {
+ if (!node.parentNode._counted) {
+ h.index(node.parentNode, reverse, ofType);
+ indexed.push(node.parentNode);
+ }
+ }
+ if (formula.match(/^\d+$/)) { // just a number
+ formula = Number(formula);
+ for (var i = 0, node; node = nodes[i]; i++)
+ if (node.nodeIndex == formula) results.push(node);
+ } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
+ if (m[1] == "-") m[1] = -1;
+ var a = m[1] ? Number(m[1]) : 1;
+ var b = m[2] ? Number(m[2]) : 0;
+ var indices = Selector.pseudos.getIndices(a, b, nodes.length);
+ for (var i = 0, node, l = indices.length; node = nodes[i]; i++) {
+ for (var j = 0; j < l; j++)
+ if (node.nodeIndex == indices[j]) results.push(node);
+ }
+ }
+ h.unmark(nodes);
+ h.unmark(indexed);
+ return results;
+ },
+
+ 'empty': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++) {
+ // IE treats comments as element nodes
+ if (node.tagName == '!' || (node.firstChild && !node.innerHTML.match(/^\s*$/))) continue;
+ results.push(node);
+ }
+ return results;
+ },
+
+ 'not': function(nodes, selector, root) {
+ var h = Selector.handlers, selectorType, m;
+ var exclusions = new Selector(selector).findElements(root);
+ h.mark(exclusions);
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (!node._counted) results.push(node);
+ h.unmark(exclusions);
+ return results;
+ },
+
+ 'enabled': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (!node.disabled) results.push(node);
+ return results;
+ },
+
+ 'disabled': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (node.disabled) results.push(node);
+ return results;
+ },
+
+ 'checked': function(nodes, value, root) {
+ for (var i = 0, results = [], node; node = nodes[i]; i++)
+ if (node.checked) results.push(node);
+ return results;
+ }
+ },
+
+ operators: {
+ '=': function(nv, v) { return nv == v; },
+ '!=': function(nv, v) { return nv != v; },
+ '^=': function(nv, v) { return nv.startsWith(v); },
+ '$=': function(nv, v) { return nv.endsWith(v); },
+ '*=': function(nv, v) { return nv.include(v); },
+ '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); },
+ '|=': function(nv, v) { return ('-' + nv.toUpperCase() + '-').include('-' + v.toUpperCase() + '-'); }
+ },
+
+ matchElements: function(elements, expression) {
+ var matches = new Selector(expression).findElements(), h = Selector.handlers;
+ h.mark(matches);
+ for (var i = 0, results = [], element; element = elements[i]; i++)
+ if (element._counted) results.push(element);
+ h.unmark(matches);
+ return results;
+ },
+
+ findElement: function(elements, expression, index) {
+ if (Object.isNumber(expression)) {
+ index = expression; expression = false;
+ }
+ return Selector.matchElements(elements, expression || '*')[index || 0];
+ },
+
+ findChildElements: function(element, expressions) {
+ var exprs = expressions.join(','), expressions = [];
+ exprs.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
+ expressions.push(m[1].strip());
+ });
+ var results = [], h = Selector.handlers;
+ for (var i = 0, l = expressions.length, selector; i < l; i++) {
+ selector = new Selector(expressions[i].strip());
+ h.concat(results, selector.findElements(element));
+ }
+ return (l > 1) ? h.unique(results) : results;
+ }
+});
+
+function $$() {
+ return Selector.findChildElements(document, $A(arguments));
+}
+var Form = {
+ reset: function(form) {
+ $(form).reset();
+ return form;
+ },
+
+ serializeElements: function(elements, options) {
+ if (typeof options != 'object') options = { hash: !!options };
+ else if (options.hash === undefined) options.hash = true;
+ var key, value, submitted = false, submit = options.submit;
+
+ var data = elements.inject({ }, function(result, element) {
+ if (!element.disabled && element.name) {
+ key = element.name; value = $(element).getValue();
+ if (value != null && (element.type != 'submit' || (!submitted &&
+ submit !== false && (!submit || key == submit) && (submitted = true)))) {
+ if (key in result) {
+ // a key is already present; construct an array of values
+ if (!Object.isArray(result[key])) result[key] = [result[key]];
+ result[key].push(value);
+ }
+ else result[key] = value;
+ }
+ }
+ return result;
+ });
+
+ return options.hash ? data : Object.toQueryString(data);
+ }
+};
+
+Form.Methods = {
+ serialize: function(form, options) {
+ return Form.serializeElements(Form.getElements(form), options);
+ },
+
+ getElements: function(form) {
+ return $A($(form).getElementsByTagName('*')).inject([],
+ function(elements, child) {
+ if (Form.Element.Serializers[child.tagName.toLowerCase()])
+ elements.push(Element.extend(child));
+ return elements;
+ }
+ );
+ },
+
+ getInputs: function(form, typeName, name) {
+ form = $(form);
+ var inputs = form.getElementsByTagName('input');
+
+ if (!typeName && !name) return $A(inputs).map(Element.extend);
+
+ for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) {
+ var input = inputs[i];
+ if ((typeName && input.type != typeName) || (name && input.name != name))
+ continue;
+ matchingInputs.push(Element.extend(input));
+ }
+
+ return matchingInputs;
+ },
+
+ disable: function(form) {
+ form = $(form);
+ Form.getElements(form).invoke('disable');
+ return form;
+ },
+
+ enable: function(form) {
+ form = $(form);
+ Form.getElements(form).invoke('enable');
+ return form;
+ },
+
+ findFirstElement: function(form) {
+ var elements = $(form).getElements().findAll(function(element) {
+ return 'hidden' != element.type && !element.disabled;
+ });
+ var firstByIndex = elements.findAll(function(element) {
+ return element.hasAttribute('tabIndex') && element.tabIndex >= 0;
+ }).sortBy(function(element) { return element.tabIndex }).first();
+
+ return firstByIndex ? firstByIndex : elements.find(function(element) {
+ return ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
+ });
+ },
+
+ focusFirstElement: function(form) {
+ form = $(form);
+ form.findFirstElement().activate();
+ return form;
+ },
+
+ request: function(form, options) {
+ form = $(form), options = Object.clone(options || { });
+
+ var params = options.parameters, action = form.readAttribute('action') || '';
+ if (action.blank()) action = window.location.href;
+ options.parameters = form.serialize(true);
+
+ if (params) {
+ if (Object.isString(params)) params = params.toQueryParams();
+ Object.extend(options.parameters, params);
+ }
+
+ if (form.hasAttribute('method') && !options.method)
+ options.method = form.method;
+
+ return new Ajax.Request(action, options);
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element = {
+ focus: function(element) {
+ $(element).focus();
+ return element;
+ },
+
+ select: function(element) {
+ $(element).select();
+ return element;
+ }
+};
+
+Form.Element.Methods = {
+ serialize: function(element) {
+ element = $(element);
+ if (!element.disabled && element.name) {
+ var value = element.getValue();
+ if (value != undefined) {
+ var pair = { };
+ pair[element.name] = value;
+ return Object.toQueryString(pair);
+ }
+ }
+ return '';
+ },
+
+ getValue: function(element) {
+ element = $(element);
+ var method = element.tagName.toLowerCase();
+ return Form.Element.Serializers[method](element);
+ },
+
+ setValue: function(element, value) {
+ element = $(element);
+ var method = element.tagName.toLowerCase();
+ Form.Element.Serializers[method](element, value);
+ return element;
+ },
+
+ clear: function(element) {
+ $(element).value = '';
+ return element;
+ },
+
+ present: function(element) {
+ return $(element).value != '';
+ },
+
+ activate: function(element) {
+ element = $(element);
+ try {
+ element.focus();
+ if (element.select && (element.tagName.toLowerCase() != 'input' ||
+ !['button', 'reset', 'submit'].include(element.type)))
+ element.select();
+ } catch (e) { }
+ return element;
+ },
+
+ disable: function(element) {
+ element = $(element);
+ element.blur();
+ element.disabled = true;
+ return element;
+ },
+
+ enable: function(element) {
+ element = $(element);
+ element.disabled = false;
+ return element;
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+var Field = Form.Element;
+var $F = Form.Element.Methods.getValue;
+
+/*--------------------------------------------------------------------------*/
+
+Form.Element.Serializers = {
+ input: function(element, value) {
+ switch (element.type.toLowerCase()) {
+ case 'checkbox':
+ case 'radio':
+ return Form.Element.Serializers.inputSelector(element, value);
+ default:
+ return Form.Element.Serializers.textarea(element, value);
+ }
+ },
+
+ inputSelector: function(element, value) {
+ if (value === undefined) return element.checked ? element.value : null;
+ else element.checked = !!value;
+ },
+
+ textarea: function(element, value) {
+ if (value === undefined) return element.value;
+ else element.value = value;
+ },
+
+ select: function(element, index) {
+ if (index === undefined)
+ return this[element.type == 'select-one' ?
+ 'selectOne' : 'selectMany'](element);
+ else {
+ var opt, value, single = !Object.isArray(index);
+ for (var i = 0, length = element.length; i < length; i++) {
+ opt = element.options[i];
+ value = this.optionValue(opt);
+ if (single) {
+ if (value == index) {
+ opt.selected = true;
+ return;
+ }
+ }
+ else opt.selected = index.include(value);
+ }
+ }
+ },
+
+ selectOne: function(element) {
+ var index = element.selectedIndex;
+ return index >= 0 ? this.optionValue(element.options[index]) : null;
+ },
+
+ selectMany: function(element) {
+ var values, length = element.length;
+ if (!length) return null;
+
+ for (var i = 0, values = []; i < length; i++) {
+ var opt = element.options[i];
+ if (opt.selected) values.push(this.optionValue(opt));
+ }
+ return values;
+ },
+
+ optionValue: function(opt) {
+ // extend element because hasAttribute may not be native
+ return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text;
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.TimedObserver = Class.create(PeriodicalExecuter, {
+ initialize: function($super, element, frequency, callback) {
+ $super(callback, frequency);
+ this.element = $(element);
+ this.lastValue = this.getValue();
+ },
+
+ execute: function() {
+ var value = this.getValue();
+ if (Object.isString(this.lastValue) && Object.isString(value) ?
+ this.lastValue != value : String(this.lastValue) != String(value)) {
+ this.callback(this.element, value);
+ this.lastValue = value;
+ }
+ }
+});
+
+Form.Element.Observer = Class.create(Abstract.TimedObserver, {
+ getValue: function() {
+ return Form.Element.getValue(this.element);
+ }
+});
+
+Form.Observer = Class.create(Abstract.TimedObserver, {
+ getValue: function() {
+ return Form.serialize(this.element);
+ }
+});
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.EventObserver = Class.create({
+ initialize: function(element, callback) {
+ this.element = $(element);
+ this.callback = callback;
+
+ this.lastValue = this.getValue();
+ if (this.element.tagName.toLowerCase() == 'form')
+ this.registerFormCallbacks();
+ else
+ this.registerCallback(this.element);
+ },
+
+ onElementEvent: function() {
+ var value = this.getValue();
+ if (this.lastValue != value) {
+ this.callback(this.element, value);
+ this.lastValue = value;
+ }
+ },
+
+ registerFormCallbacks: function() {
+ Form.getElements(this.element).each(this.registerCallback, this);
+ },
+
+ registerCallback: function(element) {
+ if (element.type) {
+ switch (element.type.toLowerCase()) {
+ case 'checkbox':
+ case 'radio':
+ Event.observe(element, 'click', this.onElementEvent.bind(this));
+ break;
+ default:
+ Event.observe(element, 'change', this.onElementEvent.bind(this));
+ break;
+ }
+ }
+ }
+});
+
+Form.Element.EventObserver = Class.create(Abstract.EventObserver, {
+ getValue: function() {
+ return Form.Element.getValue(this.element);
+ }
+});
+
+Form.EventObserver = Class.create(Abstract.EventObserver, {
+ getValue: function() {
+ return Form.serialize(this.element);
+ }
+});
+if (!window.Event) var Event = { };
+
+Object.extend(Event, {
+ KEY_BACKSPACE: 8,
+ KEY_TAB: 9,
+ KEY_RETURN: 13,
+ KEY_ESC: 27,
+ KEY_LEFT: 37,
+ KEY_UP: 38,
+ KEY_RIGHT: 39,
+ KEY_DOWN: 40,
+ KEY_DELETE: 46,
+ KEY_HOME: 36,
+ KEY_END: 35,
+ KEY_PAGEUP: 33,
+ KEY_PAGEDOWN: 34,
+ KEY_INSERT: 45,
+
+ cache: { },
+
+ relatedTarget: function(event) {
+ var element;
+ switch(event.type) {
+ case 'mouseover': element = event.fromElement; break;
+ case 'mouseout': element = event.toElement; break;
+ default: return null;
+ }
+ return Element.extend(element);
+ }
+});
+
+Event.Methods = (function() {
+ var isButton;
+
+ if (Prototype.Browser.IE) {
+ var buttonMap = { 0: 1, 1: 4, 2: 2 };
+ isButton = function(event, code) {
+ return event.button == buttonMap[code];
+ };
+
+ } else if (Prototype.Browser.WebKit) {
+ isButton = function(event, code) {
+ switch (code) {
+ case 0: return event.which == 1 && !event.metaKey;
+ case 1: return event.which == 1 && event.metaKey;
+ default: return false;
+ }
+ };
+
+ } else {
+ isButton = function(event, code) {
+ return event.which ? (event.which === code + 1) : (event.button === code);
+ };
+ }
+
+ return {
+ isLeftClick: function(event) { return isButton(event, 0) },
+ isMiddleClick: function(event) { return isButton(event, 1) },
+ isRightClick: function(event) { return isButton(event, 2) },
+
+ element: function(event) {
+ var node = Event.extend(event).target;
+ return Element.extend(node.nodeType == Node.TEXT_NODE ? node.parentNode : node);
+ },
+
+ findElement: function(event, expression) {
+ var element = Event.element(event);
+ return element.match(expression) ? element : element.up(expression);
+ },
+
+ pointer: function(event) {
+ return {
+ x: event.pageX || (event.clientX + document.scrollingElement.scrollLeft),
+ y: event.pageY || (event.clientY + document.scrollingElement.scrollTop)
+ };
+ },
+
+ pointerX: function(event) { return Event.pointer(event).x },
+ pointerY: function(event) { return Event.pointer(event).y },
+
+ stop: function(event) {
+ Event.extend(event);
+ event.preventDefault();
+ event.stopPropagation();
+ event.stopped = true;
+ }
+ };
+})();
+
+Event.extend = (function() {
+ var methods = Object.keys(Event.Methods).inject({ }, function(m, name) {
+ m[name] = Event.Methods[name].methodize();
+ return m;
+ });
+
+ if (Prototype.Browser.IE) {
+ Object.extend(methods, {
+ stopPropagation: function() { this.cancelBubble = true },
+ preventDefault: function() { this.returnValue = false },
+ inspect: function() { return "[object Event]" }
+ });
+
+ return function(event) {
+ if (!event) return false;
+ if (event._extendedByPrototype) return event;
+
+ event._extendedByPrototype = Prototype.emptyFunction;
+ var pointer = Event.pointer(event);
+ Object.extend(event, {
+ target: event.srcElement,
+ relatedTarget: Event.relatedTarget(event),
+ pageX: pointer.x,
+ pageY: pointer.y
+ });
+ return Object.extend(event, methods);
+ };
+
+ } else {
+ Event.prototype = Event.prototype || document.createEvent("HTMLEvents").__proto__;
+ Object.extend(Event.prototype, methods);
+ return Prototype.K;
+ }
+})();
+
+Object.extend(Event, (function() {
+ var cache = Event.cache;
+
+ function getEventID(element) {
+ if (element._eventID) return element._eventID;
+ arguments.callee.id = arguments.callee.id || 1;
+ return element._eventID = ++arguments.callee.id;
+ }
+
+ function getDOMEventName(eventName) {
+ if (eventName && eventName.include(':')) return "dataavailable";
+ return eventName;
+ }
+
+ function getCacheForID(id) {
+ return cache[id] = cache[id] || { };
+ }
+
+ function getWrappersForEventName(id, eventName) {
+ var c = getCacheForID(id);
+ return c[eventName] = c[eventName] || [];
+ }
+
+ function createWrapper(element, eventName, handler) {
+ var id = getEventID(element);
+ var c = getWrappersForEventName(id, eventName);
+ if (c.pluck("handler").include(handler)) return false;
+
+ var wrapper = function(event) {
+ if (!Event || !Event.extend ||
+ (event.eventName && event.eventName != eventName))
+ return false;
+
+ Event.extend(event);
+ handler.call(element, event)
+ };
+
+ wrapper.handler = handler;
+ c.push(wrapper);
+ return wrapper;
+ }
+
+ function findWrapper(id, eventName, handler) {
+ var c = getWrappersForEventName(id, eventName);
+ return c.find(function(wrapper) { return wrapper.handler == handler });
+ }
+
+ function destroyWrapper(id, eventName, handler) {
+ var c = getCacheForID(id);
+ if (!c[eventName]) return false;
+ c[eventName] = c[eventName].without(findWrapper(id, eventName, handler));
+ }
+
+ function destroyCache() {
+ for (var id in cache)
+ for (var eventName in cache[id])
+ cache[id][eventName] = null;
+ }
+
+ if (window.attachEvent) {
+ window.attachEvent("onunload", destroyCache);
+ }
+
+ return {
+ observe: function(element, eventName, handler) {
+ element = $(element);
+ var name = getDOMEventName(eventName);
+
+ var wrapper = createWrapper(element, eventName, handler);
+ if (!wrapper) return element;
+
+ if (element.addEventListener) {
+ element.addEventListener(name, wrapper, false);
+ } else {
+ element.attachEvent("on" + name, wrapper);
+ }
+
+ return element;
+ },
+
+ stopObserving: function(element, eventName, handler) {
+ element = $(element);
+ var id = getEventID(element), name = getDOMEventName(eventName);
+
+ if (!handler && eventName) {
+ getWrappersForEventName(id, eventName).each(function(wrapper) {
+ element.stopObserving(eventName, wrapper.handler);
+ });
+ return element;
+
+ } else if (!eventName) {
+ Object.keys(getCacheForID(id)).each(function(eventName) {
+ element.stopObserving(eventName);
+ });
+ return element;
+ }
+
+ var wrapper = findWrapper(id, eventName, handler);
+ if (!wrapper) return element;
+
+ if (element.removeEventListener) {
+ element.removeEventListener(name, wrapper, false);
+ } else {
+ element.detachEvent("on" + name, wrapper);
+ }
+
+ destroyWrapper(id, eventName, handler);
+
+ return element;
+ },
+
+ fire: function(element, eventName, memo) {
+ element = $(element);
+ if (element == document && document.createEvent && !element.dispatchEvent)
+ element = document.documentElement;
+
+ if (document.createEvent) {
+ var event = document.createEvent("HTMLEvents");
+ event.initEvent("dataavailable", true, true);
+ } else {
+ var event = document.createEventObject();
+ event.eventType = "ondataavailable";
+ }
+
+ event.eventName = eventName;
+ event.memo = memo || { };
+
+ if (document.createEvent) {
+ element.dispatchEvent(event);
+ } else {
+ element.fireEvent(event.eventType, event);
+ }
+
+ return event;
+ }
+ };
+})());
+
+Object.extend(Event, Event.Methods);
+
+Element.addMethods({
+ fire: Event.fire,
+ observe: Event.observe,
+ stopObserving: Event.stopObserving
+});
+
+Object.extend(document, {
+ fire: Element.Methods.fire.methodize(),
+ observe: Element.Methods.observe.methodize(),
+ stopObserving: Element.Methods.stopObserving.methodize()
+});
+
+(function() {
+ /* Support for the DOMContentLoaded event is based on work by Dan Webb,
+ Matthias Miller, Dean Edwards and John Resig. */
+
+ var timer, fired = false;
+
+ function fireContentLoadedEvent() {
+ if (fired) return;
+ if (timer) window.clearInterval(timer);
+ document.fire("dom:loaded");
+ fired = true;
+ }
+
+ if (document.addEventListener) {
+ if (Prototype.Browser.WebKit) {
+ timer = window.setInterval(function() {
+ if (/loaded|complete/.test(document.readyState))
+ fireContentLoadedEvent();
+ }, 0);
+
+ Event.observe(window, "load", fireContentLoadedEvent);
+
+ } else {
+ document.addEventListener("DOMContentLoaded",
+ fireContentLoadedEvent, false);
+ }
+
+ } else {
+ document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");
+ $("__onDOMContentLoaded").onreadystatechange = function() {
+ if (this.readyState == "complete") {
+ this.onreadystatechange = null;
+ fireContentLoadedEvent();
+ }
+ };
+ }
+})();
+/*------------------------------- DEPRECATED -------------------------------*/
+
+Hash.toQueryString = Object.toQueryString;
+
+var Toggle = { display: Element.toggle };
+
+Element.Methods.childOf = Element.Methods.descendantOf;
+
+var Insertion = {
+ Before: function(element, content) {
+ return Element.insert(element, {before:content});
+ },
+
+ Top: function(element, content) {
+ return Element.insert(element, {top:content});
+ },
+
+ Bottom: function(element, content) {
+ return Element.insert(element, {bottom:content});
+ },
+
+ After: function(element, content) {
+ return Element.insert(element, {after:content});
+ }
+};
+
+var $continue = new Error('"throw $continue" is deprecated, use "return" instead');
+
+// This should be moved to script.aculo.us; notice the deprecated methods
+// further below, that map to the newer Element methods.
+var Position = {
+ // set to true if needed, warning: firefox performance problems
+ // NOT neeeded for page scrolling, only if draggable contained in
+ // scrollable elements
+ includeScrollOffsets: false,
+
+ // must be called before calling withinIncludingScrolloffset, every time the
+ // page is scrolled
+ prepare: function() {
+ this.deltaX = window.pageXOffset
+ || document.scrollingElement.scrollLeft
+ || 0;
+ this.deltaY = window.pageYOffset
+ || document.scrollingElement.scrollTop
+ || 0;
+ },
+
+ // caches x/y coordinate pair to use with overlap
+ within: function(element, x, y) {
+ if (this.includeScrollOffsets)
+ return this.withinIncludingScrolloffsets(element, x, y);
+ this.xcomp = x;
+ this.ycomp = y;
+ this.offset = Element.cumulativeOffset(element);
+
+ return (y >= this.offset[1] &&
+ y < this.offset[1] + element.offsetHeight &&
+ x >= this.offset[0] &&
+ x < this.offset[0] + element.offsetWidth);
+ },
+
+ withinIncludingScrolloffsets: function(element, x, y) {
+ var offsetcache = Element.cumulativeScrollOffset(element);
+
+ this.xcomp = x + offsetcache[0] - this.deltaX;
+ this.ycomp = y + offsetcache[1] - this.deltaY;
+ this.offset = Element.cumulativeOffset(element);
+
+ return (this.ycomp >= this.offset[1] &&
+ this.ycomp < this.offset[1] + element.offsetHeight &&
+ this.xcomp >= this.offset[0] &&
+ this.xcomp < this.offset[0] + element.offsetWidth);
+ },
+
+ // within must be called directly before
+ overlap: function(mode, element) {
+ if (!mode) return 0;
+ if (mode == 'vertical')
+ return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
+ element.offsetHeight;
+ if (mode == 'horizontal')
+ return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
+ element.offsetWidth;
+ },
+
+ // Deprecation layer -- use newer Element methods now (1.5.2).
+
+ cumulativeOffset: Element.Methods.cumulativeOffset,
+
+ positionedOffset: Element.Methods.positionedOffset,
+
+ absolutize: function(element) {
+ Position.prepare();
+ return Element.absolutize(element);
+ },
+
+ relativize: function(element) {
+ Position.prepare();
+ return Element.relativize(element);
+ },
+
+ realOffset: Element.Methods.cumulativeScrollOffset,
+
+ offsetParent: Element.Methods.getOffsetParent,
+
+ page: Element.Methods.viewportOffset,
+
+ clone: function(source, target, options) {
+ options = options || { };
+ return Element.clonePosition(target, source, options);
+ }
+};
+
+/*--------------------------------------------------------------------------*/
+
+if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){
+ function iter(name) {
+ return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]";
+ }
+
+ instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ?
+ function(element, className) {
+ className = className.toString().strip();
+ var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className);
+ return cond ? document._getElementsByXPath('.//*' + cond, element) : [];
+ } : function(element, className) {
+ className = className.toString().strip();
+ var elements = [], classNames = (/\s/.test(className) ? $w(className) : null);
+ if (!classNames && !className) return elements;
+
+ var nodes = $(element).getElementsByTagName('*');
+ className = ' ' + className + ' ';
+
+ for (var i = 0, child, cn; child = nodes[i]; i++) {
+ if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) ||
+ (classNames && classNames.all(function(name) {
+ return !name.toString().blank() && cn.include(' ' + name + ' ');
+ }))))
+ elements.push(Element.extend(child));
+ }
+ return elements;
+ };
+
+ return function(className, parentElement) {
+ return $(parentElement || document.body).getElementsByClassName(className);
+ };
+}(Element.Methods);
+
+/*--------------------------------------------------------------------------*/
+
+Element.ClassNames = Class.create();
+Element.ClassNames.prototype = {
+ initialize: function(element) {
+ this.element = $(element);
+ },
+
+ _each: function(iterator) {
+ this.element.className.split(/\s+/).select(function(name) {
+ return name.length > 0;
+ })._each(iterator);
+ },
+
+ set: function(className) {
+ this.element.className = className;
+ },
+
+ add: function(classNameToAdd) {
+ if (this.include(classNameToAdd)) return;
+ this.set($A(this).concat(classNameToAdd).join(' '));
+ },
+
+ remove: function(classNameToRemove) {
+ if (!this.include(classNameToRemove)) return;
+ this.set($A(this).without(classNameToRemove).join(' '));
+ },
+
+ toString: function() {
+ return $A(this).join(' ');
+ }
+};
+
+Object.extend(Element.ClassNames.prototype, Enumerable);
+
+/*--------------------------------------------------------------------------*/
+
+Element.addMethods();
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/checkbox-title.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/checkbox-title.html
new file mode 100644
index 0000000000..1ce1a6ee83
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/checkbox-title.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Checkbox with title attribute and no other labeling mechanism</title>
+ </head>
+ <body>
+ <input type="checkbox" id="test" title="foo">
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/file-title.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/file-title.html
new file mode 100644
index 0000000000..769dddbf80
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/file-title.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>File input with title attribute and no other labeling mechanism</title>
+ </head>
+ <body>
+ <input type="file" id="test" title="foo">
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/password-title.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/password-title.html
new file mode 100644
index 0000000000..7e2fc7c403
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/password-title.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Password input with title attribute and no other labeling mechanism</title>
+ </head>
+ <body>
+ <input type="password" id="test" title="foo">
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/radio-title.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/radio-title.html
new file mode 100644
index 0000000000..df7729c781
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/radio-title.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Radio button with title attribute and no other labeling mechanism</title>
+ </head>
+ <body>
+ <input type="radio" id="test" title="foo">
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/text-title.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/text-title.html
new file mode 100644
index 0000000000..48ac5a34a5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-input/text-title.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Text input with title attribute and no other labeling mechanism</title>
+ </head>
+ <body>
+ <input type="text" id="test" title="foo">
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/673.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/673.html
new file mode 100644
index 0000000000..38100513da
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/673.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 673</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 673</h1>
+
+ <div id="TEST_ID" aria-live="polite" >
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is defined in markup with the value="polite".
+ After the onload event completes a child DOM text node is added to the element with
+ the aria-live attribute.</p>
+
+ <script>
+
+ function addTextNode() {
+ var node = document.getElementById('TEST_ID');
+ var text_node = document.createTextNode('TEST TEXT');
+ node.appendChild(text_node);
+ }
+
+ function onload() {
+ setTimeout(addTextNode,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/674.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/674.html
new file mode 100644
index 0000000000..52269a560a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/674.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 674</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 674</h1>
+
+ <div id="TEST_ID" aria-live="polite" >
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is defined in markup with the value="polite".
+ After the onload event completes a child DOM text node is added to the element
+ with the aria-live attribute.</p>
+
+ <script>
+
+ function addTextNode() {
+ var node = document.getElementById('TEST_ID');
+ var text_node = document.createTextNode('TEST TEXT');
+ node.appendChild(text_node);
+ }
+
+ function onload() {
+ setTimeout(addTextNode,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/675.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/675.html
new file mode 100644
index 0000000000..1c778dd0bd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/675.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 675</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 675</h1>
+
+ <div id="TEST_ID">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element without an aria-live attribute is defined in markup.
+ After the onload event completes an aria-live attribute with the
+ value 'assertive' is added to the element and a child DOM text
+ node is added to the element.</p>
+
+ <script>
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID');
+ node.setAttribute('aria-live', 'assertive');
+ var text_node = document.createTextNode('TEST TEXT');
+ node.appendChild(text_node);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/676.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/676.html
new file mode 100644
index 0000000000..117fc5c575
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/676.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 676</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 676</h1>
+
+ <div id="TEST_ID">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element without an aria-live attribute is defined in markup.
+ After the onload event completes a new element with an aria-live attribute with the
+ value 'assertive' is added to the document and a child element and text
+ node is added to the element with the aria-live attribute.</p>
+
+ <script>
+
+ function addElement() {
+ var node = document.getElementById('TEST_ID');
+ var element_node = document.createElement('span');
+ element_node.setAttribute('aria-live','assertive');
+ var text_node = document.createTextNode('Text added in a span element on load');
+ element_node.appendChild(text_node);
+ node.appendChild(element_node);
+ }
+
+ function onload() {
+ setTimeout(addElement,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/677.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/677.html
new file mode 100644
index 0000000000..9a6b48805d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/677.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 677</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 677</h1>
+
+ <div aria-live="polite" >
+ <span id="TEST_ID" style="display: none">Text in markup</span>
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is defined in markup with the value="polite"
+ which has a child DOM element node with text content that is hidden using CSS display="none".
+ After the onload event completes a child DOM element node with text content has the
+ CSS dsiplay property changed to display="block".</p>
+
+ <script>
+
+ function showElement() {
+ var node = document.getElementById('TEST_ID');
+ node.style.display = 'block';
+ }
+
+ function onload() {
+ setTimeout(showElement,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/678.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/678.html
new file mode 100644
index 0000000000..6479eca47c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/678.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 678</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 678</h1>
+
+ <div aria-live="assertive" >
+ <span id="TEST_ID" style="display: none">Text in markup</span>
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is defined in markup with the
+ value="assertive" which has a child DOM element node with text content
+ that is hidden using CSS display="none". After the onload event completes
+ a child DOM element node with text content has the CSS dsiplay property
+ changed to display="block".</p>
+
+ <script>
+
+ function showElement() {
+ var node = document.getElementById('TEST_ID');
+ node.style.display = 'block';
+ }
+
+ function onload() {
+ setTimeout(showElement,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/679.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/679.html
new file mode 100644
index 0000000000..0f745965dc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/679.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 679</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 679</h1>
+
+ <div aria-live="polite" >
+ <span>Text before test : </span>
+ <span id="TEST_ID" style="visibility: hidden">TEST TEXT</span>
+ <span> : Text after test</span>
+ </div>
+
+ <h2>Description</h2>
+
+ <p>An element with an aria-live attribute is defined in markup with the value="polite" which has a child
+ DOM element node with text content that is hidden using CSS visibility="hidden".
+ After the onload event completes a child DOM element node with text content has the
+ CSS dsiplay property changed to visibility="visible".</p>
+
+ <script>
+
+ function showElement() {
+ var node = document.getElementById('TEST_ID');
+ node.style.visibility = 'visible';
+ }
+
+ function onload() {
+ setTimeout(showElement,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/680.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/680.html
new file mode 100644
index 0000000000..9a64936755
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/680.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 680</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 680</h1>
+
+ <div aria-live="assertive" >
+ <span>Text before test : </span>
+ <span id="TEST_ID" style="visibility: hidden">TEST TEXT</span>
+ <span> : Text after test</span>
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is defined in markup with the value="assertive"
+ which has a child DOM element node with text content that is hidden using CSS visibility="hidden".
+ After the onload event completes a child DOM element node with text content has the CSS dsiplay
+ property changed to visibility="visible".</p>
+
+ <script>
+
+ function showElement() {
+ var node = document.getElementById('TEST_ID');
+ node.style.visibility = 'visible';
+ }
+
+ function onload() {
+ setTimeout(showElement,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/681.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/681.html
new file mode 100644
index 0000000000..e8a60269cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/681.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 681</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 681</h1>
+
+ <div id="TEST_ID" aria-live="polite">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is added to the document by a script during the onload
+ event with the value="polite". After the onload event completes a child DOM text node is added
+ to the element with the aria-live attribute.</p>
+
+ <script>
+
+ function addChildTextNode() {
+ var node = document.getElementById('TEST_ID');
+ var text_node = document.createTextNode("TEST TEXT");
+ node.appendChild(text_node);
+ }
+
+ function onload() {
+ setTimeout(addChildTextNode,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/682.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/682.html
new file mode 100644
index 0000000000..85d744de6d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/682.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 682</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 682</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is added to the document by a script during the onload
+ event with the value="assertive". After the onload event completes a child DOM text node is
+ added to the element with the aria-live attribute.</p>
+
+ <script>
+
+ function addChildTextNode() {
+ var node = document.getElementById('TEST_ID_2');
+ var text_node = document.createTextNode("TEST TEXT");
+ node.appendChild(text_node);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+ element_node.setAttribute('aria-live', 'assertive');
+ node.appendChild(element_node);
+ setTimeout(addChildTextNode,1000);
+ }
+
+ function onload() {
+ addLiveRegion();
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/683.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/683.html
new file mode 100644
index 0000000000..92bde34f7b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/683.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 683</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 683</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is added to the document by a script during the onload
+ event with the value="polite". After the onload event completes a child DOM element node is
+ added to the element with the aria-live attribute.</p>
+
+ <script>
+
+ function addChildElementNode() {
+ var node = document.getElementById('TEST_ID_2');
+ var element_node = document.createElement('div');
+ var text_node = document.createTextNode("TEST TEXT");
+ element_node.appendChild(text_node);
+ node.appendChild(element_node);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+ var live_node = document.createElement('div');
+ live_node.setAttribute('id', 'TEST_ID_2');
+ live_node.setAttribute('aria-live', 'polite');
+ node.appendChild(live_node);
+ setTimeout(addChildElementNode,1000);
+ }
+
+ function onload() {
+ addLiveRegion();
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/684.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/684.html
new file mode 100644
index 0000000000..c77062ca20
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/684.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 684</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 684</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is added to the document by a script during
+ the onload event with the value="assertive". After the onload event completes a
+ child DOM element node is added to the element with the aria-live attribute.</p>
+
+ <script>
+
+ function addChildElementNode() {
+ var node = document.getElementById('TEST_ID_2');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('aria-live', 'polite');
+ node.appendChild(element_node);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+ element_node.setAttribute('aria-live', 'assertive');
+ node.appendChild(element_node);
+ setTimeout(addChildElementNode, 1000);
+ }
+
+ function onload() {
+ addLiveRegion();
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/685.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/685.html
new file mode 100644
index 0000000000..f09903944d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/685.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 685</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 685</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is added to the document by a script during the onload
+ event with the value="polite" and the element has a child DOM element node with text content
+ that is hidden using CSS display="none". After the onload event completes a child DOM element
+ node with text content has the CSS display property changed to display="block".</p>
+
+ <script>
+
+ function showElement() {
+ var node = document.getElementById('TEST_ID_3');
+ node.style.display = "block";
+ }
+
+ function addChildElementNode() {
+ var node = document.getElementById('TEST_ID_2');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_3');
+ element_node.setAttribute('style', 'display: none');
+ var text_node = document.createTextNode("TEST TEXT");
+ element_node.appendChild(text_node);
+ node.appendChild(element_node);
+ setTimeout(showElement,1000);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+ element_node.setAttribute('aria-live', 'polite');
+ node.appendChild(element_node);
+ setTimeout(addChildElementNode,1000);
+ }
+
+ function onload() {
+ addLiveRegion();
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/686.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/686.html
new file mode 100644
index 0000000000..ed550077de
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/686.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 686</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 686</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is added to the document by a script during the onload
+ event with the value="assertive" and the element has a child DOM element node with text content
+ that is hidden using CSS display="none". After the onload event completes a child DOM element
+ node with text content has the CSS display property changed to display="block".</p>
+
+ <script>
+
+ function showElement() {
+ var node = document.getElementById('TEST_ID_3');
+ node.style.display = "block";
+ }
+
+ function addChildElementNode() {
+ var node = document.getElementById('TEST_ID_2');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_3');
+ element_node.setAttribute('style', 'display: none');
+ var text_node = document.createTextNode("TEST TEXT");
+ element_node.appendChild(text_node);
+ node.appendChild(element_node);
+ setTimeout(showElement,1000);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+ element_node.setAttribute('aria-live', 'assertive');
+ node.appendChild(element_node);
+ setTimeout(addChildElementNode,1000);
+ }
+
+ function onload() {
+ addLiveRegion();
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/687.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/687.html
new file mode 100644
index 0000000000..9503adb54f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/687.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 687</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 687</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is added to the document by a script during
+ the onload event with the value="polite" and the element has a child DOM element node
+ with text content that is hidden using CSS visibility="hidden". After the onload
+ event completes a child DOM element node with text content has the CSS display property
+ changed to visibility="visible".</p>
+
+ <script>
+
+ function showElement() {
+ var node = document.getElementById('TEST_ID_3');
+ node.setAttribute('style', 'visibility: visible');
+ }
+
+ function addChildElementNode() {
+ var node = document.getElementById('TEST_ID_2');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_3');
+ element_node.setAttribute('style', 'visibility: hidden');
+ var text_node = document.createTextNode("TEST TEXT");
+ element_node.appendChild(text_node);
+ node.appendChild(element_node);
+ setTimeout(showElement,1000);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+ element_node.setAttribute('aria-live', 'polite');
+ node.appendChild(element_node);
+ setTimeout(addChildElementNode,1000);
+ }
+
+ function onload() {
+ addLiveRegion();
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/688.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/688.html
new file mode 100644
index 0000000000..c21cf2714f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/688.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 688</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 688</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is added to the document by a script
+ during the onload event with the value="assertive" and the element has a child
+ DOM element node with text content that is hidden using CSS visibility="hidden".
+ After the onload event completes a child DOM element node with text content
+ has the CSS display property changed to visibility="visible".</p>
+
+ <script>
+
+ function showElement() {
+ var node = document.getElementById('TEST_ID_3');
+ node.setAttribute('style', 'visibility: visible');
+ }
+
+ function addChildElementNode() {
+ var node = document.getElementById('TEST_ID_2');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_3');
+ element_node.setAttribute('style', 'visibility: hidden');
+ var text_node = document.createTextNode("TEST TEXT");
+ element_node.appendChild(text_node);
+ node.appendChild(element_node);
+ setTimeout(showElement,1000);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+ element_node.setAttribute('aria-live', 'assertive');
+ node.appendChild(element_node);
+ setTimeout(addChildElementNode,1000);
+ }
+
+ function onload() {
+ addLiveRegion();
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/689.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/689.html
new file mode 100644
index 0000000000..98f20d456b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/689.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 689</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 689</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>The aria-live attribute is added to an element in the document by a script after the
+ onload event completes with the value="polite". After the aria-live attribute is added,
+ a child DOM text node is added to the element with the aria-live attribute.</p>
+
+ <script>
+
+ function addChildTextNode() {
+ var node = document.getElementById('TEST_ID_2');
+ var text_node = document.createTextNode("TEST TEXT");
+ node.appendChild(text_node);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+ element_node.setAttribute('aria-live', 'polite');
+ node.appendChild(element_node);
+ setTimeout(addChildTextNode,500);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/690.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/690.html
new file mode 100644
index 0000000000..d3fb88c841
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/690.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 690</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 690</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>The aria-live attribute is added to an element in the document by a script after
+ the onload event completes with the value="assertive". After the aria-live attribute
+ is added, a child DOM text node is added to the element with the aria-live attribute.</p>
+
+ <script>
+
+ function addChildTextNode() {
+ var node = document.getElementById('TEST_ID_2');
+ var text_node = document.createTextNode("TEST TEXT");
+ node.appendChild(text_node);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+ element_node.setAttribute('aria-live', 'assertive');
+ node.appendChild(element_node);
+ setTimeout(addChildTextNode,500);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/691.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/691.html
new file mode 100644
index 0000000000..4cb1ab7112
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/691.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 691</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 691</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>The aria-live attribute is added to an element in the document by a script
+ after the onload event completes with the value="polite". After the aria-live
+ attribute is added, a child DOM element node is added to the element with
+ the aria-live attribute.</p>
+
+ <script>
+
+ function addChildElementNode() {
+ var node = document.getElementById('TEST_ID_2');
+ var element_node = document.createElement('div');
+ var text_node = document.createTextNode("TEST TEXT");
+ element_node.appendChild(text_node);
+ node.appendChild(element_node);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+ element_node.setAttribute('aria-live', 'polite');
+ node.appendChild(element_node);
+ setTimeout(addChildElementNode,500);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/692.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/692.html
new file mode 100644
index 0000000000..7f6f3f9ec3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/692.html
@@ -0,0 +1,44 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 692</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 692</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>The aria-live attribute is added to an element in the document by a script after
+ the onload event completes with the value="assertive". After the aria-live attribute
+ is added, a child DOM element node is added to the element with the aria-live attribute.</p>
+
+ <script>
+
+ function addChildElementNode() {
+ var node = document.getElementById('TEST_ID_2');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('aria-live', 'polite');
+ node.appendChild(element_node);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+ element_node.setAttribute('aria-live', 'assertive');
+ node.appendChild(element_node);
+ setTimeout(addChildElementNode,500);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/693.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/693.html
new file mode 100644
index 0000000000..9695f25a63
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/693.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 693</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 693</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>The aria-live attribute is added to an element in the document by a script after
+ the onload event completes with the value="polite" and the element has a child DOM
+ element node with text content that is hidden using CSS display="none". After the
+ aria-live attribute is added, the child DOM element node with text content has the
+ CSS display property changed to display="block".</p>
+
+ <script>
+
+ function showElement() {
+ var node = document.getElementById('TEST_ID_2');
+ node.setAttribute('style', 'display: block');
+ }
+
+ function addChildElementNode() {
+ var element_node = document.getElementById('TEST_ID_2');
+ var text_node = document.createTextNode("TEST TEXT");
+ element_node.appendChild(text_node);
+ element_node.setAttribute('style', 'display: none');
+ setTimeout(showElement,500);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+ element_node.setAttribute('aria-live', 'polite');
+ node.appendChild(element_node);
+ setTimeout(addChildElementNode,500);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/694.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/694.html
new file mode 100644
index 0000000000..392e7d22f4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/694.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 694</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 694</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>The aria-live attribute is added to an element in the document by a script after
+ the onload event completes with the value="assertive" and the element has a child
+ DOM element node with text content that is hidden using CSS display="none". After
+ the aria-live attribute is added, the child DOM element node with text content has
+ the CSS display property changed to display="block".</p>
+
+ <script>
+
+ function showElement() {
+ var node = document.getElementById('TEST_ID_3');
+ node.setAttribute('style', 'display: block');
+ }
+
+ function addChildElementNode() {
+ var node = document.getElementById('TEST_ID_2');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_3');
+ element_node.setAttribute('style', 'display: none');
+ var text_node = document.createTextNode("TEST TEXT");
+ element_node.appendChild(text_node);
+ node.appendChild(element_node);
+ setTimeout(showElement,500);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+ element_node.setAttribute('aria-live', 'assertive');
+ node.appendChild(element_node);
+ setTimeout(addChildElementNode,500);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/695.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/695.html
new file mode 100644
index 0000000000..46c1666d1d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/695.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 695</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 695</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>The aria-live attribute is added to an element in the document by a script
+ after the onload event completes with the value="polite" and the element has
+ a child DOM element node with text content that is hidden using CSS
+ visibility="hidden". After the aria-live attribute is added, the child DOM
+ element node with text content has the CSS display property changed to visibility="visible".</p>
+
+ <script>
+
+ function showElement() {
+ var node = document.getElementById('TEST_ID_3');
+ node.setAttribute('style', 'visibility: visible');
+ }
+
+ function addChildElementNode() {
+ var node = document.getElementById('TEST_ID_2');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_3');
+ element_node.setAttribute('style', 'visibility: hidden');
+ var text_node = document.createTextNode("TEST TEXT");
+ element_node.appendChild(text_node);
+ node.appendChild(element_node);
+ setTimeout(showElement,500);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+ element_node.setAttribute('aria-live', 'assertive');
+ node.appendChild(element_node);
+ setTimeout(addChildElementNode,500);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/696.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/696.html
new file mode 100644
index 0000000000..b66a7214e3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/696.html
@@ -0,0 +1,42 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 696</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 696</h1>
+
+ <div id="TEST_ID_1">
+ <div id="TEST_ID_2" style="visibility: hidden">TEST TEXT</div>
+ </div>
+
+ <h2>Description</h2>
+ <p>The aria-live attribute is added to an element in the document by a script after the
+ onload event completes with the value="assertive" and the element has a child DOM
+ element node with text content that is hidden using CSS visibility="hidden". After
+ the aria-live attribute is added, the child DOM element node with text content has
+ the CSS display property changed to visibility="visible".</p>
+
+ <script>
+
+ function showElement() {
+ var node = document.getElementById('TEST_ID_2');
+ node.setAttribute('style', 'visibility: visible');
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+ node.setAttribute('aria-live', 'assertive');
+ setTimeout(showElement,500);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/697.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/697.html
new file mode 100644
index 0000000000..c229e74ca0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/697.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 697</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 697</h1>
+
+ <div id="TEST_ID_1" aria-live="polite">
+ TEST TEXT
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is defined in markup with the value="polite"
+ has a child DOM text node with content. After the onload event completes the child
+ DOM text node is deleted.</p>
+
+ <script>
+
+ function deleteChildNodes() {
+ var node = document.getElementById('TEST_ID_1');
+ while (node.firstChild) node.removeChild(node.firstChild);
+ }
+
+ function onload() {
+ setTimeout(deleteChildNodes,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/698.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/698.html
new file mode 100644
index 0000000000..3d96ba9f43
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/698.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 698</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 698</h1>
+
+ <div id="TEST_ID_1" aria-live="assertive">
+ TEST TEXT
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is defined in markup with the value="assertive"
+ has a child DOM text node with content. After the onload event completes the child DOM
+ text node is deleted.</p>
+
+ <script>
+
+ function deleteChildNodes() {
+ var node = document.getElementById('TEST_ID_1');
+ while (node.firstChild) node.removeChild(node.firstChild);
+ }
+
+ function onload() {
+ setTimeout(deleteChildNodes,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/699.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/699.html
new file mode 100644
index 0000000000..adc1c79b55
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/699.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 699</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 699</h1>
+
+ <div id="TEST_ID_1" aria-live="polite">
+ <div>TEST TEXT</div>
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is defined in markup with the value="polite"
+ has a child DOM element node that contains text content. After the onload event completes
+ the child DOM element node is deleted.</p>
+
+ <script>
+
+ function deleteChildNodes() {
+ var node = document.getElementById('TEST_ID_1');
+ while (node.firstChild) node.removeChild(node.firstChild);
+ }
+
+ function onload() {
+ setTimeout(deleteChildNodes,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/700.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/700.html
new file mode 100644
index 0000000000..4f0af8cc61
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/700.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 700</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 700</h1>
+
+ <div id="TEST_ID_1" aria-live="assertive">
+ <div>TEST TEXT</div>
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is defined in markup with the
+ value="assertive" has a child DOM element node that contains text content.
+ After the onload event completes the child DOM element node is deleted.</p>
+
+ <script>
+
+ function deleteChildNodes() {
+ var node = document.getElementById('TEST_ID_1');
+ while (node.firstChild) node.removeChild(node.firstChild);
+ }
+
+ function onload() {
+ setTimeout(deleteChildNodes,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/701.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/701.html
new file mode 100644
index 0000000000..755b226963
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/701.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 701</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 701</h1>
+
+ <div id="TESTZ" aria-live="polite">
+ Text before: <span id="TEST_ID_1">TEST TEXT</span> :text after
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is defined in markup with
+ the value="polite" has a child DOM element node that contains text
+ content. After the onload event completes the CSS 'display' property
+ of the child DOM element node is changed to display="none".</p>
+
+ <script>
+
+ function hideElement() {
+ var node = document.getElementById('TEST_ID_1');
+ node.setAttribute('style', 'display: none');
+ }
+
+ function onload() {
+ setTimeout(hideElement,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/702.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/702.html
new file mode 100644
index 0000000000..e13b82edcd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/702.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 702</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 702</h1>
+
+ <div id="TESTZ" aria-live="assertive">
+ Text before: <span id="TEST_ID_1">TEST TEXT</span> :text after
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is defined in markup with the value="assertive"
+ has a child DOM element node that contains text content. After the onload event completes
+ the CSS 'display' property of the child DOM element node is changed to display="none".</p>
+
+ <script>
+
+ function hideElement() {
+ var node = document.getElementById('TEST_ID_1');
+ node.setAttribute('style', 'display: none');
+ }
+
+ function onload() {
+ setTimeout(hideElement,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/703.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/703.html
new file mode 100644
index 0000000000..e0a4ed5495
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/703.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 703</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 703</h1>
+
+ <div id="TESTZ" aria-live="polite">
+ Text before: <span id="TEST_ID_1">TEST TEXT</span> :text after
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is defined in markup with the value="polite"
+ has a child DOM element node that contains text content. After the onload event
+ completes the CSS 'visibility' property of the child DOM element node is changed
+ to visibility="hidden".</p>
+
+ <script>
+
+ function hideElement() {
+ var node = document.getElementById('TEST_ID_1');
+ node.setAttribute('style', 'visibility: hidden');
+ }
+
+ function onload() {
+ setTimeout(hideElement,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/704.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/704.html
new file mode 100644
index 0000000000..c2294a5f54
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/704.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 704</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 704</h1>
+
+ <div id="TESTZ" aria-live="assertive">
+ Text before: <span id="TEST_ID_1">TEST TEXT</span> :text after
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is defined in markup with the value="assertive"
+ has a child DOM element node that contains text content. After the onload event completes
+ the CSS 'visibility' property of the child DOM element node is changed to visibility="hidden".</p>
+
+ <script>
+
+ function hideElement() {
+ var node = document.getElementById('TEST_ID_1');
+ node.setAttribute('style', 'visibility: hidden');
+ }
+
+ function onload() {
+ setTimeout(hideElement,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/705.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/705.html
new file mode 100644
index 0000000000..3ac9831e97
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/705.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 705</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 705</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is added to the document by a script
+ during the onload event with the value="polite" and the element has a child DOM
+ text node with content. After the onload event completes the child DOM text
+ node is deleted.</p>
+
+ <script>
+
+ function deleteChildNodes() {
+ var node = document.getElementById('TEST_ID_2');
+ while (node.firstChild) node.removeChild(node.firstChild);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+ element_node.setAttribute('aria-live', 'polite');
+ var text_node = document.createTextNode('TEST TEXT');
+ element_node.appendChild(text_node);
+ node.appendChild(element_node);
+ setTimeout(deleteChildNodes,500);
+ }
+
+ function onload() {
+ addLiveRegion();
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/706.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/706.html
new file mode 100644
index 0000000000..edcc7a960b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/706.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 706</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 706</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is added to the document by a script during the onload
+ event with the value="assertive" and the element has a child DOM text node with content. After
+ the onload event completes the child DOM text node is deleted.</p>
+
+ <script>
+
+ function deleteChildNodes() {
+ var node = document.getElementById('TEST_ID_2');
+ while (node.firstChild) node.removeChild(node.firstChild);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+
+ var element_node = document.createElement('div');
+ element_node.setAttribute('aria-live', 'assertive');
+ element_node.setAttribute('id', 'TEST_ID_2');
+
+ var text_node = document.createTextNode('TEST TEXT');
+ element_node.appendChild(text_node);
+ node.appendChild(element_node);
+
+ setTimeout(deleteChildNodes,1000);
+ }
+
+ function onload() {
+ addLiveRegion();
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/707.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/707.html
new file mode 100644
index 0000000000..ed0de5ffa0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/707.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 707</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 707</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is added to the document by a script
+ during the onload event with the value="polite" and the element has a child
+ DOM element node that contains text content. After the onload event completes
+ the child DOM element node is deleted.</p>
+
+ <script>
+
+ function deleteChildNodes() {
+ var node = document.getElementById('TEST_ID_2');
+ while (node.firstChild) node.removeChild(node.firstChild);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+
+ var live_node = document.createElement('div');
+ live_node.setAttribute('aria-live', 'polite');
+ live_node.setAttribute('id', 'TEST_ID_2');
+
+ var element_node = document.createElement('div');
+
+ var text_node = document.createTextNode('TEST TEXT');
+ element_node.appendChild(text_node);
+ live_node.appendChild(element_node);
+ node.appendChild(live_node);
+ setTimeout(deleteChildNodes,1000);
+ }
+
+ function onload() {
+ addLiveRegion();
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/708.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/708.html
new file mode 100644
index 0000000000..796b729086
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/708.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 708</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 708</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is added to the document by a script during
+ the onload event with the value="assertive" and the element has a child DOM element
+ node that contains text content. After the onload event completes the child DOM
+ element node is deleted.</p>
+
+ <script>
+
+
+ function deleteChildNodes() {
+ var node = document.getElementById('TEST_ID_2');
+ while (node.firstChild) node.removeChild(node.firstChild);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+
+ var live_node = document.createElement('div');
+ live_node.setAttribute('aria-live', 'assertive');
+ live_node.setAttribute('id', 'TEST_ID_2');
+
+ var element_node = document.createElement('div');
+
+ var text_node = document.createTextNode('TEST TEXT');
+
+ element_node.appendChild(text_node);
+ live_node.appendChild(element_node);
+ node.appendChild(live_node);
+
+ setTimeout(deleteChildNodes,1000);
+ }
+
+ function onload() {
+ addLiveRegion();
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/709.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/709.html
new file mode 100644
index 0000000000..3306f7e152
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/709.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 709</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 709</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is added to the document by a script during
+ the onload event with the value="polite" and the element has a child DOM element node
+ that contains text content. After the onload event completes the CSS 'display'
+ property of the child DOM element node is changed to display="none".</p>
+
+ <script>
+
+
+ function hideElement() {
+ var node = document.getElementById('TEST_ID_2');
+ node.setAttribute('style', 'display: none');
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+
+ var live_node = document.createElement('div');
+ live_node.setAttribute('aria-live', 'polite');
+ live_node.setAttribute('id','TESTZ');
+
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+
+ var text_node = document.createTextNode('TEST TEXT');
+
+ element_node.appendChild(text_node);
+ live_node.appendChild(element_node);
+ node.appendChild(live_node);
+
+ setTimeout(hideElement,1000);
+ }
+
+ function onload() {
+ addLiveRegion();
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/710.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/710.html
new file mode 100644
index 0000000000..dd947f21d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/710.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 710</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 710</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is added to the document by a script during
+ the onload event with the value="assertive" and the element has a child DOM element
+ node that contains text content. After the onload event completes the CSS 'display'
+ property of the child DOM element node is changed to display="none".</p>
+
+ <script>
+
+
+ function hideElement() {
+ var node = document.getElementById('TEST_ID_2');
+ node.setAttribute('style', 'display: none');
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+
+ var live_node = document.createElement('div');
+ live_node.setAttribute('aria-live', 'assertive');
+ live_node.setAttribute('id','TESTZ');
+
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+
+ var text_node = document.createTextNode('TEST TEXT');
+
+ element_node.appendChild(text_node);
+ live_node.appendChild(element_node);
+ node.appendChild(live_node);
+
+ setTimeout(hideElement,1000);
+ }
+
+ function onload() {
+ addLiveRegion();
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/711.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/711.html
new file mode 100644
index 0000000000..af409ce80a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/711.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 711</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 711</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is added to the document by a script
+ during the onload event with the value="polite" and the element has a child
+ DOM element node that contains text content. After the onload event completes
+ the CSS 'visibility' property of the child DOM element node is changed
+ to visibility="hidden".</p>
+
+ <script>
+
+
+ function hideElement() {
+ var node = document.getElementById('TEST_ID_2');
+ node.setAttribute('style', 'visibility: hidden');
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+
+ var live_node = document.createElement('div');
+ live_node.setAttribute('aria-live', 'polite');
+ live_node.setAttribute('id', 'TESTZ');
+
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+
+ var text_node = document.createTextNode('TEST TEXT');
+
+ element_node.appendChild(text_node);
+ live_node.appendChild(element_node);
+ node.appendChild(live_node);
+
+ setTimeout(hideElement,1000);
+ }
+
+ function onload() {
+ addLiveRegion();
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/712.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/712.html
new file mode 100644
index 0000000000..11dd2f28b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/712.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 712</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 712</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute is added to the document by a
+ script during the onload event with the value="assertive" and the element
+ has a child DOM element node that contains text content. After the onload
+ event completes the CSS 'visibility' property of the child DOM element
+ node is changed to visibility="hidden".</p>
+
+ <script>
+
+
+ function hideElement() {
+ var node = document.getElementById('TEST_ID_2');
+ node.setAttribute('style', 'visibility: hidden');
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+
+ var live_node = document.createElement('div');
+ live_node.setAttribute('aria-live', 'assertive');
+ live_node.setAttribute('id', 'TESTZ');
+
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+
+ var text_node = document.createTextNode('TEST TEXT');
+
+ element_node.appendChild(text_node);
+ live_node.appendChild(element_node);
+ node.appendChild(live_node);
+
+ setTimeout(hideElement,1000);
+ }
+
+ function onload() {
+ addLiveRegion();
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/713.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/713.html
new file mode 100644
index 0000000000..24387f9206
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/713.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 713</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 713</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>The aria-live attribute is added to an element in the document by a
+ script after the onload event completes with the value="polite" and
+ the element has a child DOM text node with content. After the
+ aria-live attribute is added, the child DOM text node is deleted.</p>
+
+ <script>
+
+
+ function deleteChildNodes() {
+ var node = document.getElementById('TEST_ID_2');
+ while (node.firstChild) node.removeChild(node.firstChild);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+
+ var live_node = document.createElement('div');
+ live_node.setAttribute('aria-live', 'polite');
+ live_node.setAttribute('id', 'TESTZ');
+
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+
+ var text_node = document.createTextNode('TEST TEXT');
+
+ element_node.appendChild(text_node);
+ live_node.appendChild(element_node);
+ node.appendChild(live_node);
+
+ setTimeout(deleteChildNodes,1000);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion, 1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/714.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/714.html
new file mode 100644
index 0000000000..b2d4f120b7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/714.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 714</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 714</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>The aria-live attribute is added to an element in the document by a
+ script after the onload event completes with the value="assertive"
+ and the element has a child DOM text node with content. After the
+ aria-live attribute is added, the child DOM text node is deleted.</p>
+
+ <script>
+
+ function deleteChildNodes() {
+ var node = document.getElementById('TEST_ID_2');
+ while (node.firstChild) node.removeChild(node.firstChild);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+
+ var live_node = document.createElement('div');
+ live_node.setAttribute('aria-live', 'assertive');
+ live_node.setAttribute('id', 'TESTZ');
+
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+
+ var text_node = document.createTextNode('TEST TEXT');
+
+ element_node.appendChild(text_node);
+ live_node.appendChild(element_node);
+ node.appendChild(live_node);
+
+ setTimeout(deleteChildNodes,500);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/715.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/715.html
new file mode 100644
index 0000000000..00b26f591b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/715.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 715</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 715</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>The aria-live attribute is added to an element in the document by a script
+ after the onload event completes with the value="polite" and the element has
+ a child DOM element node that contains text content. After the aria-live
+ attribute is added, the child DOM element node is deleted.</p>
+
+ <script>
+
+ function deleteChildNodes() {
+ var node = document.getElementById('TEST_ID_1');
+ while (node.firstChild) node.removeChild(node.firstChild);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+
+ node.setAttribute('aria-live', 'polite');
+
+ var text_node = document.createTextNode('TEST TEXT');
+
+ node.appendChild(text_node);
+
+ setTimeout(deleteChildNodes,500);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/716.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/716.html
new file mode 100644
index 0000000000..80d2b85ecd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/716.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 716</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 716</h1>
+
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>The aria-live attribute is added to an element in the document by a script
+ after the onload event completes with the value="polite" and the element has
+ a child DOM element node that contains text content. After the aria-live
+ attribute is added, the child DOM element node is deleted.</p>
+
+ <script>
+
+ function deleteChildNodes() {
+ var node = document.getElementById('TEST_ID_1');
+ while (node.firstChild) node.removeChild(node.firstChild);
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+
+ node.setAttribute('aria-live', 'assertive');
+
+ var text_node = document.createTextNode('TEST TEXT');
+
+ node.appendChild(text_node);
+
+ setTimeout(deleteChildNodes,500);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/717.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/717.html
new file mode 100644
index 0000000000..aaed8c09d7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/717.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 717</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 717</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>The aria-live attribute is added to an element in the document by a script
+ after the onload event completes with the value="polite" and the element has
+ a child DOM element node that contains text content. After the aria-live
+ attribute is added, the CSS 'display' property of the child DOM element
+ node is changed to display="none".</p>
+
+ <script>
+
+ function hideElement() {
+ var node = document.getElementById('TEST_ID_2');
+ node.style.display = "none";
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+
+ var live_node = document.createElement('div');
+ live_node.setAttribute('aria-live', 'polite');
+
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+
+ var text_node = document.createTextNode('TEST TEXT');
+
+ element_node.appendChild(text_node);
+ live_node.appendChild(element_node);
+ node.appendChild(live_node);
+
+ setTimeout(hideElement,500);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/718.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/718.html
new file mode 100644
index 0000000000..f6e9a2b1ad
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/718.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 718</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 718</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>The aria-live attribute is added to an element in the document by a script
+ after the onload event completes with the value="assertive" and the element has
+ a child DOM element node that contains text content. After the aria-live
+ attribute is added, the CSS 'display' property of the child DOM element
+ node is changed to display="none".</p>
+
+ <script>
+
+ function hideElement() {
+ var node = document.getElementById('TEST_ID_2');
+ node.style.display = "none";
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+
+ var live_node = document.createElement('div');
+ live_node.setAttribute('aria-live', 'assertive');
+
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+
+ var text_node = document.createTextNode('TEST TEXT');
+
+ element_node.appendChild(text_node);
+ live_node.appendChild(element_node);
+ node.appendChild(live_node);
+
+ setTimeout(hideElement,500);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/719.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/719.html
new file mode 100644
index 0000000000..1f132e67ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/719.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 719</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 719</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>The aria-live attribute is added to an element in the document by a
+ script after the onload event completes with the value="polite" and
+ the element has a child DOM element node that contains text content.
+ After the aria-live attribute is added, the CSS 'visibility' property
+ of the child DOM element node is changed to visibility="hidden".</p>
+
+ <script>
+
+ function hideElement() {
+ var node = document.getElementById('TEST_ID_2');
+ node.style.visibility = "hidden";
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+
+ var live_node = document.createElement('div');
+ live_node.setAttribute('aria-live', 'polite');
+
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+
+ var text_node = document.createTextNode('TEST TEXT');
+
+ element_node.appendChild(text_node);
+ live_node.appendChild(element_node);
+ node.appendChild(live_node);
+
+ setTimeout(hideElement,500);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/720.html b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/720.html
new file mode 100644
index 0000000000..23564ea247
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/accessible-name-updates/720.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 720</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 720</h1>
+
+ <div id="TEST_ID_1">
+ </div>
+
+ <h2>Description</h2>
+ <p>The aria-live attribute is added to an element in the document by a
+ script after the onload event completes with the value="assertive" and
+ the element has a child DOM element node that contains text content.
+ After the aria-live attribute is added, the CSS 'visibility' property
+ of the child DOM element node is changed to visibility="hidden".</p>
+
+ <script>
+
+ function hideElement() {
+ var node = document.getElementById('TEST_ID_2');
+ node.style.visibility = "hidden";
+ }
+
+ function addLiveRegion() {
+ var node = document.getElementById('TEST_ID_1');
+
+ var live_node = document.createElement('div');
+ live_node.setAttribute('aria-live', 'assertive');
+
+ var element_node = document.createElement('div');
+ element_node.setAttribute('id', 'TEST_ID_2');
+
+ var text_node = document.createTextNode('TEST TEXT');
+
+ element_node.appendChild(text_node);
+ live_node.appendChild(element_node);
+ node.appendChild(live_node);
+
+ setTimeout(hideElement,500);
+ }
+
+ function onload() {
+ setTimeout(addLiveRegion,1000);
+ }
+
+ window.addEventListener('load', onload);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/aria-describedby/772.html b/testing/web-platform/tests/conformance-checkers/html-aria/aria-describedby/772.html
new file mode 100644
index 0000000000..4684774cc2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/aria-describedby/772.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test 772
+ </title>
+ </head>
+ <body>
+ <img src="foo.jpg" id="test" alt="test" aria-describedby="t1">
+ <div id="t1">foo</div>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/aria-describedby/773.html b/testing/web-platform/tests/conformance-checkers/html-aria/aria-describedby/773.html
new file mode 100644
index 0000000000..cb1bd17ad5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/aria-describedby/773.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test 773
+ </title>
+ </head>
+ <body>
+ <img src="foo.jpg" id="test" alt="test" aria-describedby="t1">
+ <div id="t1" style="display:none">foo</div>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/aria-describedby/774.html b/testing/web-platform/tests/conformance-checkers/html-aria/aria-describedby/774.html
new file mode 100644
index 0000000000..0fac481545
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/aria-describedby/774.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test 774</title>
+ </head>
+ <body>
+ <img src="foo.jpg" id="test" alt="test" aria-describedby="t1">
+ <span id="t1" role="presentation">foo</span>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/aria-describedby/838.html b/testing/web-platform/tests/conformance-checkers/html-aria/aria-describedby/838.html
new file mode 100644
index 0000000000..3a765b685d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/aria-describedby/838.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test 773
+ </title>
+ </head>
+ <body>
+ <img src="foo.jpg" id="test" alt="test" aria-describedby="t1">
+ <div id="t1" style="visibility:hidden">foo</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/567.html b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/567.html
new file mode 100644
index 0000000000..3800104d52
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/567.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>A &lt;div&gt; with role "button" followed by a modification to the value of "checkbox".</title>
+ <script>
+ function changeRole (/* Element */ element, /* String */ newRole) {
+ element.setAttribute ('role', newRole);
+ element.innerHTML = "This &lt;div&gt; has role '" + newRole + "'";
+ }
+ </script>
+ </head>
+ <body>
+ <div role="button" id="test" tabindex="0" onclick="changeRole (this, 'checkbox');" onkeydown="changeRole (this, 'checkbox');">This &lt;div&gt; has role 'button'</div>
+ <p>
+ <button onclick="changeRole (document.getElementById ('test'), 'checkbox')" type="button">Change Role</button>
+ <button onclick="window.location.reload()" type="button">Reload Page</button>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/568.html b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/568.html
new file mode 100644
index 0000000000..d290ada24c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/568.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>A &lt;div&gt; with role "button" followed by removal of the element and its children and an insertion of a new div having role="checkbox"</title>
+ <script>
+ function changeRoleByRemoval (/* Element */ element, /* String */ newRole) {
+ var parent = element.parentNode;
+ if (parent) {
+ parent.removeChild (element);
+ var div = document.createElement ('div');
+ div.setAttribute ('role', newRole);
+ div.setAttribute ('id', 'test');
+ div.setAttribute ('tabindex', '0');
+ div.setAttribute ('onclick', 'changeRoleByRemoval (this, "checkbox");');
+ div.setAttribute ('onkeydown', 'changeRoleByRemoval (this, "checkbox");');
+ div.innerHTML = "This &lt;div&gt; has role '" + newRole + "'";
+ parent.appendChild (div);
+ }
+ }
+ </script>
+ </head>
+ <body>
+ <div>
+ <div role="button" id="test" tabindex="0" onclick="changeRoleByRemoval (this, 'checkbox');" onkeydown="changeRoleByRemoval (this, 'checkbox');">This &lt;div&gt; has role 'button'</div>
+ </div>
+ <p>
+ <button onclick="changeRoleByRemoval (document.getElementById ('test'), 'checkbox')" type="button">Change Role</button>
+ <button onclick="window.location.reload()" type="button">Reload Page</button>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/569.html b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/569.html
new file mode 100644
index 0000000000..eca4e1f3e8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/569.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>A &lt;div&gt; with role role="listbox" aria-busy="true", but no "option" descendants.</title>
+ </head>
+ <body>
+ <div id="test" role="listbox" aria-busy="true">
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/571-haswarn.html b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/571-haswarn.html
new file mode 100644
index 0000000000..92130fbf98
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/571-haswarn.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html><head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>In a &lt;div&gt; element with role="combobox" and aria-autocomplete="none", change values of the combobox by typing.</title>
+ <style>
+ .hasFocus { border: 2px solid red; }
+ </style>
+ <script>
+ var DEL = 8;
+ var BACK_SPACE = 72;
+ var comboInfo = {};
+
+ function initComboInfo() {
+ comboInfo.comboBox = document.getElementById ('test');
+ comboInfo.textEntry = document.getElementById ('textEntry');
+ var active = document.getElementById (comboInfo.comboBox.getAttribute ('aria-activedescendant'));
+ comboInfo.options = active.parentElement.children;
+ return active;
+ }
+
+ function matchOption(/* String */ entryVal) {
+ var theOption = null;
+
+ // Check only if entryVal is not empty.
+ //
+ if (entryVal != null && entryVal.length != 0) {
+ for (var i = 0; i < comboInfo.options.length; i++) {
+ var anOption = comboInfo.options[i];
+ var optionText = anOption.innerHTML.toLowerCase();
+ if (optionText.indexOf (entryVal) == 0) {
+ theOption = anOption;
+ break;
+ }
+ }
+ }
+ return theOption;
+ }
+
+ function updateActive (/* Element */ newActive) {
+ var oldActive = document.getElementById (comboInfo.comboBox.getAttribute ('aria-activedescendant'));
+ if (oldActive != newActive) {
+ comboInfo.comboBox.setAttribute ('aria-activedescendant', newActive.getAttribute ('id'));
+ oldActive.removeAttribute ('class');
+ newActive.setAttribute ('class', 'hasFocus');
+ }
+ }
+
+ function doOnload() {
+ var active = initComboInfo();
+ active.setAttribute ('class', 'hasFocus');
+ comboInfo.textEntry.value = active.innerHTML;
+ comboInfo.textEntry.focus();
+ }
+
+ function handleTyping (event) {
+ /* NOTE: With respect to IE, assumes IE9 as per CR criteria (http://www.w3.org/WAI/ARIA/1.0/CR/implementation-report) */
+ /* NOTE: Supports deletion only from the end of the text INPUT value */
+ var stringSoFar = event.target.value;
+
+ if (event.which == DEL || event.which == BACK_SPACE)
+ stringSoFar = stringSoFar.slice(0, stringSoFar.length-1);
+ else
+ stringSoFar = stringSoFar + String.fromCharCode (event.which);
+
+ var matchedOption = matchOption (stringSoFar.toLowerCase());
+ if (matchedOption != null)
+ updateActive (matchedOption);
+ }
+
+ </script>
+ </head>
+ <body onload="doOnload();">
+ <div id="test" role="combobox" aria-expanded="true" aria-label="Tag" aria-autocomplete="none" aria-activedescendant="o1">
+ <input id="textEntry" role="textbox" aria-owns="owned_listbox" onkeypress="handleTyping(event);" type="text">
+ <ul role="listbox" id="owned_listbox" style="list-style-type: none;">
+ <li role="option" id="o1">Zebra</li>
+ <li role="option" id="o2">Zoom</li>
+ <li role="option" id="o3">Zeta</li>
+ <li role="option" id="o4">Zaphod</li>
+ <li role="option" id="o5">Alpha</li>
+ </ul>
+ </div>
+
+</body></html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/572-haswarn.html b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/572-haswarn.html
new file mode 100644
index 0000000000..358d14a617
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/572-haswarn.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>In a &lt;div&gt; element with role="combobox" and aria-autocomplete="inline", change values of the combobox by adjusting the up and down arrow keys with focus on the textfield in the combobox.</title>
+ <style>
+ .hasFocus { border: 2px solid red; }
+ </style>
+ <script>
+ var UP = 38;
+ var DOWN = 40;
+ comboInfo = {};
+
+ function toArray (/* NodeList */ nodeList) {
+ var result = [];
+ for (var i=0; i < nodeList.length; i++) {
+ result[i] = nodeList[i];
+ }
+ return result;
+ }
+
+ function initComboInfo() {
+ comboInfo.comboBox = document.getElementById ('test');
+ comboInfo.textEntry = document.getElementById ('testEntry');
+ var active = document.getElementById (comboInfo.comboBox.getAttribute ('aria-activedescendant'));
+ comboInfo.options = toArray (active.parentElement.children);
+ return active;
+ }
+
+ function handleArrow (/* Event */ event) {
+ /* NOTE: With respect to IE, assumes IE9 as per CR criteria (http://www.w3.org/WAI/ARIA/1.0/CR/implementation-report) */
+ var active = document.getElementById (comboInfo.comboBox.getAttribute ('aria-activedescendant'));
+ var currentIndex = comboInfo.options.indexOf (active);
+ var nextIndex = currentIndex;
+ if (event.which == DOWN) {
+ nextIndex = (currentIndex + 1) % comboInfo.options.length;
+ }
+ else if (event.which == UP) {
+ nextIndex = currentIndex - 1;
+ if (nextIndex < 0)
+ nextIndex = comboInfo.options.length - 1;
+ }
+
+ if (nextIndex != currentIndex) {
+ active.removeAttribute ('class');
+ active = comboInfo.options[nextIndex];
+ comboInfo.comboBox.setAttribute ('aria-activedescendant', active.getAttribute ('id'));
+ active.setAttribute ('class', 'hasFocus');
+ event.target.value = active.innerHTML;
+ }
+ }
+
+ function doOnload() {
+ var active = initComboInfo();
+ comboInfo.textEntry.value = active.innerHTML;
+ comboInfo.textEntry.focus();
+ active.setAttribute ('class', 'hasFocus');
+ }
+
+ </script>
+ </head>
+ <body onload='doOnload()'>
+ <div id="test" role="combobox" aria-expanded="true" aria-label="Tag" aria-autocomplete="inline" aria-activedescendant="o1">
+ <input id="testEntry" type="text" role="textbox" aria-owns="owned_listbox" onkeydown='handleArrow (event)'>
+ <ul role="listbox" id="owned_listbox" style="list-style-type: none;">
+ <li role="option" id="o1">Zebra</li>
+ <li role="option" id="o2">Zoom</li>
+ <li role="option" id="o3">Zeta</li>
+ <li role="option" id="o4">Zaphod</li>
+ </ul>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/573-haswarn.html b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/573-haswarn.html
new file mode 100644
index 0000000000..195dc7cdc0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/573-haswarn.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>In a &lt;div&gt; element with role="combobox" and aria-autocomplete="both", change values of the combobox by adjusting the up and down arrow keys with focus on the textfield in the combobox.</title>
+ <style>
+ .hasFocus { border: 2px solid red; }
+ </style>
+ <script>
+ var UP = 38;
+ var DOWN = 40;
+ comboInfo = {};
+
+ function toArray (/* NodeList */ nodeList) {
+ var result = [];
+ for (var i=0; i < nodeList.length; i++) {
+ result[i] = nodeList[i];
+ }
+ return result;
+ }
+
+ function initComboInfo() {
+ comboInfo.comboBox = document.getElementById ('test');
+ comboInfo.textEntry = document.getElementById ('testEntry');
+ var active = document.getElementById (comboInfo.comboBox.getAttribute ('aria-activedescendant'));
+ comboInfo.options = toArray (active.parentElement.children);
+ return active;
+ }
+
+ function handleArrow (/* Event */ event) {
+ /* NOTE: With respect to IE, assumes IE9 as per CR criteria (http://www.w3.org/WAI/ARIA/1.0/CR/implementation-report) */
+ var active = document.getElementById (comboInfo.comboBox.getAttribute ('aria-activedescendant'));
+ var currentIndex = comboInfo.options.indexOf (active);
+ var nextIndex = currentIndex;
+ if (event.which == DOWN) {
+ nextIndex = (currentIndex + 1) % comboInfo.options.length;
+ }
+ else if (event.which == UP) {
+ nextIndex = currentIndex - 1;
+ if (nextIndex < 0)
+ nextIndex = comboInfo.options.length - 1;
+ }
+
+ if (nextIndex != currentIndex) {
+ active.removeAttribute ('class');
+ active = comboInfo.options[nextIndex];
+ comboInfo.comboBox.setAttribute ('aria-activedescendant', active.getAttribute ('id'));
+ active.setAttribute ('class', 'hasFocus');
+ event.target.value = active.innerHTML;
+ }
+ }
+
+ function doOnload() {
+ var active = initComboInfo();
+ comboInfo.textEntry.value = active.innerHTML;
+ comboInfo.textEntry.focus();
+ active.setAttribute ('class', 'hasFocus');
+ }
+
+ </script>
+ </head>
+ <body onload='doOnload()'>
+ <div id="test" role="combobox" aria-expanded="true" aria-label="Tag" aria-autocomplete="both" aria-activedescendant="o2">
+ <input id="testEntry" type="text" role="textbox" aria-owns="owned_listbox" onkeydown='handleArrow (event)'>
+ <ul role="listbox" id="owned_listbox" style="list-style-type: none;">
+ <li role="option" id="o1">Zebra</li>
+ <li role="option" id="o2">Zoom</li>
+ <li role="option" id="o3">Zeta</li>
+ <li role="option" id="o4">Zaphod</li>
+ </ul>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/574.html b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/574.html
new file mode 100644
index 0000000000..0edd82e91d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/574.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>A &lt;div&gt; with role="list" and a child div with role="group" who has a child of role="button".</title>
+ </head>
+ <body>
+ <div id="test" role="list">
+ <div id="listChild" role="group">
+ <span id="groupChild" role="button">List <abbr title="containing">→</abbr> group <abbr title="containing">→</abbr> button</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/575.html b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/575.html
new file mode 100644
index 0000000000..2672741683
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/575.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>A &lt;div&gt;with role="menu" and a child div with role="group" who has a child of role="button"..</title>
+ </head>
+ <body>
+ <div id="test" role="menu">
+ <div id="menuChild" role="group">
+ <span id="groupChild" role="button">Menu <abbr title="containing">→</abbr> group <abbr title="containing">→</abbr> button</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/576.html b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/576.html
new file mode 100644
index 0000000000..25ac37ce26
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/576.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>A &lt;div&gt; with role="tree" and a child div with role="group" who has a child of role="button"</title>
+ </head>
+ <body>
+ <div id="test" role="tree">
+ <div id="treeChild" role="group">
+ <span id="groupChild" role="button">Tree <abbr title="containing">→</abbr> group <abbr title="containing">→</abbr> button</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/577.html b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/577.html
new file mode 100644
index 0000000000..f08915bed2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/577.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>A &lt;div&gt; with role="grid" and a child div with role="rowgroup" who has a child of role="button".</title>
+ </head>
+ <body>
+ <div id="test" role="grid">
+ <div id="gridChild" role="rowgroup">
+ <span id="rowgroupChild" role="button">Grid <abbr title="containing">→</abbr> rowgroup <abbr title="containing">→</abbr> button</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/578.html b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/578.html
new file mode 100644
index 0000000000..2e781e3d04
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/578.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>A page with two div elements that have role="toolbar" but not aria-label property.</title>
+ </head>
+ <body>
+ <div id="test" role="toolbar">Toolbar 1</div>
+ <div id="test2" role="toolbar">Toolbar 2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/579.html b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/579.html
new file mode 100644
index 0000000000..fd2441ea6a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/579.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>A page with one div element that has role="toolbar" but not aria-label property.</title>
+ </head>
+ <body>
+ <div id="test" role="toolbar">Toolbar 1</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/580.html b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/580.html
new file mode 100644
index 0000000000..14a2c11bd2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/580.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>A div element with style="display:none" has aria-hidden="true", and then script sets style to "display: block".</title>
+ <script>
+ function replaceStyle (/* Element */ element, /* String */ selector, /* String */ newValue) {
+ element.setAttribute ('style', selector + ':' + newValue);
+ if (newValue == 'block')
+ element.setAttribute ('aria-hidden', 'false');
+ else if (newValue == 'none')
+ element.setAttribute ('aria-hidden', 'true');
+ }
+ </script>
+ </head>
+ <body>
+ <div id="test" aria-hidden="true" style="display:none;">This &lt;div&gt;'s style switched from 'display:none' to 'display:block'. It's <code>aria-hidden</code> was simultaneously switched to 'false'.</div>
+ <p>
+ <button onclick="replaceStyle (document.getElementById ('test'), 'display', 'block')" type="button">Change to 'display:block'</button>
+ <button onclick="replaceStyle (document.getElementById ('test'), 'display', 'none')" type="button">Change to 'display:none'</button>
+ <button onclick="window.location.reload()" type="button">Reload Page</button>
+ </p>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/581.html b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/581.html
new file mode 100644
index 0000000000..bbe7143c50
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/581.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>A page with a div element with id="owned1" is referenced by two div elements that each have aria-owns="owned1".</title>
+ </head>
+ <body>
+ <div id="owner1" aria-owns="owned1">First owner of owned1</div>
+ <div id="owner2" aria-owns="owned1">Second owner of owned1</div>
+ <div id="owned1">I am owned1</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/582.html b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/582.html
new file mode 100644
index 0000000000..82a1f19981
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/582.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>An element with aria-setsize=5 has aria-posinset=6.</title>
+ </head>
+ <body>
+ <h2 id="label_fruit"> Available Fruit </h2>
+ <ul role="listbox" aria-labelledby="label_fruit">
+ <li role="option" aria-setsize="5" aria-posinset="6" id="test"> apples </li>
+ <li role="option" aria-setsize="5" aria-posinset="2"> bananas </li>
+ <li role="option" aria-setsize="5" aria-posinset="3"> cantaloupes </li>
+ <li role="option" aria-setsize="5" aria-posinset="4"> dates </li>
+ <li role="option" aria-setsize="5" aria-posinset="5"> kumquat </li>
+ </ul>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/584.html b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/584.html
new file mode 100644
index 0000000000..e784d5be04
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/author-requirements/584.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>An element with aria-setsize=1 has aria-posinset=5</title>
+ </head>
+ <body>
+ <h2 id="label_fruit"> Available Fruit </h2>
+ <ul role="listbox" aria-labelledby="label_fruit">
+ <li role="option" aria-setsize="1" aria-posinset="5" id="test"> apples </li>
+ <li role="option" aria-setsize="5" aria-posinset="2"> bananas </li>
+ <li role="option" aria-setsize="5" aria-posinset="3"> cantaloupes </li>
+ <li role="option" aria-setsize="5" aria-posinset="4"> dates </li>
+ <li role="option" aria-setsize="5" aria-posinset="5"> kumquat </li>
+ </ul>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/button-pressed/589.html b/testing/web-platform/tests/conformance-checkers/html-aria/button-pressed/589.html
new file mode 100644
index 0000000000..25171dfd05
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/button-pressed/589.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>An element with role button without the aria-pressed state.</title>
+ </head>
+ <body>
+ <div id="test" role="button">This div has role button</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/button-pressed/590.html b/testing/web-platform/tests/conformance-checkers/html-aria/button-pressed/590.html
new file mode 100644
index 0000000000..a5fc030cba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/button-pressed/590.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>An element with role button with an aria-pressed state of "true".</title>
+ </head>
+ <body>
+ <div id="test" role="button" aria-pressed='true'>This div has role button, with aria-pressed='true'</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/combobox-autocomplete-list/div-haswarn.html b/testing/web-platform/tests/conformance-checkers/html-aria/combobox-autocomplete-list/div-haswarn.html
new file mode 100644
index 0000000000..c60006cc98
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/combobox-autocomplete-list/div-haswarn.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Div with role="combobox" and aria-autocomplete="list"</title>
+ </head>
+ <body>
+ <div role="combobox" aria-expanded="true" aria-label="Tag"
+ aria-autocomplete="list" aria-activedescendant="selected_option">
+ <input type="text" role="textbox" aria-owns="owned_listbox">
+ <ul role="listbox" id="owned_listbox">
+ <li role="option">Zebra</li>
+ <li role="option" id="selected_option" aria-selected="true">Zoom</li>
+ </ul>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/combobox-autocomplete-list/input.html b/testing/web-platform/tests/conformance-checkers/html-aria/combobox-autocomplete-list/input.html
new file mode 100644
index 0000000000..7bf7dd587a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/combobox-autocomplete-list/input.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Input with role="combobox" and aria-autocomplete="list"</title>
+ </head>
+ <body>
+ <input tabindex="0" type="text" id="test" role="combobox" aria-label="Tag" aria-expanded="true"
+ aria-autocomplete="list" aria-owns="owned_listbox" aria-activedescendant="selected_option">
+ <ul role="listbox" id="owned_listbox">
+ <li role="option">Zebra</li>
+ <li role="option" id="selected_option" aria-selected="true">Zoom</li>
+ </ul>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/default.png b/testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/default.png
new file mode 100644
index 0000000000..556809f15f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/default.png
Binary files differ
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/state-1.png b/testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/state-1.png
new file mode 100644
index 0000000000..7d2bbefe80
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/state-1.png
Binary files differ
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/state-2.png b/testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/state-2.png
new file mode 100644
index 0000000000..51ce95ec28
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/state-2.png
Binary files differ
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/state-3.png b/testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/state-3.png
new file mode 100644
index 0000000000..2e22838edc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/state-3.png
Binary files differ
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/state-4.png b/testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/state-4.png
new file mode 100644
index 0000000000..1bb8260997
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/css-attr-sel/state-4.png
Binary files differ
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/host-language/implicit-semantics-checkbox-disparity-haswarn.html b/testing/web-platform/tests/conformance-checkers/html-aria/host-language/implicit-semantics-checkbox-disparity-haswarn.html
new file mode 100644
index 0000000000..99679c3d6d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/host-language/implicit-semantics-checkbox-disparity-haswarn.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Native checkbox with aria-checked that conflicts with native checked</title>
+ </head>
+ <body>
+ <form>
+ <input type="checkbox" role="checkbox" checked="checked" aria-checked="false" id="test" value="Placeholder content">
+ </form>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/host-language/implicit-semantics-checkbox-norole-haswarn.html b/testing/web-platform/tests/conformance-checkers/html-aria/host-language/implicit-semantics-checkbox-norole-haswarn.html
new file mode 100644
index 0000000000..edaedf0168
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/host-language/implicit-semantics-checkbox-norole-haswarn.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Native checkbox with aria-checked but no role</title>
+ </head>
+ <body>
+ <form>
+ <input type="checkbox" checked="checked" aria-checked="mixed" id="test" value="Placeholder content">
+ </form>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/host-language/implicit-semantics-checkbox-role-haswarn.html b/testing/web-platform/tests/conformance-checkers/html-aria/host-language/implicit-semantics-checkbox-role-haswarn.html
new file mode 100644
index 0000000000..8426a61711
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/host-language/implicit-semantics-checkbox-role-haswarn.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Native checkbox with aria-checked with role</title>
+ </head>
+ <body>
+ <form>
+ <input type="checkbox" checked="checked" role="checkbox" aria-checked="mixed" id="test" value="Placeholder content">
+ </form>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/host-language/input-range-valuetext.htm b/testing/web-platform/tests/conformance-checkers/html-aria/host-language/input-range-valuetext.htm
new file mode 100644
index 0000000000..2e6d079733
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/host-language/input-range-valuetext.htm
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <title>valuetext</title>
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8">
+</head>
+<body>
+ <input id="test" type="range" min="0" max="100" value="75" aria-valuetext="awesome">
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-1-haswarn.html b/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-1-haswarn.html
new file mode 100644
index 0000000000..58f860520c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-1-haswarn.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Live Region Event Test Case: Add text content</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <style>
+ div#TEST_ID {
+ margin: 0.5em;
+ padding: 0.25em;
+ border: medium gray solid;
+ width: 10em;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>ARIA 1.0 Live Region Event Test Case: Add text content</h1>
+
+ <div id="TEST_ID" aria-live="assertive" aria-label="charlotte">
+ </div>
+
+ <button onclick="tryAgain()">Try Again</button>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute with the value "assertive" has a text content added
+ 1.5 seconds after the document is loaded.</p>
+
+ <h2>Expected Results</h2>
+
+ <dl>
+ <dt>ATK/AT-SPI</dt>
+ <dd>ATK/AT-SPIevent: text_changed::insert event</dd>
+
+ <dt>AXAPI</dt>
+ <dd>AXLiveRegionChanged notification</dd>
+
+ <dt>MSAA + IAccessible2</dt>
+ <dd>IAccessible2: IA2_EVENT_TEXT_INSERTED event</dd>
+
+ <dt>MSAA + UIA Express</dt>
+ <dd>TextPattern..::.TextChangedEvent event</dd>
+
+ </dl>
+
+
+ <script>
+
+ function tryAgain() {
+ var node = document.getElementById('TEST_ID');
+
+ while (node.firstChild) node.removeChild(node.firstChild);
+
+ onLoad();
+
+ }
+
+ function addText () {
+ var node = document.getElementById('TEST_ID');
+
+ var text_node = document.createTextNode('TEST TEXT ADDED');
+
+ node.appendChild(text_node);
+ }
+
+ function onLoad() {
+
+ setTimeout(addText,1500);
+
+ }
+
+ window.addEventListener('load', onLoad);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-2.html b/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-2.html
new file mode 100644
index 0000000000..180ff4c44e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-2.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Live Region Event Test Case: Delete text content</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <style>
+ div#TEST_ID {
+ margin: 0.5em;
+ padding: 0.25em;
+ border: medium gray solid;
+ width: 10em;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>ARIA 1.0 Live Region Event Test Case: Delete text content</h1>
+
+ <div id="TEST_ID" aria-live="polite" >
+ TEST TEXT
+ </div>
+
+ <button onclick="tryAgain()">Try Again</button>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute with the value "polite" has a text content deleted
+ 1.5 seconds after the document is loaded.</p>
+
+ <h2>Expected Results</h2>
+
+ <dl>
+ <dt>ATK/AT-SPI</dt>
+ <dd>ATK/AT-SPIevent: text_changed::delete event</dd>
+
+ <dt>AXAPI</dt>
+ <dd></dd>
+ <dd>AXLiveRegionChanged notification</dd>
+
+ <dt>MSAA + IAccessible2</dt>
+ <dd>IAccessible2: IA2_EVENT_TEXT_REMOVED event</dd>
+
+ <dt>MSAA + UIA Express</dt>
+ <dd>TextPattern..::.TextChangedEvent event</dd>
+
+ </dl>
+
+
+ <script>
+
+ function tryAgain() {
+ addText()
+
+ onLoad();
+
+ }
+
+ function clearText() {
+ var node = document.getElementById('TEST_ID');
+
+ while (node.firstChild) node.removeChild(node.firstChild);
+ }
+
+ function addText () {
+ var node = document.getElementById('TEST_ID');
+
+ var text_node = document.createTextNode('TEST TEXT');
+
+ node.appendChild(text_node);
+ }
+
+ function onLoad() {
+
+ setTimeout(clearText,1500);
+
+ }
+
+ window.addEventListener('load', onLoad);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-3.html b/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-3.html
new file mode 100644
index 0000000000..8bd066d9f2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-3.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Live Region Event Test Case: Change text content</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <style>
+ div#TEST_ID {
+ margin: 0.5em;
+ padding: 0.25em;
+ border: medium gray solid;
+ width: 10em;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>ARIA 1.0 Live Region Event Test Case: Change text content</h1>
+
+ <div id="TEST_ID" aria-live="assertive">
+ TEST TEXT 1
+ </div>
+
+ <button onclick="tryAgain()">Try Again</button>
+
+ <h2>Description</h2>
+ <p>An element with an aria-live attribute with the value "assertive" has a text content changed
+ 1.5 seconds after the document is loaded.</p>
+
+ <h2>Expected Results</h2>
+
+ <dl>
+ <dt>ATK/AT-SPI</dt>
+ <dd>ATK/AT-SPIevent: text_changed::delete event followed by text_changed::insert event</dd>
+
+ <dt>AXAPI</dt>
+ <dd></dd>
+ <dd>AXLiveRegionChanged notification</dd>
+
+ <dt>MSAA + IAccessible2</dt>
+ <dd>IAccessible2: IA2_EVENT_TEXT_REMOVED event followed by IA2_EVENT_TEXT_INSERTED event</dd>
+
+ <dt>MSAA + UIA Express</dt>
+ <dd>TextPattern..::.TextChangedEvent event followed by another TextPattern..::.TextChangedEvent event</dd>
+
+ </dl>
+
+
+ <script>
+
+ function tryAgain() {
+ changeText('TEST TEXT 1')
+ onLoad();
+ }
+
+ function changeText(str) {
+ var node = document.getElementById('TEST_ID');
+ while (node.firstChild) node.removeChild(node.firstChild);
+
+ if (typeof str !== 'string') str = 'changed test text 2';
+ addText(str)
+ }
+
+ function addText (str) {
+ var node = document.getElementById('TEST_ID');
+ var text_node = document.createTextNode(str);
+ node.appendChild(text_node);
+ }
+
+ function onLoad() {
+ setTimeout(changeText,1500);
+ }
+
+ window.addEventListener('load', onLoad);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-4.html b/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-4.html
new file mode 100644
index 0000000000..25609e92c5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-4.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Live Region Event Test Case: Add text content (ALERT role)</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <style>
+ div#TEST_ID {
+ margin: 0.5em;
+ padding: 0.25em;
+ border: medium gray solid;
+ width: 20em;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>ARIA 1.0 Live Region Event Test Case: Add text content (ALERT role)</h1>
+
+ <div id="TEST_ID" role="alert" >
+ </div>
+
+ <button onclick="tryAgain()">Try Again</button>
+
+ <h2>Description</h2>
+ <p>An element with an role attribute with the value "alert" has a text content added
+ 1.5 seconds after the document is loaded.</p>
+
+ <h2>Expected Results</h2>
+
+ <dl>
+ <dt>ATK/AT-SPI</dt>
+ <dd>ATK/AT-SPIevent: text_changed::insert event</dd>
+
+ <dt>AXAPI</dt>
+ <dd>AXLiveRegionChanged notification</dd>
+
+ <dt>MSAA + IAccessible2</dt>
+ <dd>IAccessible2: IA2_EVENT_TEXT_INSERTED event</dd>
+
+ <dt>MSAA + UIA Express</dt>
+ <dd>TextPattern..::.TextChangedEvent event</dd>
+
+ </dl>
+
+
+ <script>
+
+ function tryAgain() {
+ var node = document.getElementById('TEST_ID');
+
+ while (node.firstChild) node.removeChild(node.firstChild);
+
+ onLoad();
+
+ }
+
+ function addText () {
+ var node = document.getElementById('TEST_ID');
+
+ var text_node = document.createTextNode('ALERT ROLE TEST TEXT ADDED');
+
+ node.appendChild(text_node);
+ }
+
+ function onLoad() {
+
+ setTimeout(addText,1500);
+
+ }
+
+ window.addEventListener('load', onLoad);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-5.html b/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-5.html
new file mode 100644
index 0000000000..4ca9d33fc6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-5.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Live Region Event Test Case: Change text content (LOG role)</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <style>
+ div#TEST_ID {
+ margin: 0.5em;
+ padding: 0.25em;
+ border: medium gray solid;
+ width: 20em;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>ARIA 1.0 Live Region Event Test Case: Change text content (LOG role)</h1>
+
+ <div id="TEST_ID" role="log">
+ LOG ROLE TEST TEXT 1
+ </div>
+
+ <button onclick="tryAgain()">Try Again</button>
+
+ <h2>Description</h2>
+ <p>An element with an role attribute with the value "log" has a text content changed
+ 1.5 seconds after the document is loaded.</p>
+
+ <h2>Expected Results</h2>
+
+ <dl>
+ <dt>ATK/AT-SPI</dt>
+ <dd>ATK/AT-SPIevent: text_changed::delete event followed by text_changed::insert event</dd>
+
+ <dt>AXAPI</dt>
+ <dd></dd>
+ <dd>AXLiveRegionChanged notification</dd>
+
+ <dt>MSAA + IAccessible2</dt>
+ <dd>IAccessible2: IA2_EVENT_TEXT_REMOVED event followed by IA2_EVENT_TEXT_INSERTED event</dd>
+
+ <dt>MSAA + UIA Express</dt>
+ <dd>TextPattern..::.TextChangedEvent event followed by another TextPattern..::.TextChangedEvent event</dd>
+
+ </dl>
+
+
+ <script>
+
+ function tryAgain() {
+ changeText('LOG ROLE TEST TEXT 1')
+ onLoad();
+ }
+
+ function changeText(str) {
+ var node = document.getElementById('TEST_ID');
+ while (node.firstChild) node.removeChild(node.firstChild);
+
+ if (typeof str !== 'string') str = 'log role changed test text 2';
+ addText(str)
+ }
+
+ function addText (str) {
+ var node = document.getElementById('TEST_ID');
+ var text_node = document.createTextNode(str);
+ node.appendChild(text_node);
+ }
+
+ function onLoad() {
+ setTimeout(changeText,1500);
+ }
+
+ window.addEventListener('load', onLoad);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-6.html b/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-6.html
new file mode 100644
index 0000000000..7fb2a07a01
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/live-events/test-case-live-event-6.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Live Region Event Test Case: Delete text content (STATUS role)</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ <style>
+ div#TEST_ID {
+ margin: 0.5em;
+ padding: 0.25em;
+ border: medium gray solid;
+ width: 20em;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>ARIA 1.0 Live Region Event Test Case: Delete text content (STATUS role)</h1>
+
+ <div id="TEST_ID" role="status" >
+ STATUS ROLE TEST TEXT
+ </div>
+
+ <button onclick="tryAgain()">Try Again</button>
+
+ <h2>Description</h2>
+ <p>An element with an role attribute with the value "status" has a text content deleted
+ 1.5 seconds after the document is loaded.</p>
+
+ <h2>Expected Results</h2>
+
+ <dl>
+ <dt>ATK/AT-SPI</dt>
+ <dd>ATK/AT-SPIevent: text_changed::delete event</dd>
+
+ <dt>AXAPI</dt>
+ <dd></dd>
+ <dd>AXLiveRegionChanged notification</dd>
+
+ <dt>MSAA + IAccessible2</dt>
+ <dd>IAccessible2: IA2_EVENT_TEXT_REMOVED event </dd>
+
+ <dt>MSAA + UIA Express</dt>
+ <dd>TextPattern..::.TextChangedEvent event </dd>
+
+ </dl>
+
+
+ <script>
+
+ function tryAgain() {
+ addText()
+
+ onLoad();
+
+ }
+
+ function clearText() {
+ var node = document.getElementById('TEST_ID');
+
+ while (node.firstChild) node.removeChild(node.firstChild);
+ }
+
+ function addText () {
+ var node = document.getElementById('TEST_ID');
+
+ var text_node = document.createTextNode('STATUS ROLE TEST TEXT');
+
+ node.appendChild(text_node);
+ }
+
+ function onLoad() {
+
+ setTimeout(clearText,1500);
+
+ }
+
+ window.addEventListener('load', onLoad);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/mixed-value/585.html b/testing/web-platform/tests/conformance-checkers/html-aria/mixed-value/585.html
new file mode 100644
index 0000000000..5b7c024dd5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/mixed-value/585.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Element with role menuitemradio having inherited state or property aria-checked with value "mixed".</title>
+ </head>
+ <body>
+ <div role="menu">
+ <div id="test" role="menuitemradio" aria-checked="mixed" tabindex="0">Radio menu item with aria-checked='mixed'</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/mixed-value/586.html b/testing/web-platform/tests/conformance-checkers/html-aria/mixed-value/586.html
new file mode 100644
index 0000000000..cc5d35362c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/mixed-value/586.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Element with role radio having inherited state or property aria-checked with value "mixed".</title>
+ </head>
+ <body>
+ <div id="test" role="radio" tabindex="0" aria-checked="mixed">Radio button with aria-checked='mixed'</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/596.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/596.html
new file mode 100644
index 0000000000..d2f4a9d8a2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/596.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>DIV with aria-labelledby="ID1" and aria-label is not specified and title is not specified.</title>
+ </head>
+ <body>
+ <div id="test" aria-labelledby='ID1'>aria-labelledby='ID1'</div>
+ <span id="ID1">Label for 'test' element</span>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/597-haswarn.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/597-haswarn.html
new file mode 100644
index 0000000000..9a2901cefa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/597-haswarn.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>DIV with aria-label="Tag" and aria-labelledby is not specified and title is not specified..</title>
+ </head>
+ <body>
+ <div id="test" aria-label='Tag'>aria-label='Tag'</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/598-haswarn.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/598-haswarn.html
new file mode 100644
index 0000000000..7d9404d823
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/598-haswarn.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>DIV with aria-labelledby="ID1" aria-label="Tag" and title is not specified.</title>
+ </head>
+ <body>
+ <div id="test" aria-labelledby="ID1" aria-label='Tag'>aria-labelledby="ID1" aria-label='Tag'</div>
+ <span id="ID1">Element with id='ID1'</span>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/599-haswarn.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/599-haswarn.html
new file mode 100644
index 0000000000..e08b666475
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/599-haswarn.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>DIV with id="ID0" and aria-labelledby="ID0 ID1" and aria-label="Tag" and title is not specified.</title>
+ </head>
+ <body>
+ <div id="test" aria-labelledby="ID0 ID1" aria-label="Tag">aria-labelledby="ID0 ID1" aria-label='Tag'</div>
+ <span id="ID0">Element with id='ID0'</span>
+ <span id="ID1">Element with id='ID1'</span>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/600.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/600.html
new file mode 100644
index 0000000000..407e35009d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/600.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>DIV with text and aria-label is not specified and aria-labelledby is not specified and title is not specified and role is not specified.</title>
+ </head>
+ <body>
+ <div id="test">Div with text</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/601.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/601.html
new file mode 100644
index 0000000000..696f900b99
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/601.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>DIV with text and role="button" and aria-label is not specified and aria-labelledby is not specified and title is not specified.</title>
+ </head>
+ <body>
+ <div id="test" role="button">Div with role of button, with text.</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/602.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/602.html
new file mode 100644
index 0000000000..cd896fc11f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/602.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>DIV with text and role="button" and title="Tag" and aria-label is not specified and aria-labelledby is not specified.</title>
+ </head>
+ <body>
+ <div id="test" role="button" title="Tag" style="outline:medium solid black; width:2em; height:1em;"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/603.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/603.html
new file mode 100644
index 0000000000..d43057cb7c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/603.html
@@ -0,0 +1,2 @@
+<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>&lt; href="test.html" aria-labelledby="ID1"&gt; ABC &lt;/A&gt; and aria-label is not specified and title is not specified.</title> </head> <body>
+ <div id="ID1">Nifty</div> <a href="test.html" aria-labelledby="ID1">ABC</a> </body> </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/604.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/604.html
new file mode 100644
index 0000000000..d130308935
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/604.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>aria-label on anchor (without aria-labelledby or title attribute)</title>
+ </head>
+ <body>
+ <a id="test" href="test.html" aria-label="Tag">ABC</a>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/605.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/605.html
new file mode 100644
index 0000000000..a9a47476bb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/605.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Aria-label on anchor with aria-labelledby (no title attribute)</title>
+ </head>
+ <body>
+ <a href="test.html" id="test" aria-labelledby="ID1" aria-label="Tag">ABC</a>
+ <p id="ID1">Here is some labelledby text</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/606.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/606.html
new file mode 100644
index 0000000000..31a65d6b8a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/606.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>aria-label on anchor with two aria-labelledby ids (no title attribute)</title>
+ </head>
+ <body>
+ <a href="test.html" id="ID0" aria-labelledby="ID0 ID1" aria-label="Tag"></a>
+ <p id="ID1">Also labelledby text ID1</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/607.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/607.html
new file mode 100644
index 0000000000..8e71e7d6e8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/607.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Anchor with no aria-label, no aria-labelledby, no title attribute</title>
+ </head>
+ <body>
+ <a href="test.html" id="test">ABC</a>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/608.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/608.html
new file mode 100644
index 0000000000..e73fc0f25a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/608.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Title attribute, no aria-label, aria-labelledby</title>
+ </head>
+ <body>
+ <a href="test.html" id="test" title="Tag"></a>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/837.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/837.html
new file mode 100644
index 0000000000..eab418c842
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-general/837.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Tree item with text value "Animals" with two descendant tree items with text value "Cats" and "Dogs".</title>
+ </head>
+ <body>
+ <ul id="tree0" role="tree" aria-activedescendant="tree0_item0" tabindex="0">
+ <li id="tree0_item0" role="treeitem" aria-level="1" aria-expanded="true">
+ Animals
+ <ul role="group">
+ <li id="tree0_item0_1" role="treeitem" aria-level="2" aria-expanded="true">Cats</li>
+ <li id="tree0_item0_2" role="treeitem" aria-level="2" aria-expanded="true">Dogs</li>
+ </ul>
+ </li>
+ </ul>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/557-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/557-isvalid.html
new file mode 100644
index 0000000000..5cd2d30636
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/557-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 557 IMG with aria-label="l" and alt="a" and title="t" and aria-labelledby not specified.</title>
+</head>
+<body>
+<img src="foo.jpg" aria-label="1" alt="a" title="t">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/565-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/565-isvalid.html
new file mode 100644
index 0000000000..78ccdf0ca2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/565-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 565 IMG with id="ID0" and aria-label="l" and aria-labelledby="ID0 ID1 ID2 ID3" and alt="a" and title="t".</title>
+</head>
+<body>
+<input type="text" value="peanuts" id="ID1">
+<input type="text" value="popcorn" id="ID2">
+<input type="text" value="apple jacks" id="ID3">
+<img id="ID0" aria-label="1" aria-labelledby="ID0 ID1 ID2 ID3" alt= "a" title="t" src="foo.jpg">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/566-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/566-isvalid.html
new file mode 100644
index 0000000000..58ea9334e0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/566-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 566 IMG with id="ID0" and aria-label="" and aria-labelledby="ID0 ID1 ID2 ID3" and alt="a" and title="t".</title>
+</head>
+<body>
+<input type="text" value="peanuts" id="ID1">
+<input type="text" value="popcorn" id="ID2">
+<input type="text" value="apple jacks" id="ID3">
+<img id="ID0" aria-label="" aria-labelledby="ID0 ID1 ID2 ID3" alt= "" title="t" src="foo.jpg">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/foo.jpg b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/foo.jpg
new file mode 100644
index 0000000000..7d11a4f7cf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/foo.jpg
Binary files differ
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/test.png b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/test.png
new file mode 100644
index 0000000000..85cfa35fd1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-img/test.png
Binary files differ
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/538.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/538.html
new file mode 100644
index 0000000000..d8d9225c1f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/538.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 538 UT type="hidden" with no aria-labelledby and with id="test".</title>
+</head>
+<body>
+<input type="hidden" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/542.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/542.html
new file mode 100644
index 0000000000..2e2f5c5afa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/542.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 542 An INPUT type=submit, with id="test", with no aria-labelledby and no aria-label and does not have a role=presentation.</title>
+</head>
+<body>
+<input type="submit" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/543.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/543.html
new file mode 100644
index 0000000000..4fd6cc33a5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/543.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 543 An INPUT type="reset", with id="test", with no aria-labelledby and no aria-label and does not have a role=presentation.</title>
+</head>
+<body>
+<input type="reset" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/544.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/544.html
new file mode 100644
index 0000000000..3bf8fb2457
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/544.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 544 An INPUT type=button, with id="test", value="foo", with no aria-labelledby and no aria-label and does not have a role=presentation.</title>
+</head>
+<body>
+<input type="button" id="test" value="foo">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/545.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/545.html
new file mode 100644
index 0000000000..16e0d7e1f9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/545.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 545 An INPUT type=img, with id="test", with no aria-labelledby, and no aria-label, does not have a role=presentation, and has an alt attribute.</title>
+</head>
+<body>
+<input src="baz.html" type="image" id="test" alt="foo">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/546.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/546.html
new file mode 100644
index 0000000000..e17ad3be87
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/546.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 546 An INPUT type=text, password, checkbox, radio, file, or img, with id="test", with no aria-labelledby and no aria-label, does not have a role=presentation, and is referenced by a LABEL element.</title>
+</head>
+<body>
+<label for="test">States:</label>
+<input type="text" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/551.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/551.html
new file mode 100644
index 0000000000..fe1f4c17b6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/551.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 551 An INPUT type=text, password, checkbox, radio, file, or image , with id="test", with no aria-labelledby and no aria-label, does not have a role=presentation, is not referenced by a LABEL element, and has a title.</title>
+</head>
+<body>
+<input type="text" id="test" title="crazy" value="baz">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/552.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/552.html
new file mode 100644
index 0000000000..6623a107e9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/552.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 552 An INPUT type=text, password, checkbox, radio, file, or image, with id="test", with no aria-labelledby and no aria-label, but is referenced by a LABEL element that has an associated CSS :before content rule.</title>
+<style>
+
+label:before
+{
+content:"fancy ";
+}
+</style>
+</head>
+<body>
+<label for="test">fruit</label>
+<input type="text" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/553.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/553.html
new file mode 100644
index 0000000000..b0189c7163
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/553.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 553 An INPUT type=text, password, checkbox, radio, file, or image, with id="test", with no aria-labelledby and no aria-label, but is referenced by a LABEL element that has an associated CSS :after content rule. </title>
+<style>
+
+label:after
+{
+content:" fruit";
+}
+</style>
+</head>
+<body>
+<label for="test">fancy</label>
+<input type="text" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/609.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/609.html
new file mode 100644
index 0000000000..b3b07abff7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/609.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Title attribute, no aria-label, aria-labelledby</title>
+ </head>
+ <body>
+ <input id="test" type="text" aria-labelledby="ID1 ID2 ID3">
+ <p id="ID1">Here is some labelledby text for ID1</p>
+ <p id="ID2">Also labelledby text ID2</p>
+ <p id="ID3">Additional labelledby text ID3</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/610.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/610.html
new file mode 100644
index 0000000000..bd234fbc49
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/610.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Input element, no wai-aria</title>
+ </head>
+ <body>
+ <input id="test" type="text" aria-label="bar" aria-labelledby="ID1 test">
+ <div id="ID1">foo</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/611.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/611.html
new file mode 100644
index 0000000000..4a9d343a41
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/611.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Input element with type="text" referenced by a label, no wai aria</title>
+ </head>
+ <body>
+ <input id="test" type="text">
+ <label for="test">foo</label>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/612.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/612.html
new file mode 100644
index 0000000000..5037cbd785
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/612.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Input with type="password" label/for without wai-aria</title>
+ </head>
+ <body>
+<input type="password" id="test">
+<label for="test">foo</label></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/613.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/613.html
new file mode 100644
index 0000000000..0f16f92202
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/613.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Input with type="checkbox" label/for without wai-aria</title>
+ </head>
+ <body>
+<input type="checkbox" id="test">
+<label for="test">foo</label></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/614.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/614.html
new file mode 100644
index 0000000000..29d3d59cd2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/614.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Input with type="radio" label/for without wai-aria</title>
+ </head>
+ <body>
+<input type="radio" id="test">
+<label for="test">foo</label></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/615.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/615.html
new file mode 100644
index 0000000000..1790e6aa8e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/615.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Input with type="file" label/for without wai-aria</title>
+ </head>
+ <body>
+<input type="file" id="test">
+<label for="test">foo</label></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/659.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/659.html
new file mode 100644
index 0000000000..c7700a8d02
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/659.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Text input with @title and :before and :after content rule</title>
+ <style>
+ label:before { content: "foo"; }
+ label:after { content: "baz"; }
+ </style>
+ </head>
+ <body>
+ <form>
+ <label for="test" title="bar"><input id="test" type="text" name="test" title="bar"></label>
+ </form>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/660.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/660.html
new file mode 100644
index 0000000000..7fd0d265a3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/660.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Text input with @title and :before and :after content rule</title>
+ <style>
+ label:before { content: "foo "; }
+ label:after { content: " baz"; }
+ </style>
+ </head>
+ <body>
+ <form>
+ <label for="test" title="bar"><input id="test" type="password" name="test" title="bar"></label>
+ </form>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/661.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/661.html
new file mode 100644
index 0000000000..7cb28dcf8e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/661.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Text input with @title and :before and :after content rule</title>
+ <style>
+ label:before { content: "foo"; }
+ label:after { content: "baz"; }
+ </style>
+ </head>
+ <body>
+ <form>
+ <label for="test"><input id="test" type="checkbox" name="test" title=" bar "></label>
+ </form>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/662.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/662.html
new file mode 100644
index 0000000000..a857a15560
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/662.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Text input with @title and :before and :after content rule</title>
+ <style>
+ label:before { content: "foo"; }
+ label:after { content: "baz"; }
+ </style>
+ </head>
+ <body>
+ <form>
+ <label for="test"><input id="test" type="radio" name="test" title=" bar "></label>
+ </form>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/663.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/663.html
new file mode 100644
index 0000000000..01c5604826
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/663.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Text input with @title and :before and :after content rule</title>
+ <style>
+ label:before { content: "foo "; }
+ label:after { content: " baz"; }
+ </style>
+ </head>
+ <body>
+ <form>
+ <label for="test"><input id="test" type="file" name="test" title="bar"></label>
+ </form>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/721.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/721.html
new file mode 100644
index 0000000000..ae260117b3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/721.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 546a An INPUT type=text, password, checkbox, radio, file, or img, with id="test", with no aria-labelledby and no aria-label, does not have a role=presentation, and is referenced by a LABEL element.</title>
+</head>
+<body>
+<label for="test">States:</label>
+<input type="password" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/723.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/723.html
new file mode 100644
index 0000000000..eb407a8aff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/723.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 546b An INPUT type=text, password, checkbox, radio, file, or img, with id="test", with no aria-labelledby and no aria-label, does not have a role=presentation, and is referenced by a LABEL element.</title>
+</head>
+<body>
+<label for="test">States:</label>
+<input type="checkbox" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/724.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/724.html
new file mode 100644
index 0000000000..bede445367
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/724.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 546c An INPUT type=text, password, checkbox, radio, file, or img, with id="test", with no aria-labelledby and no aria-label, does not have a role=presentation, and is referenced by a LABEL element.</title>
+</head>
+<body>
+<label for="test">States:</label>
+<input type="radio" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/725.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/725.html
new file mode 100644
index 0000000000..e24d07d9bd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/725.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 546d An INPUT type=text, password, checkbox, radio, file, or img, with id="test", with no aria-labelledby and no aria-label, does not have a role=presentation, and is referenced by a LABEL element.</title>
+</head>
+<body>
+<label for="test">File:</label>
+<input type="file" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/748.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/748.html
new file mode 100644
index 0000000000..fe6468492e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/748.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>An INPUT type=text, password, checkbox, radio, file, or image , with id="test", with no aria-labelledby and no aria-label, does not have a role=presentation, is not referenced by a LABEL element, and has a title.</title>
+</head>
+<body>
+<input type="password" id="test" title="crazy" value="baz">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/749.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/749.html
new file mode 100644
index 0000000000..39492c77ef
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/749.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>An INPUT type=text, password, checkbox, radio, file, or image , with id="test", with no aria-labelledby and no aria-label, does not have a role=presentation, is not referenced by a LABEL element, and has a title.</title>
+</head>
+<body>
+<input type="checkbox" id="test" title="crazy">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/750.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/750.html
new file mode 100644
index 0000000000..28c9db3b72
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/750.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>An INPUT type=text, password, checkbox, radio, file, or image , with id="test", with no aria-labelledby and no aria-label, does not have a role=presentation, is not referenced by a LABEL element, and has a title.</title>
+</head>
+<body>
+<input type="radio" id="test" title="crazy">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/751.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/751.html
new file mode 100644
index 0000000000..a68873061c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/751.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>An INPUT type=text, password, checkbox, radio, file, or image , with id="test", with no aria-labelledby and no aria-label, does not have a role=presentation, is not referenced by a LABEL element, and has a title.</title>
+</head>
+<body>
+<input type="file" id="test" title="crazy">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/753.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/753.html
new file mode 100644
index 0000000000..49d29bfe81
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/753.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>An INPUT type=text, password, checkbox, radio, file, or image, with id="test", with no aria-labelledby and no aria-label, but is referenced by a LABEL element that has an associated CSS :before content rule.</title>
+<style>
+
+label:before
+{
+content:"fancy ";
+}
+</style>
+</head>
+<body>
+<label for="test">fruit</label>
+<input type="password" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/754.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/754.html
new file mode 100644
index 0000000000..9e4fe8aa81
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/754.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>An INPUT type=text, password, checkbox, radio, file, or image, with id="test", with no aria-labelledby and no aria-label, but is referenced by a LABEL element that has an associated CSS :before content rule.</title>
+<style>
+
+label:before
+{
+content:"fancy ";
+}
+</style>
+</head>
+<body>
+<label for="test">fruit</label>
+<input type="checkbox" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/755.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/755.html
new file mode 100644
index 0000000000..8d765bffe4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/755.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>An INPUT type=text, password, checkbox, radio, file, or image, with id="test", with no aria-labelledby and no aria-label, but is referenced by a LABEL element that has an associated CSS :before content rule.</title>
+<style>
+
+label:before
+{
+content:"fancy ";
+}
+</style>
+</head>
+<body>
+<label for="test">fruit</label>
+<input type="radio" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/756.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/756.html
new file mode 100644
index 0000000000..f8d1b89cd0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/756.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>An INPUT type=text, password, checkbox, radio, file, or image, with id="test", with no aria-labelledby and no aria-label, but is referenced by a LABEL element that has an associated CSS :before content rule.</title>
+<style>
+
+label:before
+{
+content:"fancy ";
+}
+</style>
+</head>
+<body>
+<label for="test">fruit</label>
+<input type="file" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/758.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/758.html
new file mode 100644
index 0000000000..51c48ea04f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/758.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>An INPUT type=text, password, checkbox, radio, file, or image, with id="test", with no aria-labelledby and no aria-label, but is referenced by a LABEL element that has an associated CSS :after content rule. </title>
+<style>
+
+label:after
+{
+content:" fruit"
+}
+</style>
+</head>
+<body>
+<label for="test">fancy</label>
+<input type="password" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/759.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/759.html
new file mode 100644
index 0000000000..63929e2d61
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/759.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>An INPUT type=text, password, checkbox, radio, file, or image, with id="test", with no aria-labelledby and no aria-label, but is referenced by a LABEL element that has an associated CSS :after content rule. </title>
+<style>
+
+label:after
+{
+content:" fruit"
+}
+</style>
+</head>
+<body>
+<label for="test">fancy</label>
+<input type="checkbox" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/760.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/760.html
new file mode 100644
index 0000000000..feda3261e4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/760.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>An INPUT type=text, password, checkbox, radio, file, or image, with id="test", with no aria-labelledby and no aria-label, but is referenced by a LABEL element that has an associated CSS :after content rule. </title>
+<style>
+
+label:after
+{
+content:" fruit"
+}
+</style>
+</head>
+<body>
+<label for="test">fancy</label>
+<input type="radio" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/761.html b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/761.html
new file mode 100644
index 0000000000..9ac96625a8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/761.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>An INPUT type=text, password, checkbox, radio, file, or image, with id="test", with no aria-labelledby and no aria-label, but is referenced by a LABEL element that has an associated CSS :after content rule. </title>
+<style>
+
+label:after
+{
+content:"fancy";
+}
+</style>
+</head>
+<body>
+<label for="test">fruit</label>
+<input type="file" id="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/foo.jpg b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/foo.jpg
new file mode 100644
index 0000000000..7d11a4f7cf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/name-computation-input/foo.jpg
Binary files differ
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/859.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/859.html
new file mode 100644
index 0000000000..ad383353b0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/859.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test 859</title>
+ </head>
+ <body>
+ <div id="test" aria-label="test" role="alertdialog"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/860.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/860.html
new file mode 100644
index 0000000000..3079ef86c7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/860.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>test 860</title>
+ </head>
+ <body>
+ <div id="test" aria-label="test" role="application"></div>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/861.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/861.html
new file mode 100644
index 0000000000..86284e08d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/861.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>test 861</title>
+ </head>
+ <body>
+ <div id="test" aria-label="test" role="button"></div>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/863.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/863.html
new file mode 100644
index 0000000000..8ae98c7f1e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/863.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>test 863</title>
+ </head>
+ <body>
+ <div role="grid" aria-label="mygrid">
+ <div role="row">
+ <div id="test" aria-label="foo" role="columnheader"></div>
+ </div>
+ </div>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/864.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/864.html
new file mode 100644
index 0000000000..0b706e5c87
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/864.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test case 864
+ </title>
+ </head>
+ <body>
+ <input type="text" id="test" aria-label="foo" role="combobox"
+ aria-owns="owned_listbox" aria-activedescendant="selected_option" aria-expanded="true">
+ <ul role="listbox" id="owned_listbox">
+ <li role="option">Zebra</li>
+ <li role="option" id="selected_option">Zoom</li>
+ </ul>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/865.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/865.html
new file mode 100644
index 0000000000..d706f80a25
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/865.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>test 865</title>
+ </head>
+ <body>
+ <div id="test" aria-label="foo" role="dialog"></div>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/866.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/866.html
new file mode 100644
index 0000000000..8d4d5e42f1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/866.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>test 866</title>
+ </head>
+ <body>
+ <div id="test" aria-label="foo" role="document"></div>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/867.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/867.html
new file mode 100644
index 0000000000..a60653fd7c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/867.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test 867</title>
+ </head>
+ <body>
+ <div id="test" role="grid" aria-label="foo">
+ <div role="row">
+ <div role="columnheader" id="obj1">obj1</div>
+ </div>
+ <div role="row">
+ <div role="gridcell" id="obj2">obj2</div>
+ </div>
+ </div>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/868.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/868.html
new file mode 100644
index 0000000000..d43c86f296
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/868.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test 868</title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <div role="columnheader" id="obj1">obj1</div>
+ </div>
+ <div role="row">
+ <div id="test" aria-label="foo" role="gridcell">obj2</div>
+ </div>
+ </div>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/869.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/869.html
new file mode 100644
index 0000000000..cba68be90a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/869.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>test 869</title>
+ </head>
+ <body>
+ <div id="test" aria-label="foo" role="heading" aria-level="1"></div>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/871.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/871.html
new file mode 100644
index 0000000000..4595a7cf99
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/871.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 871</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <div id="test" role="listbox" aria-label="foo">
+ <div role="option" aria-setsize="3" aria-posinset="1" tabindex="-1">Option 1</div>
+ <div role="option" aria-setsize="3" aria-posinset="2" tabindex="-1">Option 2</div>
+ <div role="option" aria-setsize="3" aria-posinset="3" tabindex="-1">Option 3</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/872.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/872.html
new file mode 100644
index 0000000000..0469d7c169
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/872.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test case 872</title>
+ </head>
+ <body>
+ <div role="list"><div id="test" role="listitem" aria-label="foo"></div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/873.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/873.html
new file mode 100644
index 0000000000..7ae36c5e70
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/873.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test case 873
+ </title>
+ </head>
+ <body>
+ <div id="test" role="log" aria-label="foo">Placeholder content</div>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/874.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/874.html
new file mode 100644
index 0000000000..5d44672d31
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/874.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test case 874
+ </title>
+ </head>
+ <body>
+ <div id="test" role=" marquee" aria-label="foo"></div>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/875.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/875.html
new file mode 100644
index 0000000000..52422efade
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/875.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test case 875
+ </title>
+ </head>
+ <body>
+ <div id="test" role="menu" tabindex="0" aria-label="foo" aria-activedescendant="obj1">
+ <div id="obj1" role="menuitem">obj1</div>
+ <div id="obj2" role="menuitem">obj2</div>
+ </div>
+ </body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/879.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/879.html
new file mode 100644
index 0000000000..a9a876a03e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/879.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 879</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <div role="listbox">
+ <div role="option" aria-setsize="3" aria-label="foo" id="test" aria-posinset="1" tabindex="-1"></div>
+ <div role="option" aria-setsize="3" aria-posinset="2" tabindex="-1">Option 2</div>
+ <div role="option" aria-setsize="3" aria-posinset="3" tabindex="-1">Option 3</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/880.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/880.html
new file mode 100644
index 0000000000..570d85361d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/880.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test case 880
+ </title>
+ </head>
+ <body>
+ <div id="test" role="progressbar" aria-label="foo" aria-valuemax="1.1">Placeholder content</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/887.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/887.html
new file mode 100644
index 0000000000..90151869f7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/887.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test case 887</title>
+ </head>
+ <body>
+ <div role="tablist">
+ <div role="tab">tab1</div><div role="tab">tab2</div>
+ </div>
+ <div id="test" aria-label="foo" role="tabpanel">
+ Boring tab panel
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/888.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/888.html
new file mode 100644
index 0000000000..da876814e0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/888.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test case 888</title>
+ </head>
+ <body>
+ <div id="test" aria-label="foo" role="textbox"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/889.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/889.html
new file mode 100644
index 0000000000..2cf67a3201
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/889.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test case 889</title>
+ </head>
+ <body>
+ <div id="test" aria-label="foo" role="timer"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/890.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/890.html
new file mode 100644
index 0000000000..23299390b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/890.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test case 890</title>
+ </head>
+ <body>
+ <input type="text" aria-describedby="test">
+ <div id="test" aria-label="foo" role="tooltip"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/891.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/891.html
new file mode 100644
index 0000000000..2d2361e43d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/891.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test case 891
+ </title>
+ </head>
+ <body>
+ <div id="test" role="tree" aria-label="foo">
+ <div role="treeitem" id="obj1">obj1</div>
+ <div role="treeitem" id="obj2">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/892.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/892.html
new file mode 100644
index 0000000000..20934bbbfa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/892.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test case 892
+ </title>
+ </head>
+ <body>
+ <div role="tree">
+ <div role="treeitem" aria-label="foo" id="test">obj1</div>
+ <div role="treeitem" id="obj2">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/893.html b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/893.html
new file mode 100644
index 0000000000..819fa8d8d8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/namefromauthor-requ/893.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>test case 893
+ </title>
+ </head>
+ <body>
+ <div id="test" role="treegrid" aria-label="foo" aria-activedescendant="obj1" tabindex="0">
+ <div role="row">
+ <div id="obj1" role="gridcell">obj1</div>
+ <div id="obj2" role="gridcell">obj2</div>
+ </div>
+ <div role="row">
+ <div id="obj3" role="gridcell">obj3</div>
+ <div id="obj4" role="gridcell">obj4</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/noaria.html b/testing/web-platform/tests/conformance-checkers/html-aria/noaria.html
new file mode 100644
index 0000000000..e404e6619a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/noaria.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>No ARIA markup</title>
+ </head>
+ <body>
+ <div id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/497-novalid.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/497-novalid.html
new file mode 100644
index 0000000000..73d4e99d65
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/497-novalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 497 Image element with role="presentation" but with a reference to a description </title>
+</head>
+<body>
+<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-describedby="foo">
+<p id="foo">
+This is an image.
+</p>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/498-novalid.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/498-novalid.html
new file mode 100644
index 0000000000..974f044917
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/498-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 498 Image element with role="presentation" but aria-disabled="true" </title>
+</head>
+<body>
+<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-disabled="true">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/499-novalid.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/499-novalid.html
new file mode 100644
index 0000000000..30f0c90e0a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/499-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 499 Image element with role="presentation" but aria-dropeffect="move" </title>
+</head>
+<body>
+<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-dropeffect="move">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/500-novalid.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/500-novalid.html
new file mode 100644
index 0000000000..309833d3e5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/500-novalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 500 Image element with role="presentation" but with a valid aria-flowto attribute</title>
+</head>
+<body>
+<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-flowto="test2">
+<div role="img" id="test2">
+</div>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/501-novalid.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/501-novalid.html
new file mode 100644
index 0000000000..f944fd0725
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/501-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 501 Image element with role="presentation" but with aria-grabbed="true"</title>
+</head>
+<body>
+<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-grabbed="true">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/502-novalid.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/502-novalid.html
new file mode 100644
index 0000000000..944e1c16c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/502-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 502 Image element with role="presentation" but with aria-haspopup="true"</title>
+</head>
+<body>
+<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-haspopup="true">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/503-novalid.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/503-novalid.html
new file mode 100644
index 0000000000..33fec52acf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/503-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 503 Image element with role="presentation" but with aria-hidden="true"</title>
+</head>
+<body>
+<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-hidden="true">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/504-novalid.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/504-novalid.html
new file mode 100644
index 0000000000..3b1f807b3b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/504-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 504 Image element with role="presentation" but with aria-invalid="true"</title>
+</head>
+<body>
+<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-invalid="true">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/505-novalid.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/505-novalid.html
new file mode 100644
index 0000000000..587cd874b1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/505-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 505 Image element with role="presentation" but with aria-label="test"</title>
+</head>
+<body>
+<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-label="test">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/506-novalid.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/506-novalid.html
new file mode 100644
index 0000000000..d518b25d9e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/506-novalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 506 Image element with role="presentation" but with a valid aria-labelledby attribute</title>
+</head>
+<body>
+<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-labelledby="test2">
+<div id="test2">
+test_label
+</div>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/507-novalid.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/507-novalid.html
new file mode 100644
index 0000000000..5b5542abec
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/507-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 507 Image element with role="presentation" but with aria-live="assertive"</title>
+</head>
+<body>
+<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-live="assertive">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/509-novalid.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/509-novalid.html
new file mode 100644
index 0000000000..1934481487
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/509-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 509 Image element with role="presentation" but with aria-relevant="text"</title>
+</head>
+<body>
+<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-live="polite" aria-relevant="text">
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/510.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/510.html
new file mode 100644
index 0000000000..05c50a161e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/510.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 510 An owned, unfocusable, element untied to an aria relationship that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td>Test me</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/511.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/511.html
new file mode 100644
index 0000000000..d9a3043fe3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/511.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 511 An owned, focusable element, tied to an aria relationship that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td tabindex="0" id="foo">Test me</td>
+</tr>
+</table>
+<div aria-controls="foo">
+</div>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/512.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/512.html
new file mode 100644
index 0000000000..35c0a5ef07
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/512.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 512 An owned, unfocusable element, having aria-atomic="true" that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td aria-atomic="true">Test me</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/513.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/513.html
new file mode 100644
index 0000000000..4a908544f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/513.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 513 An owned, unfocusable element, having aria-busy="true" that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td aria-busy="true">Test me</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/514.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/514.html
new file mode 100644
index 0000000000..0f7c348002
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/514.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 514 An owned, unfocusable element, with a valid aria-controls attribue set that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td aria-controls="foo">Test me</td>
+</tr>
+</table>
+<div id="foo">
+</div>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/515.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/515.html
new file mode 100644
index 0000000000..de4d7caa2c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/515.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 515 An owned, unfocusable element, with a valid aria-describedby attribue set that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td aria-describedby="foo">Test me</td>
+</tr>
+</table>
+<div id="foo">
+You can
+</div>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/516.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/516.html
new file mode 100644
index 0000000000..dacee180ca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/516.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 516 An owned, unfocusable element, having aria-disabled="true" that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td aria-disabled="true">Test me</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/517.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/517.html
new file mode 100644
index 0000000000..3154b9da2f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/517.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 517 An owned, unfocusable element, having aria-dropeffect="move" that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td aria-dropeffect="move">Test me</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/518.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/518.html
new file mode 100644
index 0000000000..a2c85521c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/518.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 518 An owned, unfocusable element, with a valid aria-flowto attribue set that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td aria-flowto="foo">Test me</td>
+</tr>
+</table>
+<div id="foo">
+You can
+</div>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/519.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/519.html
new file mode 100644
index 0000000000..8ff435f4d6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/519.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 519 An owned, unfocusable element, having aria-grabbed="true" that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td aria-grabbed="true">Test me</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/520.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/520.html
new file mode 100644
index 0000000000..9b7bee0f64
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/520.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 520 An owned, unfocusable element, having aria-haspopup="true" that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td aria-haspopup="true">Test me</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/521.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/521.html
new file mode 100644
index 0000000000..c98a873d6a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/521.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 521 An owned, unfocusable element, having aria-hidden="true" that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td aria-hidden="true">Test me</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/522.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/522.html
new file mode 100644
index 0000000000..1d18a47b8a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/522.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 522 An owned, unfocusable element, having aria-invalid="true" that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td aria-invalid="true">Test me</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/523-haswarn.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/523-haswarn.html
new file mode 100644
index 0000000000..7a2ba4138e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/523-haswarn.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 523 An owned, unfocusable element, having aria-label="test" that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td aria-label="test">foo</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/524.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/524.html
new file mode 100644
index 0000000000..b624f041a2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/524.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 524 An owned, unfocusable element, with a valid aria-labelledby attribute set that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td aria-labelledby="foo"></td>
+</tr>
+</table>
+<div id="foo">test</div>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/525.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/525.html
new file mode 100644
index 0000000000..cf97c15f61
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/525.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 525 An owned, unfocusable element, having aria-live="assertive" that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td aria-live="assertive">test</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/527.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/527.html
new file mode 100644
index 0000000000..a7a6e751cf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentation-role/527.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>Test 527 An owned, unfocusable element, having aria-relevant="text" that inherits role="presentation"</title>
+</head>
+<body>
+<table role="presentation">
+<tr>
+<td aria-relevant="text">test</td>
+</tr>
+</table>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-839.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-839.html
new file mode 100644
index 0000000000..5a64d87858
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-839.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 839: Separator</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 839: Separator</h1>
+
+ <div role="separator">
+ <div>Test text content</div>
+ <label>Textbox <input type="text" value="123456789"></label>
+ <p><a href="#link">Test link</a></p>
+ <div role="button" onclick="alert('Button Pressed')">Button</div>
+ </div>
+
+
+ </body>
+
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-840.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-840.html
new file mode 100644
index 0000000000..ed1f857bf7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-840.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 840: progressbar</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 840: progressbar</h1>
+
+ <div role="progressbar">
+ <div>Test text content</div>
+ <label>Textbox <input type="text" value="123456789"></label>
+ <p><a href="#link">Test link</a></p>
+ <div role="button" onclick="alert('Button Pressed')">Button</div>
+ </div>
+
+
+ </body>
+
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-842.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-842.html
new file mode 100644
index 0000000000..aa1cf57591
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-842.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 842: img</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 842: img</h1>
+
+ <div role="img" aria-label="Test image">
+ <div>Test text content</div>
+ <label>Textbox <input type="text" value="123456789"></label>
+ <p><a href="#link">Test link</a></p>
+ <div role="button" onclick="alert('Button Pressed')">Button</div>
+ </div>
+
+
+ </body>
+
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-843.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-843.html
new file mode 100644
index 0000000000..cae563fc7e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-843.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 843: slider</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 843: slider</h1>
+
+ <div role="slider" aria-valuemin="0" aria-valuenow="5" aria-valuemax="10">
+ <div>Test text content</div>
+ <label>Textbox <input type="text" value="123456789"></label>
+ <p><a href="#link">Test link</a></p>
+ <div role="button" onclick="alert('Button Pressed')">Button</div>
+ </div>
+
+
+ </body>
+
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-844.html b/testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-844.html
new file mode 100644
index 0000000000..8690b3fcca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/presentational-children/testcase-844.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 844: math</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 844: math</h1>
+
+ <div role="math" aria-label="a plus b equals c">
+ <div>Test text content</div>
+ <label>Textbox <input type="text" value="123456789"></label>
+ <p><a href="#link">Test link</a></p>
+ <div role="button" onclick="alert('Button Pressed')">Button</div>
+ </div>
+
+
+ </body>
+
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-atomic-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-atomic-false.html
new file mode 100644
index 0000000000..31452f627e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-atomic-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-atomic" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" aria-live="polite" aria-atomic="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-atomic-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-atomic-true.html
new file mode 100644
index 0000000000..499b675db8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-atomic-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-atomic" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" aria-live="polite" aria-atomic="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-atomic.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-atomic.html
new file mode 100644
index 0000000000..84faaeb86e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-atomic.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "" value of "true"</title>
+ </head>
+ <body>
+ <div aria-atomic="true">
+ Placeholder content
+
+ </div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-busy-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-busy-false.html
new file mode 100644
index 0000000000..f10c124040
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-busy-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-busy" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" aria-busy="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-busy-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-busy-true.html
new file mode 100644
index 0000000000..efd700760a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-busy-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-busy" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" aria-busy="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-controls-obj1-obj2.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-controls-obj1-obj2.html
new file mode 100644
index 0000000000..63eb41b1ce
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-controls-obj1-obj2.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-controls" value of "obj1 obj2"</title>
+ </head>
+ <body>
+ <div id="test" aria-controls="obj1 obj2">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-controls-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-controls-obj1.html
new file mode 100644
index 0000000000..8e012dd564
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-controls-obj1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-controls" value of "obj1"</title>
+ </head>
+ <body>
+ <div id="test" aria-controls="obj1">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-describedby-obj1-obj2.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-describedby-obj1-obj2.html
new file mode 100644
index 0000000000..e36e08eab1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-describedby-obj1-obj2.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-describedby" value of "obj1 obj2"</title>
+ </head>
+ <body>
+ <div id="test" aria-describedby="obj1 obj2">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-describedby-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-describedby-obj1.html
new file mode 100644
index 0000000000..317165628c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-describedby-obj1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-describedby" value of "obj1"</title>
+ </head>
+ <body>
+ <div id="test" aria-describedby="obj1">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-disabled-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-disabled-false.html
new file mode 100644
index 0000000000..dc3c8ce0ea
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-disabled-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-disabled" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" aria-disabled="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-disabled-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-disabled-true.html
new file mode 100644
index 0000000000..fd01ff2d4a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-disabled-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-disabled" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" aria-disabled="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-copy.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-copy.html
new file mode 100644
index 0000000000..4f0782bf42
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-copy.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-dropeffect" value of "copy"</title>
+ </head>
+ <body>
+ <div id="test" aria-dropeffect="copy">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-execute.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-execute.html
new file mode 100644
index 0000000000..e445c8b3f7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-execute.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-dropeffect" value of "execute"</title>
+ </head>
+ <body>
+ <div id="test" aria-dropeffect="execute">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-link.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-link.html
new file mode 100644
index 0000000000..cbbc24c0e8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-link.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-dropeffect" value of "link"</title>
+ </head>
+ <body>
+ <div id="test" aria-dropeffect="link">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-move.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-move.html
new file mode 100644
index 0000000000..55bfe810f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-move.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-dropeffect" value of "move"</title>
+ </head>
+ <body>
+ <div id="test" aria-dropeffect="move">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-none.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-none.html
new file mode 100644
index 0000000000..05ccc7aa55
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-none.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-dropeffect" value of "none"</title>
+ </head>
+ <body>
+ <div id="test" aria-dropeffect="none">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-popup.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-popup.html
new file mode 100644
index 0000000000..dd5045e45d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-dropeffect-popup.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-dropeffect" value of "popup"</title>
+ </head>
+ <body>
+ <div id="test" aria-dropeffect="popup">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-flowto-obj1-obj2.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-flowto-obj1-obj2.html
new file mode 100644
index 0000000000..0efca8bdca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-flowto-obj1-obj2.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-flowto" value of "obj1 obj2"</title>
+ </head>
+ <body>
+ <div id="test" aria-flowto="obj1 obj2">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-flowto-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-flowto-obj1.html
new file mode 100644
index 0000000000..d60135c3f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-flowto-obj1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-flowto" value of "obj1"</title>
+ </head>
+ <body>
+ <div id="test" aria-flowto="obj1">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-grabbed-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-grabbed-false.html
new file mode 100644
index 0000000000..c3e422266d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-grabbed-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-grabbed" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" aria-grabbed="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-grabbed-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-grabbed-true.html
new file mode 100644
index 0000000000..ab42aa1001
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-grabbed-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-grabbed" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" aria-grabbed="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-grabbed-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-grabbed-undefined.html
new file mode 100644
index 0000000000..91626fe957
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-grabbed-undefined.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-grabbed" value of "undefined"</title>
+ </head>
+ <body>
+ <div id="test" aria-grabbed="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-haspopup-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-haspopup-false.html
new file mode 100644
index 0000000000..125b43ba3b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-haspopup-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-haspopup" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" aria-haspopup="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-haspopup-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-haspopup-true.html
new file mode 100644
index 0000000000..735c64e7a3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-haspopup-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-haspopup" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" aria-haspopup="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-hidden-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-hidden-false.html
new file mode 100644
index 0000000000..185bb60114
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-hidden-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-hidden" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" aria-hidden="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-hidden-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-hidden-true.html
new file mode 100644
index 0000000000..fb3b6179f7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-hidden-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-hidden" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" aria-hidden="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-invalid-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-invalid-false.html
new file mode 100644
index 0000000000..6293d2324e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-invalid-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-invalid" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" aria-invalid="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-invalid-grammar.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-invalid-grammar.html
new file mode 100644
index 0000000000..f71287c17d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-invalid-grammar.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-invalid" value of "grammar"</title>
+ </head>
+ <body>
+ <div id="test" aria-invalid="grammar">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-invalid-spelling.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-invalid-spelling.html
new file mode 100644
index 0000000000..b09c6d147e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-invalid-spelling.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-invalid" value of "spelling"</title>
+ </head>
+ <body>
+ <div id="test" aria-invalid="spelling">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-invalid-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-invalid-true.html
new file mode 100644
index 0000000000..ad255df243
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-invalid-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-invalid" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" aria-invalid="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-label-Test-string-value-haswarn.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-label-Test-string-value-haswarn.html
new file mode 100644
index 0000000000..3b6b442d48
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-label-Test-string-value-haswarn.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-label" value of "Test string value"</title>
+ </head>
+ <body>
+ <div id="test" aria-label="Test string value">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-labelledby-obj1-obj2.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-labelledby-obj1-obj2.html
new file mode 100644
index 0000000000..1c45b0c2b7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-labelledby-obj1-obj2.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-labelledby" value of "obj1 obj2"</title>
+ </head>
+ <body>
+ <div id="test" aria-labelledby="obj1 obj2">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-labelledby-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-labelledby-obj1.html
new file mode 100644
index 0000000000..2a863ca953
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-labelledby-obj1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-labelledby" value of "obj1"</title>
+ </head>
+ <body>
+ <div id="test" aria-labelledby="obj1">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-live-assertive.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-live-assertive.html
new file mode 100644
index 0000000000..b977bd4c4d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-live-assertive.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-live" value of "assertive"</title>
+ </head>
+ <body>
+ <div id="test" aria-live="assertive">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-live-off.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-live-off.html
new file mode 100644
index 0000000000..b8cbf15ad2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-live-off.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-live" value of "off"</title>
+ </head>
+ <body>
+ <div id="test" aria-live="off">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-live-polite.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-live-polite.html
new file mode 100644
index 0000000000..d250f7b530
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-live-polite.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-live" value of "polite"</title>
+ </head>
+ <body>
+ <div id="test" aria-live="polite">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-owns-obj1-obj2.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-owns-obj1-obj2.html
new file mode 100644
index 0000000000..784e02b353
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-owns-obj1-obj2.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-owns" value of "obj1 obj2"</title>
+ </head>
+ <body>
+ <div id="test" aria-owns="obj1 obj2">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-owns-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-owns-obj1.html
new file mode 100644
index 0000000000..d44ce0b38f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-owns-obj1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-owns" value of "obj1"</title>
+ </head>
+ <body>
+ <div id="test" aria-owns="obj1">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-additions-text.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-additions-text.html
new file mode 100644
index 0000000000..12b17be1e9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-additions-text.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-relevant" value of "additions text"</title>
+ </head>
+ <body>
+ <div id="test" aria-live="polite" aria-relevant="additions text">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-additions.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-additions.html
new file mode 100644
index 0000000000..c8329d95ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-additions.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-relevant" value of "additions"</title>
+ </head>
+ <body>
+ <div id="test" aria-live="polite" aria-relevant="additions">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-all.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-all.html
new file mode 100644
index 0000000000..574aa18281
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-all.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-relevant" value of "all"</title>
+ </head>
+ <body>
+ <div id="test" aria-live="polite" aria-relevant="all">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-removals.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-removals.html
new file mode 100644
index 0000000000..3dc0b12fe9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-removals.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-relevant" value of "removals"</title>
+ </head>
+ <body>
+ <div id="test" aria-live="polite" aria-relevant="removals">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-text.html b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-text.html
new file mode 100644
index 0000000000..a8957f1f7c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/properties-global-norole/properties-global-norole-aria-relevant-text.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with no role; global state or property "aria-relevant" value of "text"</title>
+ </head>
+ <body>
+ <div id="test" aria-live="polite" aria-relevant="text">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/relevant-state/591.html b/testing/web-platform/tests/conformance-checkers/html-aria/relevant-state/591.html
new file mode 100644
index 0000000000..f7044aa07f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/relevant-state/591.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Element with role main having global state or property aria-relevant with value "additions removals".</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-relevant='additions removals'>Role main with aria-relevant='additions removals'</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/relevant-state/592.html b/testing/web-platform/tests/conformance-checkers/html-aria/relevant-state/592.html
new file mode 100644
index 0000000000..10bafce609
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/relevant-state/592.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Element with role main having global state or property aria-relevant with value "removals text".</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-relevant='removals text'>Role main with aria-relevant='removals text'</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/relevant-state/593.html b/testing/web-platform/tests/conformance-checkers/html-aria/relevant-state/593.html
new file mode 100644
index 0000000000..e3bb27321a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/relevant-state/593.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Element with role main having global state or property aria-relevant with value "additions removals text".</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-relevant='additions removals text'>Role main with aria-relevant='additions removals text'</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-alert.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-alert.html
new file mode 100644
index 0000000000..733dbfd81d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-alert.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "alert" and no states or properties</title>
+ </head>
+ <body>
+ <div role="alert" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-alertdialog.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-alertdialog.html
new file mode 100644
index 0000000000..88941fea2f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-alertdialog.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "alertdialog" and no states or properties</title>
+ </head>
+ <body>
+ <div role="alertdialog" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-application.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-application.html
new file mode 100644
index 0000000000..6eea2d0c03
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-application.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "application" and no states or properties</title>
+ </head>
+ <body>
+ <div role="application" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-article.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-article.html
new file mode 100644
index 0000000000..c8d99c590e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-article.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "article" and no states or properties</title>
+ </head>
+ <body>
+ <div role="article" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-banner.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-banner.html
new file mode 100644
index 0000000000..f9a8c06e88
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-banner.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "banner" and no states or properties</title>
+ </head>
+ <body>
+ <div role="banner" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-button.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-button.html
new file mode 100644
index 0000000000..f6edccdf13
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-button.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "button" and no states or properties</title>
+ </head>
+ <body>
+ <div role="button" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-complementary.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-complementary.html
new file mode 100644
index 0000000000..86a3325532
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-complementary.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "complementary" and no states or properties</title>
+ </head>
+ <body>
+ <div role="complementary" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-contentinfo.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-contentinfo.html
new file mode 100644
index 0000000000..89d579eb05
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-contentinfo.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "contentinfo" and no states or properties</title>
+ </head>
+ <body>
+ <div role="contentinfo" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-definition.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-definition.html
new file mode 100644
index 0000000000..5bdf02c9c5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-definition.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "definition" and no states or properties</title>
+ </head>
+ <body>
+ <div role="definition" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-dialog.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-dialog.html
new file mode 100644
index 0000000000..59ac2084c6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-dialog.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "dialog" and no states or properties</title>
+ </head>
+ <body>
+ <div role="dialog" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-directory.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-directory.html
new file mode 100644
index 0000000000..17ca3b6694
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-directory.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "directory" and no states or properties</title>
+ </head>
+ <body>
+ <div role="directory" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-document.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-document.html
new file mode 100644
index 0000000000..a5bc88c614
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-document.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "document" and no states or properties</title>
+ </head>
+ <body>
+ <div role="document" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-form.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-form.html
new file mode 100644
index 0000000000..2ca7e72deb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-form.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "form" and no states or properties</title>
+ </head>
+ <body>
+ <div role="form" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-grid.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-grid.html
new file mode 100644
index 0000000000..3ed0c84a83
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-grid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "grid" and no states or properties</title>
+ </head>
+ <body>
+ <div role="grid" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-group.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-group.html
new file mode 100644
index 0000000000..bcd135f68e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-group.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "group" and no states or properties</title>
+ </head>
+ <body>
+ <div role="group" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-heading.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-heading.html
new file mode 100644
index 0000000000..db54490058
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-heading.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "heading" and no states or properties</title>
+ </head>
+ <body>
+ <div role="heading" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-img.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-img.html
new file mode 100644
index 0000000000..a1f9276336
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-img.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "img" and no states or properties</title>
+ </head>
+ <body>
+ <div role="img" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-link.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-link.html
new file mode 100644
index 0000000000..5b17724ee4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-link.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "link" and no states or properties</title>
+ </head>
+ <body>
+ <div role="link" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-list.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-list.html
new file mode 100644
index 0000000000..72ffee9eff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-list.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "list" and no states or properties</title>
+ </head>
+ <body>
+ <div role="list" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-listbox-parent-combobox.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-listbox-parent-combobox.html
new file mode 100644
index 0000000000..43e137fe57
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-listbox-parent-combobox.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>An element with id=test and role=listbox, which is owned by a combobox</title>
+ <style>
+ ul#test {
+ list-style-type: none;
+ width: 5em;
+ height: 3em;
+ border: 1px solid black;
+ margin-top: 0;
+ margin-left: 1em;
+ }
+
+ ul#test > li {
+ margin-left: -10em;
+ }
+ </style>
+ </head>
+ <body>
+ <p>An element with <code>id=test</code> and <code>role=listbox</code>, which is owned by a <code>combobox</code>:</p>
+ <input type="text"
+ aria-label="Comobox that owns zebra-zoom listbox"
+ role="combobox"
+ aria-expanded="true"
+ aria-owns="test"
+ aria-autocomplete="none"
+ aria-activedescendant="selected_option">
+ <ul role="listbox" id="test">
+ <li role="option">Zebra</li>
+ <li role="option" id="selected_option">Zoom</li>
+ </ul>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-listbox.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-listbox.html
new file mode 100644
index 0000000000..ff7d32166a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-listbox.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "listbox" and no states or properties</title>
+ </head>
+ <body>
+ <div role="listbox" id="test">
+ <div role="option">Placeholder content</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-log.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-log.html
new file mode 100644
index 0000000000..1a53592804
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-log.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "log" and no states or properties</title>
+ </head>
+ <body>
+ <div role="log" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-main.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-main.html
new file mode 100644
index 0000000000..1f66605023
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-main.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "main" and no states or properties</title>
+ </head>
+ <body>
+ <div role="main" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-marquee.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-marquee.html
new file mode 100644
index 0000000000..05986754b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-marquee.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "marquee" and no states or properties</title>
+ </head>
+ <body>
+ <div role="marquee" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-math.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-math.html
new file mode 100644
index 0000000000..66f7571d1a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-math.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "math" and no states or properties</title>
+ </head>
+ <body>
+ <div role="math" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-menu.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-menu.html
new file mode 100644
index 0000000000..63c3375aae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-menu.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "menu" and no states or properties</title>
+ </head>
+ <body>
+ <div role="menu" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-menubar.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-menubar.html
new file mode 100644
index 0000000000..5e9b6a1a3d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-menubar.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "menubar" and no states or properties</title>
+ </head>
+ <body>
+ <div role="menubar" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-navigation.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-navigation.html
new file mode 100644
index 0000000000..1a0cc38ef6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-navigation.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "navigation" and no states or properties</title>
+ </head>
+ <body>
+ <div role="navigation" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-note.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-note.html
new file mode 100644
index 0000000000..6fd8bb80b7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-note.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "note" and no states or properties</title>
+ </head>
+ <body>
+ <div role="note" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-option.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-option.html
new file mode 100644
index 0000000000..1a44d86561
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-option.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "option" and no states or properties</title>
+ </head>
+ <body>
+ <div role="listbox">
+ <div role="option" id="test">Placeholder content</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-presentation.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-presentation.html
new file mode 100644
index 0000000000..0ebd3cdb81
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-presentation.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "presentation" and no states or properties</title>
+ </head>
+ <body>
+ <div role="presentation" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-progressbar.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-progressbar.html
new file mode 100644
index 0000000000..cbfdef5097
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-progressbar.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "progressbar" and no states or properties</title>
+ </head>
+ <body>
+ <div role="progressbar" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-radiogroup.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-radiogroup.html
new file mode 100644
index 0000000000..a4caff06f7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-radiogroup.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "radiogroup" and no states or properties</title>
+ </head>
+ <body>
+ <div role="radiogroup" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-region.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-region.html
new file mode 100644
index 0000000000..29929c149b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-region.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "region" and no states or properties</title>
+ </head>
+ <body>
+ <div role="region" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-rowheader.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-rowheader.html
new file mode 100644
index 0000000000..9a1bba18ee
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-rowheader.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "rowheader" and no states or properties</title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <div role="rowheader" id="test">Placeholder content</div>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-search.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-search.html
new file mode 100644
index 0000000000..160cec84b7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-search.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "search" and no states or properties</title>
+ </head>
+ <body>
+ <div role="search" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-separator.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-separator.html
new file mode 100644
index 0000000000..d8d8352876
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-separator.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "separator" and no states or properties</title>
+ </head>
+ <body>
+ <div role="separator" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-status.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-status.html
new file mode 100644
index 0000000000..9e41384935
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-status.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "status" and no states or properties</title>
+ </head>
+ <body>
+ <div role="status" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-tablist.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-tablist.html
new file mode 100644
index 0000000000..211eda8154
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-tablist.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "tablist" and no states or properties</title>
+ </head>
+ <body>
+ <div role="tablist" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-tabpanel.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-tabpanel.html
new file mode 100644
index 0000000000..3884f39422
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-tabpanel.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "tabpanel" and no states or properties</title>
+ </head>
+ <body>
+ <div role="tabpanel" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-textbox.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-textbox.html
new file mode 100644
index 0000000000..fcfe673fb5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-textbox.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "textbox" and no states or properties</title>
+ </head>
+ <body>
+ <div role="textbox" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-timer.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-timer.html
new file mode 100644
index 0000000000..af15207e0c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-timer.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "timer" and no states or properties</title>
+ </head>
+ <body>
+ <div role="timer" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-toolbar.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-toolbar.html
new file mode 100644
index 0000000000..8324070282
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-toolbar.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "toolbar" and no states or properties</title>
+ </head>
+ <body>
+ <div role="toolbar" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-tooltip.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-tooltip.html
new file mode 100644
index 0000000000..299346439b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-tooltip.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "tooltip" and no states or properties</title>
+ </head>
+ <body>
+ <div role="tooltip" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-tree.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-tree.html
new file mode 100644
index 0000000000..a194de5a29
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-tree.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "tree" and no states or properties</title>
+ </head>
+ <body>
+ <div role="tree" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-treegrid.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-treegrid.html
new file mode 100644
index 0000000000..25b242627c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-plain-concrete/roles-plain-concrete-treegrid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Plain &lt;div&gt; with role "treegrid" and no states or properties</title>
+ </head>
+ <body>
+ <div role="treegrid" id="test">Placeholder content</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-atomic-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-atomic-false.html
new file mode 100644
index 0000000000..a2c0b72621
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-atomic-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-atomic" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-live="polite" aria-atomic="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-atomic-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-atomic-true.html
new file mode 100644
index 0000000000..53f5b6d805
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-atomic-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-atomic" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-live="polite" aria-atomic="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-busy-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-busy-false.html
new file mode 100644
index 0000000000..59b1eaed13
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-busy-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-busy" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-busy="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-busy-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-busy-true.html
new file mode 100644
index 0000000000..f6d8f54992
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-busy-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-busy" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-busy="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-controls-obj1-obj2.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-controls-obj1-obj2.html
new file mode 100644
index 0000000000..5d095774a1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-controls-obj1-obj2.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-controls" value of "obj1 obj2"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-controls="obj1 obj2">Placeholder content</div>
+ <div id="obj1" role="navigation">obj1</div>
+ <div id="obj2" role="contentinfo">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-controls-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-controls-obj1.html
new file mode 100644
index 0000000000..56db460384
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-controls-obj1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-controls" value of "obj1"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-controls="obj1">Placeholder content</div>
+ <div id="obj1" role="navigation">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-describedby-obj1-obj2.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-describedby-obj1-obj2.html
new file mode 100644
index 0000000000..55369c9520
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-describedby-obj1-obj2.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-describedby" value of "obj1 obj2"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-describedby="obj1 obj2">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-describedby-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-describedby-obj1.html
new file mode 100644
index 0000000000..bb3c294f7f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-describedby-obj1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-describedby" value of "obj1"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-describedby="obj1">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-disabled-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-disabled-false.html
new file mode 100644
index 0000000000..90de02c084
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-disabled-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-disabled" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-disabled="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-disabled-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-disabled-true.html
new file mode 100644
index 0000000000..336975f51d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-disabled-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-disabled" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-disabled="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-copy.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-copy.html
new file mode 100644
index 0000000000..4653a0a8fd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-copy.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-dropeffect" value of "copy"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-dropeffect="copy">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-execute.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-execute.html
new file mode 100644
index 0000000000..5475274455
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-execute.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-dropeffect" value of "execute"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-dropeffect="execute">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-link.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-link.html
new file mode 100644
index 0000000000..b592f1e1ea
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-link.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-dropeffect" value of "link"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-dropeffect="link">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-move.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-move.html
new file mode 100644
index 0000000000..a7caad7709
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-move.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-dropeffect" value of "move"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-dropeffect="move">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-none.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-none.html
new file mode 100644
index 0000000000..86c73586e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-none.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-dropeffect" value of "none"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-dropeffect="none">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-popup.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-popup.html
new file mode 100644
index 0000000000..23c5f5c3df
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-dropeffect-popup.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-dropeffect" value of "popup"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-dropeffect="popup">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-flowto-obj1-obj2.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-flowto-obj1-obj2.html
new file mode 100644
index 0000000000..3c72e0c5da
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-flowto-obj1-obj2.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-flowto" value of "obj1 obj2"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-flowto="obj1 obj2">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-flowto-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-flowto-obj1.html
new file mode 100644
index 0000000000..92747023e9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-flowto-obj1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-flowto" value of "obj1"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-flowto="obj1">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-grabbed-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-grabbed-false.html
new file mode 100644
index 0000000000..b44f026ff3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-grabbed-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-grabbed" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-grabbed="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-grabbed-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-grabbed-true.html
new file mode 100644
index 0000000000..fef9fcad8b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-grabbed-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-grabbed" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-grabbed="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-grabbed-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-grabbed-undefined.html
new file mode 100644
index 0000000000..fbe3f69cb2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-grabbed-undefined.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-grabbed" value of "undefined"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-grabbed="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-haspopup-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-haspopup-false.html
new file mode 100644
index 0000000000..b25ab99214
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-haspopup-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-haspopup" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-haspopup="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-haspopup-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-haspopup-true.html
new file mode 100644
index 0000000000..c3d6e6af3e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-haspopup-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-haspopup" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-haspopup="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-hidden-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-hidden-false.html
new file mode 100644
index 0000000000..fe96171ccc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-hidden-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-hidden" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-hidden="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-hidden-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-hidden-true.html
new file mode 100644
index 0000000000..976cfcc520
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-hidden-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-hidden" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-hidden="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-invalid-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-invalid-false.html
new file mode 100644
index 0000000000..ad14b3339b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-invalid-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-invalid" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-invalid="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-invalid-grammar.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-invalid-grammar.html
new file mode 100644
index 0000000000..cea7b01aed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-invalid-grammar.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-invalid" value of "grammar"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-invalid="grammar">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-invalid-spelling.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-invalid-spelling.html
new file mode 100644
index 0000000000..7ce8947581
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-invalid-spelling.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-invalid" value of "spelling"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-invalid="spelling">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-invalid-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-invalid-true.html
new file mode 100644
index 0000000000..8dc3c233ff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-invalid-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-invalid" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-invalid="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-label-Test-string-value.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-label-Test-string-value.html
new file mode 100644
index 0000000000..dc0c036d20
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-label-Test-string-value.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-label" value of "Test string
+ value"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-label="Test string value">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-labelledby-obj1-obj2.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-labelledby-obj1-obj2.html
new file mode 100644
index 0000000000..36ee9dcd5a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-labelledby-obj1-obj2.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-labelledby" value of "obj1 obj2"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-labelledby="obj1 obj2">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-labelledby-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-labelledby-obj1.html
new file mode 100644
index 0000000000..dbcc750638
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-labelledby-obj1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-labelledby" value of "obj1"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-labelledby="obj1">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-live-assertive.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-live-assertive.html
new file mode 100644
index 0000000000..05f2f3fe87
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-live-assertive.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-live" value of "assertive"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-live="assertive">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-live-off.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-live-off.html
new file mode 100644
index 0000000000..1ff8ac31c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-live-off.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-live" value of "off"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-live="off">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-live-polite.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-live-polite.html
new file mode 100644
index 0000000000..829bf79069
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-live-polite.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-live" value of "polite"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-live="polite">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-owns-obj1-obj2.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-owns-obj1-obj2.html
new file mode 100644
index 0000000000..2276906bff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-owns-obj1-obj2.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-owns" value of "obj1 obj2"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-owns="obj1 obj2">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-owns-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-owns-obj1.html
new file mode 100644
index 0000000000..ebb95c433d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-owns-obj1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-owns" value of "obj1"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-owns="obj1">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-additions-text.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-additions-text.html
new file mode 100644
index 0000000000..be51d2872e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-additions-text.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-relevant" value of "additions
+ text"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-relevant="additions text">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-additions.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-additions.html
new file mode 100644
index 0000000000..59ae86e4ff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-additions.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-relevant" value of "additions"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-relevant="additions">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-all.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-all.html
new file mode 100644
index 0000000000..d87c522953
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-all.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-relevant" value of "all"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-relevant="all">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-removals.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-removals.html
new file mode 100644
index 0000000000..791a6b2e8e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-removals.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-relevant" value of "removals"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-relevant="removals">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-text.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-text.html
new file mode 100644
index 0000000000..03cabb3fbb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-global/roles-properties-global-main-aria-relevant-text.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; global state or property "aria-relevant" value of "text"</title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-relevant="text">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/menuitemcheckbox-aria-checked-mixed.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/menuitemcheckbox-aria-checked-mixed.html
new file mode 100644
index 0000000000..837739e7ab
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/menuitemcheckbox-aria-checked-mixed.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role menuitemcheckbox; inherited required state or property "aria-checked"
+ value of "mixed"
+ </title>
+ </head>
+ <body>
+ <div role="menu">
+ <div id="test" role="menuitemcheckbox" aria-checked="mixed">Placeholder content</div>
+ </div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/menuitemcheckbox-aria-checked-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/menuitemcheckbox-aria-checked-undefined.html
new file mode 100644
index 0000000000..75f3f087f1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/menuitemcheckbox-aria-checked-undefined.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role menuitemcheckbox; inherited required state or property "aria-checked"
+ value of "undefined"
+ </title>
+ </head>
+ <body>
+ <div role="menu">
+ <div id="test" role="menuitemcheckbox" aria-checked="undefined">Placeholder content</div>
+ </div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/radio-aria-checked-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/radio-aria-checked-false.html
new file mode 100644
index 0000000000..72d48e77cf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/radio-aria-checked-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role radio; inherited required state or property "aria-checked" value of
+ "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="radio" aria-checked="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/radio-aria-checked-mixed.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/radio-aria-checked-mixed.html
new file mode 100644
index 0000000000..1959329322
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/radio-aria-checked-mixed.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role radio; inherited required state or property "aria-checked" value of
+ "mixed"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="radio" aria-checked="mixed">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/radio-aria-checked-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/radio-aria-checked-true.html
new file mode 100644
index 0000000000..81571b60c5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/radio-aria-checked-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role radio; inherited required state or property "aria-checked" value of
+ "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="radio" aria-checked="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/radio-aria-checked-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/radio-aria-checked-undefined.html
new file mode 100644
index 0000000000..95a1ca7a27
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required-inherited/radio-aria-checked-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role radio; inherited required state or property "aria-checked" value of
+ "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="radio" aria-checked="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-checkbox-aria-checked-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-checkbox-aria-checked-false.html
new file mode 100644
index 0000000000..21e7b0366a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-checkbox-aria-checked-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role checkbox; required state or property "aria-checked" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="checkbox" aria-checked="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-checkbox-aria-checked-mixed.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-checkbox-aria-checked-mixed.html
new file mode 100644
index 0000000000..09200351ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-checkbox-aria-checked-mixed.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role checkbox; required state or property "aria-checked" value of "mixed"</title>
+ </head>
+ <body>
+ <div id="test" role="checkbox" aria-checked="mixed">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-checkbox-aria-checked-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-checkbox-aria-checked-true.html
new file mode 100644
index 0000000000..295d992b10
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-checkbox-aria-checked-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role checkbox; required state or property "aria-checked" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="checkbox" aria-checked="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-checkbox-aria-checked-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-checkbox-aria-checked-undefined.html
new file mode 100644
index 0000000000..250454f822
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-checkbox-aria-checked-undefined.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role checkbox; required state or property "aria-checked" value of "undefined"</title>
+ </head>
+ <body>
+ <div id="test" tabindex="0" role="checkbox" aria-checked="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-combobox-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-combobox-aria-expanded-false.html
new file mode 100644
index 0000000000..751747aec5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-combobox-aria-expanded-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role combobox; required state or property "aria-expanded" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="combobox" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-combobox-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-combobox-aria-expanded-true.html
new file mode 100644
index 0000000000..46cd8e5061
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-combobox-aria-expanded-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role combobox; required state or property "aria-expanded" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="combobox" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-combobox-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-combobox-aria-expanded-undefined.html
new file mode 100644
index 0000000000..58ea1d313c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-required/roles-properties-required-combobox-aria-expanded-undefined.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role combobox; required state or property "aria-expanded" value of "undefined"</title>
+ </head>
+ <body>
+ <div id="test" role="combobox" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alert-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alert-aria-expanded-false.html
new file mode 100644
index 0000000000..ac960fdbf6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alert-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role alert; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="alert" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alert-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alert-aria-expanded-true.html
new file mode 100644
index 0000000000..1b9c610fcc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alert-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role alert; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="alert" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alert-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alert-aria-expanded-undefined.html
new file mode 100644
index 0000000000..d6f9d8d793
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alert-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role alert; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="alert" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alertdialog-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alertdialog-aria-expanded-false.html
new file mode 100644
index 0000000000..d879970645
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alertdialog-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role alertdialog; inherited supported state or property "aria-expanded"
+ value of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="alertdialog" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alertdialog-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alertdialog-aria-expanded-true.html
new file mode 100644
index 0000000000..71f7c1b48b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alertdialog-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role alertdialog; inherited supported state or property "aria-expanded"
+ value of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="alertdialog" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alertdialog-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alertdialog-aria-expanded-undefined.html
new file mode 100644
index 0000000000..048ac59a78
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/alertdialog-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role alertdialog; inherited supported state or property "aria-expanded"
+ value of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="alertdialog" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/application-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/application-aria-expanded-false.html
new file mode 100644
index 0000000000..8b12de5aab
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/application-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role application; inherited supported state or property "aria-expanded"
+ value of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="application" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/application-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/application-aria-expanded-true.html
new file mode 100644
index 0000000000..0b7a2545f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/application-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role application; inherited supported state or property "aria-expanded"
+ value of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="application" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/application-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/application-aria-expanded-undefined.html
new file mode 100644
index 0000000000..04c44727dc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/application-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role application; inherited supported state or property "aria-expanded"
+ value of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="application" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/article-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/article-aria-expanded-false.html
new file mode 100644
index 0000000000..6de04bcc87
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/article-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role article; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="article" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/article-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/article-aria-expanded-true.html
new file mode 100644
index 0000000000..bf6bea8265
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/article-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role article; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="article" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/article-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/article-aria-expanded-undefined.html
new file mode 100644
index 0000000000..804330711c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/article-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role article; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="article" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/banner-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/banner-aria-expanded-false.html
new file mode 100644
index 0000000000..ddb241c484
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/banner-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role banner; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="banner" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/banner-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/banner-aria-expanded-true.html
new file mode 100644
index 0000000000..433e68b2e6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/banner-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role banner; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="banner" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/banner-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/banner-aria-expanded-undefined.html
new file mode 100644
index 0000000000..ed7605d79c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/banner-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role banner; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="banner" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-expanded-false.html
new file mode 100644
index 0000000000..4376474659
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-expanded-false.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role columnheader; inherited supported state or property "aria-expanded"
+ value of "false"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="columnheader" aria-expanded="false">Placeholder content</span>
+ <span role="columnheader">header 2</span>
+ <span role="columnheader">header 3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-expanded-true.html
new file mode 100644
index 0000000000..521b93520e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-expanded-true.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role columnheader; inherited supported state or property "aria-expanded"
+ value of "true"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="columnheader" aria-expanded="true">Placeholder content</span>
+ <span role="columnheader">header 2</span>
+ <span role="columnheader">header 3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-expanded-undefined.html
new file mode 100644
index 0000000000..295c4eb5f7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-expanded-undefined.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role columnheader; inherited supported state or property "aria-expanded"
+ value of "undefined"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="columnheader" aria-expanded="undefined">Placeholder content</span>
+ <span role="columnheader">header 2</span>
+ <span role="columnheader">header 3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-readonly-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-readonly-false.html
new file mode 100644
index 0000000000..6c32d6ae54
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-readonly-false.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role columnheader; inherited supported state or property "aria-readonly"
+ value of "false"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="columnheader" aria-readonly="false">Placeholder content</span>
+ <span role="columnheader">header 2</span>
+ <span role="columnheader">header 3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-readonly-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-readonly-true.html
new file mode 100644
index 0000000000..6ce21d3137
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-readonly-true.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role columnheader; inherited supported state or property "aria-readonly"
+ value of "true"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="columnheader" aria-readonly="true">Placeholder content</span>
+ <span role="columnheader">header 2</span>
+ <span role="columnheader">header 3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-required-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-required-false.html
new file mode 100644
index 0000000000..8c8065963b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-required-false.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role columnheader; inherited supported state or property "aria-required"
+ value of "false"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="columnheader" aria-required="false">Placeholder content</span>
+ <span role="columnheader">header 2</span>
+ <span role="columnheader">header 3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-required-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-required-true.html
new file mode 100644
index 0000000000..644b2756d4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-required-true.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role columnheader; inherited supported state or property "aria-required"
+ value of "true"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="columnheader" aria-required="true">Placeholder content</span>
+ <span role="columnheader">header 2</span>
+ <span role="columnheader">header 3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-selected-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-selected-false.html
new file mode 100644
index 0000000000..7a4ab45b10
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-selected-false.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role columnheader; inherited supported state or property "aria-selected"
+ value of "false"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="columnheader" aria-selected="false">Placeholder content</span>
+ <span role="columnheader">header 2</span>
+ <span role="columnheader">header 3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-selected-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-selected-true.html
new file mode 100644
index 0000000000..a16d514810
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-selected-true.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role columnheader; inherited supported state or property "aria-selected"
+ value of "true"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="columnheader" aria-selected="true">Placeholder content</span>
+ <span role="columnheader">header 2</span>
+ <span role="columnheader">header 3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-selected-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-selected-undefined.html
new file mode 100644
index 0000000000..4416bd662f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/columnheader-aria-selected-undefined.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role columnheader; inherited supported state or property "aria-selected"
+ value of "undefined"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="columnheader" aria-selected="undefined">Placeholder content</span>
+ <span role="columnheader">header 2</span>
+ <span role="columnheader">header 3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/combobox-aria-activedescendant-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/combobox-aria-activedescendant-obj1.html
new file mode 100644
index 0000000000..4e8e3fd583
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/combobox-aria-activedescendant-obj1.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role combobox; inherited supported state or property "aria-activedescendant"
+ value of "obj1"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="combobox" aria-haspopup="true" aria-expanded="true" aria-activedescendant="obj1" tabindex="0">
+ <div role="textbox"></div>
+ <div role="listbox">
+ <div id="obj1" role="option">obj1</div>
+ <div id="obj2" role="option">obj2</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/combobox-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/combobox-aria-expanded-false.html
new file mode 100644
index 0000000000..76943aefa9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/combobox-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role combobox; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="combobox" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/combobox-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/combobox-aria-expanded-true.html
new file mode 100644
index 0000000000..7d29edd7a3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/combobox-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role combobox; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="combobox" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/combobox-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/combobox-aria-expanded-undefined.html
new file mode 100644
index 0000000000..46b28ef3a3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/combobox-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role combobox; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="combobox" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/complementary-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/complementary-aria-expanded-false.html
new file mode 100644
index 0000000000..ae3dcf35f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/complementary-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role complementary; inherited supported state or property "aria-expanded"
+ value of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="complementary" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/complementary-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/complementary-aria-expanded-true.html
new file mode 100644
index 0000000000..d3b0d83b3e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/complementary-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role complementary; inherited supported state or property "aria-expanded"
+ value of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="complementary" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/complementary-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/complementary-aria-expanded-undefined.html
new file mode 100644
index 0000000000..a7952c2543
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/complementary-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role complementary; inherited supported state or property "aria-expanded"
+ value of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="complementary" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/contentinfo-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/contentinfo-aria-expanded-false.html
new file mode 100644
index 0000000000..de995a9225
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/contentinfo-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role contentinfo; inherited supported state or property "aria-expanded"
+ value of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="contentinfo" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/contentinfo-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/contentinfo-aria-expanded-true.html
new file mode 100644
index 0000000000..846f729573
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/contentinfo-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role contentinfo; inherited supported state or property "aria-expanded"
+ value of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="contentinfo" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/contentinfo-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/contentinfo-aria-expanded-undefined.html
new file mode 100644
index 0000000000..0a924c6717
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/contentinfo-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role contentinfo; inherited supported state or property "aria-expanded"
+ value of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="contentinfo" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/definition-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/definition-aria-expanded-false.html
new file mode 100644
index 0000000000..7fce65cff8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/definition-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role definition; inherited supported state or property "aria-expanded"
+ value of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="definition" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/definition-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/definition-aria-expanded-true.html
new file mode 100644
index 0000000000..b2ea2ce8ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/definition-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role definition; inherited supported state or property "aria-expanded"
+ value of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="definition" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/definition-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/definition-aria-expanded-undefined.html
new file mode 100644
index 0000000000..bae456aa73
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/definition-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role definition; inherited supported state or property "aria-expanded"
+ value of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="definition" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/dialog-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/dialog-aria-expanded-false.html
new file mode 100644
index 0000000000..e4c26f401e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/dialog-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role dialog; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="dialog" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/dialog-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/dialog-aria-expanded-true.html
new file mode 100644
index 0000000000..2095b9cd99
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/dialog-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role dialog; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="dialog" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/dialog-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/dialog-aria-expanded-undefined.html
new file mode 100644
index 0000000000..1df3702ba4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/dialog-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role dialog; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="dialog" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/directory-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/directory-aria-expanded-false.html
new file mode 100644
index 0000000000..ee8ae62340
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/directory-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role directory; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="directory" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/directory-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/directory-aria-expanded-true.html
new file mode 100644
index 0000000000..8ef8ae9fb7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/directory-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role directory; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="directory" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/directory-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/directory-aria-expanded-undefined.html
new file mode 100644
index 0000000000..4be1ec3f5f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/directory-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role directory; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="directory" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/form-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/form-aria-expanded-false.html
new file mode 100644
index 0000000000..ce533b2956
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/form-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role form; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="form" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/form-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/form-aria-expanded-true.html
new file mode 100644
index 0000000000..01d98d4a86
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/form-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role form; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="form" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/form-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/form-aria-expanded-undefined.html
new file mode 100644
index 0000000000..da9fb7bd90
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/form-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role form; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="form" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/grid-aria-activedescendant-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/grid-aria-activedescendant-obj1.html
new file mode 100644
index 0000000000..71268f39e8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/grid-aria-activedescendant-obj1.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role grid; inherited supported state or property "aria-activedescendant"
+ value of "obj1"
+ </title>
+ </head>
+ <body>
+ <div id="test" tabindex="0" role="grid" aria-activedescendant="obj1">
+ <div role="row">
+ <span role="gridcell" id="obj1">row1-cell1</span>
+ <span role="gridcell" id="obj2">row1-cell2</span>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/grid-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/grid-aria-expanded-false.html
new file mode 100644
index 0000000000..f1c958008c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/grid-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role grid; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="grid" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/grid-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/grid-aria-expanded-true.html
new file mode 100644
index 0000000000..86223ae165
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/grid-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role grid; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="grid" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/grid-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/grid-aria-expanded-undefined.html
new file mode 100644
index 0000000000..aeb3693c52
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/grid-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role grid; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="grid" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/gridcell-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/gridcell-aria-expanded-false.html
new file mode 100644
index 0000000000..f4955926f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/gridcell-aria-expanded-false.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role gridcell; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="gridcell" aria-expanded="false">Placeholder content</div>
+ <div id="obj1" role="gridcell">obj1</div>
+ <div id="obj2" role="gridcell">obj2</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/gridcell-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/gridcell-aria-expanded-undefined.html
new file mode 100644
index 0000000000..f68e043699
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/gridcell-aria-expanded-undefined.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role gridcell; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="gridcell" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1" role="gridcell" >obj1</div>
+ <div id="obj2" role="gridcell" >obj2</div>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/group-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/group-aria-expanded-false.html
new file mode 100644
index 0000000000..79a3d6a38d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/group-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role group; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="group" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/group-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/group-aria-expanded-true.html
new file mode 100644
index 0000000000..6d18a366ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/group-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role group; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="group" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/group-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/group-aria-expanded-undefined.html
new file mode 100644
index 0000000000..4a179c532a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/group-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role group; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="group" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/heading-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/heading-aria-expanded-false.html
new file mode 100644
index 0000000000..7997685154
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/heading-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role heading; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="heading" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/heading-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/heading-aria-expanded-true.html
new file mode 100644
index 0000000000..d1c9468316
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/heading-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role heading; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="heading" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/heading-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/heading-aria-expanded-undefined.html
new file mode 100644
index 0000000000..2de29fc45d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/heading-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role heading; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="heading" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/img-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/img-aria-expanded-false.html
new file mode 100644
index 0000000000..835d6bbb3b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/img-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role img; inherited supported state or property "aria-expanded" value of
+ "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="img" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/img-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/img-aria-expanded-true.html
new file mode 100644
index 0000000000..46ade1d9ba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/img-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role img; inherited supported state or property "aria-expanded" value of
+ "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="img" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/img-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/img-aria-expanded-undefined.html
new file mode 100644
index 0000000000..8d4f17be3f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/img-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role img; inherited supported state or property "aria-expanded" value of
+ "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="img" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/list-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/list-aria-expanded-false.html
new file mode 100644
index 0000000000..d510eb1564
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/list-aria-expanded-false.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role list; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="list" aria-expanded="false">Placeholder content
+ <div id="obj1" role="listitem">obj1</div>
+ </div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/list-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/list-aria-expanded-true.html
new file mode 100644
index 0000000000..37d15ab667
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/list-aria-expanded-true.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role list; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="list" aria-expanded="true">Placeholder content
+ <div id="obj1" role="listitem">obj1</div>
+ </div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/list-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/list-aria-expanded-undefined.html
new file mode 100644
index 0000000000..e1679660c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/list-aria-expanded-undefined.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role list; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="list" aria-expanded="undefined">Placeholder content
+ <div id="obj1" role="listitem">obj1</div>
+ </div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/listbox-aria-activedescendant-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/listbox-aria-activedescendant-obj1.html
new file mode 100644
index 0000000000..f28e43e6f4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/listbox-aria-activedescendant-obj1.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role listbox; inherited supported state or property "aria-activedescendant"
+ value of "obj1"
+ </title>
+ </head>
+ <body>
+ <div id="test" tabindex="0" role="listbox" aria-activedescendant="obj1">
+ <div id="obj1" role="option">obj1</div>
+ <div id="obj2" role="option">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/listbox-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/listbox-aria-expanded-false.html
new file mode 100644
index 0000000000..2bd754a3b8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/listbox-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role listbox; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="listbox" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/listbox-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/listbox-aria-expanded-true.html
new file mode 100644
index 0000000000..504c7371f9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/listbox-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role listbox; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="listbox" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/listbox-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/listbox-aria-expanded-undefined.html
new file mode 100644
index 0000000000..69055a2370
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/listbox-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role listbox; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="listbox" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/log-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/log-aria-expanded-false.html
new file mode 100644
index 0000000000..fa242c39cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/log-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role log; inherited supported state or property "aria-expanded" value of
+ "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="log" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/log-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/log-aria-expanded-true.html
new file mode 100644
index 0000000000..072291e90c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/log-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role log; inherited supported state or property "aria-expanded" value of
+ "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="log" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/log-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/log-aria-expanded-undefined.html
new file mode 100644
index 0000000000..b19c2d6d0c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/log-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role log; inherited supported state or property "aria-expanded" value of
+ "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="log" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/main-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/main-aria-expanded-false.html
new file mode 100644
index 0000000000..16cf8f109a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/main-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/main-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/main-aria-expanded-true.html
new file mode 100644
index 0000000000..d3687cb50f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/main-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/main-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/main-aria-expanded-undefined.html
new file mode 100644
index 0000000000..c08f104881
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/main-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role main; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="main" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/marquee-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/marquee-aria-expanded-false.html
new file mode 100644
index 0000000000..18d2f9ee85
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/marquee-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role marquee; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="marquee" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/marquee-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/marquee-aria-expanded-true.html
new file mode 100644
index 0000000000..aed711775e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/marquee-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role marquee; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="marquee" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/marquee-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/marquee-aria-expanded-undefined.html
new file mode 100644
index 0000000000..9a164bea71
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/marquee-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role marquee; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="marquee" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/math-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/math-aria-expanded-false.html
new file mode 100644
index 0000000000..c038fabadc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/math-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role math; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="math" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/math-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/math-aria-expanded-true.html
new file mode 100644
index 0000000000..831c095602
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/math-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role math; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="math" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/math-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/math-aria-expanded-undefined.html
new file mode 100644
index 0000000000..3bd0b7b025
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/math-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role math; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="math" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menu-aria-activedescendant-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menu-aria-activedescendant-obj1.html
new file mode 100644
index 0000000000..06e5fc7aeb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menu-aria-activedescendant-obj1.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role menu; inherited supported state or property "aria-activedescendant"
+ value of "obj1"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="menu" tabindex="0" aria-activedescendant="obj1">
+ <div id="obj1" role="menuitem">obj1</div>
+ <div id="obj2" role="menuitem">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menu-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menu-aria-expanded-false.html
new file mode 100644
index 0000000000..c96d9e2ac5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menu-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role menu; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="menu" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menu-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menu-aria-expanded-true.html
new file mode 100644
index 0000000000..14361d01c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menu-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role menu; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="menu" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menu-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menu-aria-expanded-undefined.html
new file mode 100644
index 0000000000..7a82e92b13
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menu-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role menu; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="menu" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menubar-aria-activedescendant-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menubar-aria-activedescendant-obj1.html
new file mode 100644
index 0000000000..e761a50a4b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menubar-aria-activedescendant-obj1.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role menubar; inherited supported state or property "aria-activedescendant"
+ value of "obj1"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="menubar" tabindex="0" aria-activedescendant="obj1">
+ <div id="obj1" role="menuitem">obj1</div>
+ <div id="obj2" role="menuitem">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menubar-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menubar-aria-expanded-false.html
new file mode 100644
index 0000000000..4ab7c9590c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menubar-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role menubar; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="menubar" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menubar-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menubar-aria-expanded-true.html
new file mode 100644
index 0000000000..f7b26995fa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menubar-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role menubar; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="menubar" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menubar-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menubar-aria-expanded-undefined.html
new file mode 100644
index 0000000000..431f843ba4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menubar-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role menubar; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="menubar" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menuitemradio-aria-checked-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menuitemradio-aria-checked-false.html
new file mode 100644
index 0000000000..5691a55c04
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menuitemradio-aria-checked-false.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role menuitemradio; inherited supported state or property "aria-checked"
+ value of "false"
+ </title>
+ </head>
+ <body>
+ <div role="menu">
+ <div id="test" role="menuitemradio" aria-checked="false">Placeholder content</div>
+ <div id="obj1" role="menuitemradio" aria-checked="false">obj1</div>
+ <div id="obj2" role="menuitemradio" aria-checked="false">obj2</div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menuitemradio-aria-checked-mixed.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menuitemradio-aria-checked-mixed.html
new file mode 100644
index 0000000000..d517d22a3e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menuitemradio-aria-checked-mixed.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role menuitemradio; inherited supported state or property "aria-checked"
+ value of "mixed"
+ </title>
+ </head>
+ <body>
+ <div role="menu">
+ <div id="test" tabindex="0" role="menuitemradio" aria-checked="mixed">Placeholder content</div>
+ <div id="obj1" role="menuitemradio" aria-checked="false">obj1</div>
+ <div id="obj2" role="menuitemradio" aria-checked="false">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menuitemradio-aria-checked-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menuitemradio-aria-checked-true.html
new file mode 100644
index 0000000000..0d364f8ccb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menuitemradio-aria-checked-true.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role menuitemradio; inherited supported state or property "aria-checked"
+ value of "true"
+ </title>
+ </head>
+ <body>
+ <div role="menu">
+ <div id="test" role="menuitemradio" aria-checked="true">Placeholder content</div>
+ <div id="obj1" role="menuitemradio" aria-checked="false">obj1</div>
+ <div id="obj2" role="menuitemradio" aria-checked="false">obj2</div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menuitemradio-aria-checked-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menuitemradio-aria-checked-undefined.html
new file mode 100644
index 0000000000..bb6aa7854f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/menuitemradio-aria-checked-undefined.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role menuitemradio; inherited supported state or property "aria-checked"
+ value of "undefined"
+ </title>
+ </head>
+ <body>
+ <div role="menu">
+ <div id="test" role="menuitemradio" aria-checked="undefined">Placeholder content</div>
+ <div id="obj1" role="menuitemradio" aria-checked="false">obj1</div>
+ <div id="obj2" role="menuitemradio" aria-checked="false">obj2</div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/navigation-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/navigation-aria-expanded-false.html
new file mode 100644
index 0000000000..5769da1789
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/navigation-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role navigation; inherited supported state or property "aria-expanded"
+ value of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="navigation" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/navigation-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/navigation-aria-expanded-true.html
new file mode 100644
index 0000000000..01594dc77e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/navigation-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role navigation; inherited supported state or property "aria-expanded"
+ value of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="navigation" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/navigation-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/navigation-aria-expanded-undefined.html
new file mode 100644
index 0000000000..9e6f4c630f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/navigation-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role navigation; inherited supported state or property "aria-expanded"
+ value of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="navigation" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/note-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/note-aria-expanded-false.html
new file mode 100644
index 0000000000..02065e732c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/note-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role note; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="note" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/note-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/note-aria-expanded-true.html
new file mode 100644
index 0000000000..d1e0f8c595
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/note-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role note; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="note" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/note-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/note-aria-expanded-undefined.html
new file mode 100644
index 0000000000..1e902fb253
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/note-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role note; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="note" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/progressbar-aria-valuemax-1.1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/progressbar-aria-valuemax-1.1.html
new file mode 100644
index 0000000000..2179446478
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/progressbar-aria-valuemax-1.1.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role progressbar; inherited supported state or property "aria-valuemax"
+ value of "1.1"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="progressbar" aria-valuemax="1.1">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/progressbar-aria-valuemin-1.1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/progressbar-aria-valuemin-1.1.html
new file mode 100644
index 0000000000..4fca777ec9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/progressbar-aria-valuemin-1.1.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role progressbar; inherited supported state or property "aria-valuemin"
+ value of "1.1"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="progressbar" aria-valuemin="1.1">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/progressbar-aria-valuenow-1.1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/progressbar-aria-valuenow-1.1.html
new file mode 100644
index 0000000000..751d47ee33
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/progressbar-aria-valuenow-1.1.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role progressbar; inherited supported state or property "aria-valuenow"
+ value of "1.1"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="progressbar" aria-valuenow="1.1">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/progressbar-aria-valuetext-Test-string-value.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/progressbar-aria-valuetext-Test-string-value.html
new file mode 100644
index 0000000000..bbd0e1fd96
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/progressbar-aria-valuetext-Test-string-value.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role progressbar; inherited supported state or property "aria-valuetext"
+ value of "Test string value"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="progressbar" aria-valuetext="Test string value">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radio-aria-checked-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radio-aria-checked-false.html
new file mode 100644
index 0000000000..b00d45c098
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radio-aria-checked-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role radio; inherited supported state or property "aria-checked" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="radio" aria-checked="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radio-aria-checked-mixed.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radio-aria-checked-mixed.html
new file mode 100644
index 0000000000..8a95837306
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radio-aria-checked-mixed.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role radio; inherited supported state or property "aria-checked" value
+ of "mixed"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="radio" aria-checked="mixed">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radio-aria-checked-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radio-aria-checked-true.html
new file mode 100644
index 0000000000..61e816268a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radio-aria-checked-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role radio; inherited supported state or property "aria-checked" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="radio" aria-checked="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radiogroup-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radiogroup-aria-expanded-false.html
new file mode 100644
index 0000000000..9d5680f32c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radiogroup-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role radiogroup; inherited supported state or property "aria-expanded"
+ value of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="radiogroup" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radiogroup-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radiogroup-aria-expanded-true.html
new file mode 100644
index 0000000000..f6f9e13797
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radiogroup-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role radiogroup; inherited supported state or property "aria-expanded"
+ value of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="radiogroup" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radiogroup-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radiogroup-aria-expanded-undefined.html
new file mode 100644
index 0000000000..0532ea592e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/radiogroup-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role radiogroup; inherited supported state or property "aria-expanded"
+ value of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="radiogroup" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/region-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/region-aria-expanded-false.html
new file mode 100644
index 0000000000..00b6052c2e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/region-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role region; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="region" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/region-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/region-aria-expanded-true.html
new file mode 100644
index 0000000000..2fdd56f4b7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/region-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role region; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="region" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/region-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/region-aria-expanded-undefined.html
new file mode 100644
index 0000000000..22bb837990
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/region-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role region; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="region" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/row-aria-activedescendant-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/row-aria-activedescendant-obj1.html
new file mode 100644
index 0000000000..a24595a104
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/row-aria-activedescendant-obj1.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role row; inherited supported state or property "aria-activedescendant"
+ value of "obj1"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div id="test" role="row" tabindex="0" aria-activedescendant="obj1">
+ <div id="obj1" role="gridcell">obj1</div>
+ <div id="obj2" role="gridcell">obj2</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowgroup-aria-activedescendant-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowgroup-aria-activedescendant-obj1.html
new file mode 100644
index 0000000000..b0ff899930
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowgroup-aria-activedescendant-obj1.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role rowgroup; inherited supported state or property "aria-activedescendant"
+ value of "obj1"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div id="test" tabindex="0" role="rowgroup" aria-activedescendant="obj1">
+ <div id="obj1" role="row">
+ <div role="gridcell">r1c1</div>
+ <div role="gridcell">r1c2</div>
+ </div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-expanded-false.html
new file mode 100644
index 0000000000..710d779f51
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-expanded-false.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role rowheader; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="rowheader" aria-expanded="false">Placeholder content</span>
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell" id="obj2">obj2</span>
+ </div>
+ <div role="row">
+ <span role="rowheader">header cell 2</span>
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-expanded-true.html
new file mode 100644
index 0000000000..ac0e55a746
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-expanded-true.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role rowheader; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="rowheader" aria-expanded="true">Placeholder content</span>
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell" id="obj2">obj2</span>
+ </div>
+ <div role="row">
+ <span role="rowheader">header cell 2</span>
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-expanded-undefined.html
new file mode 100644
index 0000000000..13d7bfc6ab
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-expanded-undefined.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role rowheader; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="rowheader" aria-expanded="undefined">Placeholder content</span>
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell" id="obj2">obj2</span>
+ </div>
+ <div role="row">
+ <span role="rowheader">header cell 2</span>
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-readonly-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-readonly-false.html
new file mode 100644
index 0000000000..009a72d766
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-readonly-false.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role rowheader; inherited supported state or property "aria-readonly" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="rowheader" aria-readonly="false">Placeholder content</span>
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell" id="obj2">obj2</span>
+ </div>
+ <div role="row">
+ <span role="rowheader">header cell 2</span>
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-readonly-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-readonly-true.html
new file mode 100644
index 0000000000..3061cc5f9e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-readonly-true.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role rowheader; inherited supported state or property "aria-readonly" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="rowheader" aria-readonly="true">Placeholder content</span>
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell" id="obj2">obj2</span>
+ </div>
+ <div role="row">
+ <span role="rowheader">header cell 2</span>
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-required-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-required-false.html
new file mode 100644
index 0000000000..cdcba5973e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-required-false.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role rowheader; inherited supported state or property "aria-required" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="rowheader" aria-required="false">Placeholder content</span>
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell" id="obj2">obj2</span>
+ </div>
+ <div role="row">
+ <span role="rowheader">header cell 2</span>
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-required-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-required-true.html
new file mode 100644
index 0000000000..7ad7b8e99a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-required-true.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role rowheader; inherited supported state or property "aria-required" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="rowheader" aria-required="true">Placeholder content</span>
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell" id="obj2">obj2</span>
+ </div>
+ <div role="row">
+ <span role="rowheader">header cell 2</span>
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-selected-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-selected-false.html
new file mode 100644
index 0000000000..17c23801d5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-selected-false.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role rowheader; inherited supported state or property "aria-selected" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="rowheader" aria-selected="false">Placeholder content</span>
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell" id="obj2">obj2</span>
+ </div>
+ <div role="row">
+ <span role="rowheader">header cell 2</span>
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-selected-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-selected-true.html
new file mode 100644
index 0000000000..03e6d47980
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-selected-true.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role rowheader; inherited supported state or property "aria-selected" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="rowheader" aria-selected="true">Placeholder content</span>
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell" id="obj2">obj2</span>
+ </div>
+ <div role="row">
+ <span role="rowheader">header cell 2</span>
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-selected-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-selected-undefined.html
new file mode 100644
index 0000000000..439abbb05a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/rowheader-aria-selected-undefined.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role rowheader; inherited supported state or property "aria-selected" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="rowheader" aria-selected="undefined" tabindex="0">Placeholder content</span>
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell" id="obj2">obj2</span>
+ </div>
+ <div role="row">
+ <span role="rowheader">header cell 2</span>
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/search-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/search-aria-expanded-false.html
new file mode 100644
index 0000000000..2bcae837fd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/search-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role search; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="search" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/search-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/search-aria-expanded-true.html
new file mode 100644
index 0000000000..16885b8d15
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/search-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role search; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="search" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/search-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/search-aria-expanded-undefined.html
new file mode 100644
index 0000000000..0e39ca5cf6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/search-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role search; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="search" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/status-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/status-aria-expanded-false.html
new file mode 100644
index 0000000000..7dcf0f9acf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/status-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role status; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="status" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/status-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/status-aria-expanded-true.html
new file mode 100644
index 0000000000..05314e41f4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/status-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role status; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="status" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/status-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/status-aria-expanded-undefined.html
new file mode 100644
index 0000000000..18ffebc08a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/status-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role status; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="status" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tab-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tab-aria-expanded-false.html
new file mode 100644
index 0000000000..c5a83f98a3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tab-aria-expanded-false.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tab; inherited supported state or property "aria-expanded" value of
+ "false"
+ </title>
+ </head>
+ <body>
+ <div role="tablist">
+ <div id="test" role="tab" aria-expanded="false">Placeholder content</div>
+ </div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tab-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tab-aria-expanded-true.html
new file mode 100644
index 0000000000..43fa4f19c8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tab-aria-expanded-true.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tab; inherited supported state or property "aria-expanded" value of
+ "true"
+ </title>
+ </head>
+ <body>
+ <div role="tablist">
+ <div id="test" role="tab" aria-expanded="true">Placeholder content</div>
+ </div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tab-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tab-aria-expanded-undefined.html
new file mode 100644
index 0000000000..abd5917a31
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tab-aria-expanded-undefined.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tab; inherited supported state or property "aria-expanded" value of
+ "undefined"
+ </title>
+ </head>
+ <body>
+ <div role="tablist">
+ <div id="test" role="tab" aria-expanded="undefined">Placeholder content</div>
+ </div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tablist-aria-activedescendant-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tablist-aria-activedescendant-obj1.html
new file mode 100644
index 0000000000..ffbe638b07
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tablist-aria-activedescendant-obj1.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tablist; inherited supported state or property "aria-activedescendant"
+ value of "obj1"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="tablist" tabindex="0" aria-activedescendant="obj1">
+ <div id="obj1" role="tab">obj1</div>
+ </div>
+
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tablist-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tablist-aria-expanded-false.html
new file mode 100644
index 0000000000..0966d5ba6e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tablist-aria-expanded-false.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tablist; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="tablist" aria-expanded="false">
+ <div id="obj1" role="tab">obj1</div>
+ </div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tablist-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tablist-aria-expanded-true.html
new file mode 100644
index 0000000000..7ae72f3a6c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tablist-aria-expanded-true.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tablist; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="tablist" aria-expanded="true">
+ <div id="obj1" role="tab">obj1</div>
+ </div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tablist-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tablist-aria-expanded-undefined.html
new file mode 100644
index 0000000000..24fb428df2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tablist-aria-expanded-undefined.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tablist; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="tablist" aria-expanded="undefined">
+ <div id="obj1" role="tab">obj1</div>
+ </div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tabpanel-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tabpanel-aria-expanded-false.html
new file mode 100644
index 0000000000..b431a4a6b5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tabpanel-aria-expanded-false.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tabpanel; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div role="tablist">
+ <div id="obj1" role="tab">obj1</div>
+ <div id="obj2" role="tab">obj2</div>
+ </div>
+ <div id="test" role="tabpanel" aria-expanded="false">Placeholder content</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tabpanel-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tabpanel-aria-expanded-true.html
new file mode 100644
index 0000000000..dd718b0e70
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tabpanel-aria-expanded-true.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tabpanel; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div role="tablist">
+ <div id="obj1" role="tab">obj1</div>
+ <div id="obj2" role="tab">obj2</div>
+ </div>
+ <div id="test" role="tabpanel" aria-expanded="true">Placeholder content</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tabpanel-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tabpanel-aria-expanded-undefined.html
new file mode 100644
index 0000000000..b87facc44a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tabpanel-aria-expanded-undefined.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tabpanel; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div role="tablist">
+ <div id="obj1" role="tab">obj1</div>
+ <div id="obj2" role="tab">obj2</div>
+ </div>
+ <div id="test" role="tabpanel" aria-expanded="undefined">Placeholder content</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/timer-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/timer-aria-expanded-false.html
new file mode 100644
index 0000000000..c0f2082082
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/timer-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role timer; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="timer" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/timer-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/timer-aria-expanded-true.html
new file mode 100644
index 0000000000..40d571748a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/timer-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role timer; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="timer" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/timer-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/timer-aria-expanded-undefined.html
new file mode 100644
index 0000000000..90260acbcd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/timer-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role timer; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="timer" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/toolbar-aria-activedescendant-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/toolbar-aria-activedescendant-obj1.html
new file mode 100644
index 0000000000..ccc0c9f848
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/toolbar-aria-activedescendant-obj1.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role toolbar; inherited supported state or property "aria-activedescendant"
+ value of "obj1"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="toolbar" tabindex="0" aria-activedescendant="obj1">
+ <div id="obj1" role="button">obj1</div>
+ <div id="obj2" role="button">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/toolbar-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/toolbar-aria-expanded-false.html
new file mode 100644
index 0000000000..aff3beeb1b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/toolbar-aria-expanded-false.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role toolbar; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="toolbar" aria-expanded="false">
+ <div id="obj1" role="button">obj1</div>
+ <div id="obj2" role="button">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/toolbar-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/toolbar-aria-expanded-true.html
new file mode 100644
index 0000000000..fa949d2bf3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/toolbar-aria-expanded-true.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role toolbar; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="toolbar" aria-expanded="true">
+ <div id="obj1" role="button">obj1</div>
+ <div id="obj2" role="button">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/toolbar-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/toolbar-aria-expanded-undefined.html
new file mode 100644
index 0000000000..f71027fbee
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/toolbar-aria-expanded-undefined.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role toolbar; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="toolbar" aria-expanded="undefined">
+ <div id="obj1" role="button">obj1</div>
+ <div id="obj2" role="button">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tooltip-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tooltip-aria-expanded-false.html
new file mode 100644
index 0000000000..f867da4269
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tooltip-aria-expanded-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tooltip; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="tooltip" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tooltip-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tooltip-aria-expanded-true.html
new file mode 100644
index 0000000000..1a52619fe2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tooltip-aria-expanded-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tooltip; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="tooltip" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tooltip-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tooltip-aria-expanded-undefined.html
new file mode 100644
index 0000000000..8b24ad9ed8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tooltip-aria-expanded-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tooltip; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="tooltip" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tree-aria-activedescendant-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tree-aria-activedescendant-obj1.html
new file mode 100644
index 0000000000..c2d0d83391
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tree-aria-activedescendant-obj1.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tree; inherited supported state or property "aria-activedescendant"
+ value of "obj1"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="tree" aria-activedescendant="obj1" tabindex="0">
+ <div id="obj1" role="treeitem">obj1</div>
+ <div id="obj2" role="treeitem">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tree-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tree-aria-expanded-false.html
new file mode 100644
index 0000000000..c13f331fd9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tree-aria-expanded-false.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tree; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="tree" aria-expanded="false">
+ <div role="treeitem" id="obj1">obj1</div>
+ <div role="treeitem" id="obj2">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tree-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tree-aria-expanded-true.html
new file mode 100644
index 0000000000..a2545ef32c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tree-aria-expanded-true.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tree; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="tree" aria-expanded="true">
+ <div role="treeitem" id="obj1">obj1</div>
+ <div role="treeitem" id="obj2">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tree-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tree-aria-expanded-undefined.html
new file mode 100644
index 0000000000..5379f70395
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/tree-aria-expanded-undefined.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tree; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="tree" aria-expanded="undefined">
+ <div role="treeitem" id="obj1">obj1</div>
+ <div role="treeitem" id="obj2">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-activedescendant-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-activedescendant-obj1.html
new file mode 100644
index 0000000000..bce72b08a0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-activedescendant-obj1.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treegrid; inherited supported state or property "aria-activedescendant"
+ value of "obj1"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="treegrid" aria-activedescendant="obj1" tabindex="0">
+ <div role="row">
+ <div id="obj1" role="gridcell">obj1</div>
+ <div id="obj2" role="gridcell">obj2</div>
+ </div>
+ <div role="row">
+ <div id="obj3" role="gridcell">obj3</div>
+ <div id="obj4" role="gridcell">obj4</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-expanded-false.html
new file mode 100644
index 0000000000..7b5d78c98e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-expanded-false.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treegrid; inherited supported state or property "aria-expanded" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="treegrid" aria-expanded="false">
+ <div role="row">
+ <div id="obj1" role="gridcell">obj1</div>
+ <div id="obj2" role="gridcell">obj2</div>
+ </div>
+ <div role="row">
+ <div id="obj3" role="gridcell">obj3</div>
+ <div id="obj4" role="gridcell">obj4</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-expanded-true.html
new file mode 100644
index 0000000000..c06b957a01
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-expanded-true.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treegrid; inherited supported state or property "aria-expanded" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="treegrid" aria-expanded="true">
+ <div role="row">
+ <div id="obj1" role="gridcell">obj1</div>
+ <div id="obj2" role="gridcell">obj2</div>
+ </div>
+ <div role="row">
+ <div id="obj3" role="gridcell">obj3</div>
+ <div id="obj4" role="gridcell">obj4</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-expanded-undefined.html
new file mode 100644
index 0000000000..ef2232bf89
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-expanded-undefined.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treegrid; inherited supported state or property "aria-expanded" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="treegrid" aria-expanded="undefined">
+ <div role="row">
+ <div id="obj1" role="gridcell">obj1</div>
+ <div id="obj2" role="gridcell">obj2</div>
+ </div>
+ <div role="row">
+ <div id="obj3" role="gridcell">obj3</div>
+ <div id="obj4" role="gridcell">obj4</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-level-1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-level-1.html
new file mode 100644
index 0000000000..1a3a3ef0c6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-level-1.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treegrid; inherited supported state or property "aria-level" value
+ of "1"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="treegrid" aria-level="1" tabindex="0">
+ <div role="row">
+ <div role="gridcell" tabindex="-1" >Placeholder content</div>
+ <div role="gridcell" id="obj1">obj1</div>
+ <div role="gridcell" id="obj2">obj2</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-multiselectable-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-multiselectable-false.html
new file mode 100644
index 0000000000..ac6b7662de
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-multiselectable-false.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treegrid; inherited supported state or property "aria-multiselectable"
+ value of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="treegrid" aria-multiselectable="false">
+ <div role="row">
+ <div role="gridcell">Placeholder content</div>
+ <div role="gridcell" id="obj1">obj1</div>
+ <div role="gridcell" id="obj2">obj2</div>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-multiselectable-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-multiselectable-true.html
new file mode 100644
index 0000000000..ee7696ea5f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-multiselectable-true.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treegrid; inherited supported state or property "aria-multiselectable"
+ value of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="treegrid" aria-multiselectable="true">
+ <div role="row">
+ <div role="gridcell">Placeholder content</div>
+ <div role="gridcell" id="obj1">obj1</div>
+ <div role="gridcell" id="obj2">obj2</div>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-readonly-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-readonly-false.html
new file mode 100644
index 0000000000..a8f5e6e86d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-readonly-false.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treegrid; inherited supported state or property "aria-readonly" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="treegrid" aria-readonly="false">
+ <div role="row">
+ <div role="gridcell">Placeholder content</div>
+ <div role="gridcell" id="obj1">obj1</div>
+ <div role="gridcell" id="obj2">obj2</div>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-readonly-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-readonly-true.html
new file mode 100644
index 0000000000..1ab9c58433
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-readonly-true.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treegrid; inherited supported state or property "aria-readonly" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="treegrid" aria-readonly="true">
+ <div role="row">
+ <div role="gridcell">Placeholder content</div>
+ <div role="gridcell" id="obj1">obj1</div>
+ <div role="gridcell" id="obj2">obj2</div>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-required-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-required-false.html
new file mode 100644
index 0000000000..702655bd45
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-required-false.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treegrid; inherited supported state or property "aria-required" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="treegrid" aria-required="false">
+ <div role="row">
+ <div role="gridcell">Placeholder content</div>
+ <div role="gridcell" id="obj1">obj1</div>
+ <div role="gridcell" id="obj2">obj2</div>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-required-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-required-true.html
new file mode 100644
index 0000000000..09c0bb6d9f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treegrid-aria-required-true.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treegrid; inherited supported state or property "aria-required" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="treegrid" aria-required="true">
+ <div role="row">
+ <div role="gridcell">Placeholder content</div>
+ <div role="gridcell" id="obj1">obj1</div>
+ <div role="gridcell" id="obj2">obj2</div>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-checked-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-checked-false.html
new file mode 100644
index 0000000000..592cd974e9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-checked-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treeitem; inherited supported state or property "aria-checked" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div role="tree">
+ <div id="test" role="treeitem" aria-checked="false">Placeholder content</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-checked-mixed.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-checked-mixed.html
new file mode 100644
index 0000000000..6a29dfff75
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-checked-mixed.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treeitem; inherited supported state or property "aria-checked" value
+ of "mixed"
+ </title>
+ </head>
+ <body>
+ <div role="tree">
+ <div id="test" role="treeitem" aria-checked="mixed">Placeholder content</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-checked-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-checked-true.html
new file mode 100644
index 0000000000..3745c86587
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-checked-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treeitem; inherited supported state or property "aria-checked" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div role="tree">
+ <div id="test" role="treeitem" aria-checked="true">Placeholder content</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-checked-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-checked-undefined.html
new file mode 100644
index 0000000000..ede64afbaa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-checked-undefined.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treeitem; inherited supported state or property "aria-checked" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div role="tree">
+ <div id="test" role="treeitem" aria-checked="undefined">Placeholder content</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-level-1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-level-1.html
new file mode 100644
index 0000000000..adc7b23ccc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-level-1.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treeitem; inherited supported state or property "aria-level" value
+ of "1"
+ </title>
+ </head>
+ <body>
+ <div role="tree" tabindex="0">
+ <div id="test" role="treeitem" aria-level="1">Placeholder content</div>
+ <div id="obj1" role="treeitem">obj1</div>
+ <div id="obj2" role="treeitem">obj2</div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-posinset-1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-posinset-1.html
new file mode 100644
index 0000000000..feb152c5a9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-posinset-1.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treeitem; inherited supported state or property "aria-posinset" value
+ of "1"
+ </title>
+ </head>
+ <body>
+ <div role="tree" tabindex="0">
+ <div id="test" role="treeitem" aria-posinset="1">Placeholder content</div>
+ <div id="obj1" role="treeitem">obj1</div>
+ <div id="obj2" role="treeitem">obj2</div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-selected-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-selected-false.html
new file mode 100644
index 0000000000..bce9733b76
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-selected-false.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treeitem; inherited supported state or property "aria-selected" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div role="tree" tabindex="0">
+ <div id="test" role="treeitem" aria-selected="false">Placeholder content</div>
+ <div id="obj1" role="treeitem">obj1</div>
+ <div id="obj2" role="treeitem">obj2</div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-selected-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-selected-true.html
new file mode 100644
index 0000000000..11e529a464
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-selected-true.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treeitem; inherited supported state or property "aria-selected" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div role="tree" tabindex="0">
+ <div id="test" role="treeitem" aria-selected="true">Placeholder content</div>
+ <div id="obj1" role="treeitem">obj1</div>
+ <div id="obj2" role="treeitem">obj2</div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-selected-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-selected-undefined.html
new file mode 100644
index 0000000000..d24014b0a4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-selected-undefined.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treeitem; inherited supported state or property "aria-selected" value
+ of "undefined"
+ </title>
+ </head>
+ <body>
+ <div role="tree" tabindex="0">
+ <div id="test" role="treeitem" aria-selected="undefined">Placeholder content</div>
+ <div id="obj1" role="treeitem">obj1</div>
+ <div id="obj2" role="treeitem">obj2</div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-setsize-1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-setsize-1.html
new file mode 100644
index 0000000000..57005077d1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported-inherited/treeitem-aria-setsize-1.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role treeitem; inherited supported state or property "aria-setsize" value
+ of "1"
+ </title>
+ </head>
+ <body>
+ <div role="tree">
+ <div id="test" role="treeitem" aria-posinset="1" aria-setsize="1">Placeholder content</div>
+ </div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-expanded-false.html
new file mode 100644
index 0000000000..81e7807e17
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-expanded-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role button; supported state or property "aria-expanded" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="button" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-expanded-true.html
new file mode 100644
index 0000000000..6fd1ed8b6b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-expanded-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role button; supported state or property "aria-expanded" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="button" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-expanded-undefined.html
new file mode 100644
index 0000000000..b51b006b97
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-expanded-undefined.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role button; supported state or property "aria-expanded" value of "undefined"</title>
+ </head>
+ <body>
+ <div id="test" role="button" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-pressed-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-pressed-false.html
new file mode 100644
index 0000000000..c7aeae0a0a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-pressed-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role button; supported state or property "aria-pressed" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="button" aria-pressed="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-pressed-mixed.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-pressed-mixed.html
new file mode 100644
index 0000000000..510846d639
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-pressed-mixed.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role button; supported state or property "aria-pressed" value of "mixed"</title>
+ </head>
+ <body>
+ <div id="test" role="button" aria-pressed="mixed">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-pressed-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-pressed-true.html
new file mode 100644
index 0000000000..f99a0e1f5e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-pressed-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role button; supported state or property "aria-pressed" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="button" aria-pressed="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-pressed-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-pressed-undefined.html
new file mode 100644
index 0000000000..8591e12f07
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-button-aria-pressed-undefined.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role button; supported state or property "aria-pressed" value of "undefined"</title>
+ </head>
+ <body>
+ <div id="test" role="button" aria-pressed="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-columnheader-aria-sort-ascending.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-columnheader-aria-sort-ascending.html
new file mode 100644
index 0000000000..53fc144796
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-columnheader-aria-sort-ascending.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role columnheader; supported state or property "aria-sort" value of "ascending"</title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="columnheader" aria-sort="ascending">Placeholder content</span>
+ <span role="columnheader">header 2</span>
+ <span role="columnheader">header 3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-columnheader-aria-sort-descending.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-columnheader-aria-sort-descending.html
new file mode 100644
index 0000000000..ebffc1be7c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-columnheader-aria-sort-descending.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role columnheader; supported state or property "aria-sort" value of "descending"</title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="columnheader" aria-sort="descending">Placeholder content</span>
+ <span role="columnheader">header 2</span>
+ <span role="columnheader">header 3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-columnheader-aria-sort-none.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-columnheader-aria-sort-none.html
new file mode 100644
index 0000000000..fce4f994d5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-columnheader-aria-sort-none.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role columnheader; supported state or property "aria-sort" value of "none"</title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="columnheader" aria-sort="none">Placeholder content</span>
+ <span role="columnheader">header 2</span>
+ <span role="columnheader">header 3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-columnheader-aria-sort-other.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-columnheader-aria-sort-other.html
new file mode 100644
index 0000000000..a92ba0bfc3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-columnheader-aria-sort-other.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role columnheader; supported state or property "aria-sort" value of "other"</title>
+</head>
+<body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="columnheader" aria-sort="other">Placeholder content</span>
+ <span role="columnheader">header 2</span>
+ <span role="columnheader">header 3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ <div role="row">
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ <span role="gridcell">obj3</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-combobox-aria-autocomplete-both.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-combobox-aria-autocomplete-both.html
new file mode 100644
index 0000000000..93df0ede04
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-combobox-aria-autocomplete-both.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role combobox; supported state or property "aria-autocomplete" value of
+ "both"
+ </title>
+ </head>
+ <body>
+ <input type="text" aria-label="Tag" role="combobox"
+ aria-autocomplete="both" aria-owns="owned_listbox" aria-activedescendant="selected_option" aria-expanded="true">
+ <ul role="listbox" id="owned_listbox">
+ <li role="option">Zebra</li>
+ <li role="option" id="selected_option">Zoom</li>
+ </ul>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-combobox-aria-autocomplete-inline.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-combobox-aria-autocomplete-inline.html
new file mode 100644
index 0000000000..cc202875c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-combobox-aria-autocomplete-inline.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role combobox; supported state or property "aria-autocomplete" value of
+ "inline"
+ </title>
+ </head>
+ <body>
+ <input type="text" aria-label="Tag" role="combobox"
+ aria-autocomplete="inline" aria-owns="owned_listbox" aria-activedescendant="selected_option" aria-expanded="true">
+ <ul role="listbox" id="owned_listbox">
+ <li role="option">Zebra</li>
+ <li role="option" id="selected_option">Zoom</li>
+ </ul>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-combobox-aria-autocomplete-list.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-combobox-aria-autocomplete-list.html
new file mode 100644
index 0000000000..060bf24c7a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-combobox-aria-autocomplete-list.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role combobox; supported state or property "aria-autocomplete" value of
+ "list"
+ </title>
+ </head>
+ <body>
+ <input type="text" aria-label="Tag" role="combobox"
+ aria-autocomplete="list" aria-owns="owned_listbox" aria-activedescendant="selected_option" aria-expanded="true">
+ <ul role="listbox" id="owned_listbox">
+ <li role="option">Zebra</li>
+ <li role="option" id="selected_option">Zoom</li>
+ </ul>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-combobox-aria-autocomplete-none.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-combobox-aria-autocomplete-none.html
new file mode 100644
index 0000000000..33be42e05f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-combobox-aria-autocomplete-none.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role combobox; supported state or property "aria-autocomplete" value of
+ "none"
+ </title>
+ </head>
+ <body>
+ <input type="text" aria-label="Tag" role="combobox"
+ aria-autocomplete="none" aria-owns="owned_listbox" aria-activedescendant="selected_option" aria-expanded="true">
+ <ul role="listbox" id="owned_listbox">
+ <li role="option">Zebra</li>
+ <li role="option" id="selected_option">Zoom</li>
+ </ul>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-document-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-document-aria-expanded-false.html
new file mode 100644
index 0000000000..98703bd1e3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-document-aria-expanded-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role document; supported state or property "aria-expanded" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="document" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-document-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-document-aria-expanded-true.html
new file mode 100644
index 0000000000..b1ebb6b404
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-document-aria-expanded-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role document; supported state or property "aria-expanded" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="document" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-document-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-document-aria-expanded-undefined.html
new file mode 100644
index 0000000000..320a98c824
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-document-aria-expanded-undefined.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role document; supported state or property "aria-expanded" value of "undefined"</title>
+ </head>
+ <body>
+ <div id="test" role="document" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-grid-aria-multiselectable-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-grid-aria-multiselectable-false.html
new file mode 100644
index 0000000000..e5f6b6342a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-grid-aria-multiselectable-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role grid; supported state or property "aria-multiselectable" value of
+ "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="grid" aria-multiselectable="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-grid-aria-multiselectable-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-grid-aria-multiselectable-true.html
new file mode 100644
index 0000000000..2cba1e0d87
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-grid-aria-multiselectable-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role grid; supported state or property "aria-multiselectable" value of
+ "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="grid" aria-multiselectable="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-grid-aria-readonly-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-grid-aria-readonly-false.html
new file mode 100644
index 0000000000..9793dfa069
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-grid-aria-readonly-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role grid; supported state or property "aria-readonly" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="grid" aria-readonly="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-grid-aria-readonly-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-grid-aria-readonly-true.html
new file mode 100644
index 0000000000..ff2e3b82dd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-grid-aria-readonly-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role grid; supported state or property "aria-readonly" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="grid" aria-readonly="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-readonly-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-readonly-false.html
new file mode 100644
index 0000000000..682bd32cce
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-readonly-false.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role gridcell; supported state or property "aria-readonly" value of "false"</title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="gridcell" aria-readonly="false">Placeholder content</div>
+ <div id="obj1" role="gridcell">obj1</div>
+ <div id="obj2" role="gridcell">obj2</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-readonly-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-readonly-true.html
new file mode 100644
index 0000000000..4d795cd2b4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-readonly-true.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role gridcell; supported state or property "aria-readonly" value of "true"</title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="gridcell" aria-readonly="true">Placeholder content</div>
+ <div id="obj1" role="gridcell">obj1</div>
+ <div id="obj2" role="gridcell">obj2</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-required-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-required-false.html
new file mode 100644
index 0000000000..7fe356c7c9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-required-false.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role gridcell; supported state or property "aria-required" value of "false"</title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="gridcell" aria-required="false">Placeholder content</div>
+ <div id="obj1" role="gridcell">obj1</div>
+ <div id="obj2" role="gridcell">obj2</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-required-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-required-true.html
new file mode 100644
index 0000000000..c3de53e713
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-required-true.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role gridcell; supported state or property "aria-required" value of "true"</title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="gridcell" aria-required="true">Placeholder content</div>
+ <div id="obj1" role="gridcell">obj1</div>
+ <div id="obj2" role="gridcell">obj2</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-selected-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-selected-false.html
new file mode 100644
index 0000000000..339b0564e9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-selected-false.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role gridcell; supported state or property "aria-selected" value of "false"</title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="gridcell" aria-selected="false">Placeholder content</div>
+ <div id="obj1" role="gridcell">obj1</div>
+ <div id="obj2" role="gridcell">obj2</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-selected-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-selected-true.html
new file mode 100644
index 0000000000..8a52fab7aa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-selected-true.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role gridcell; supported state or property "aria-selected" value of "true"</title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="gridcell" aria-selected="true">Placeholder content</div>
+ <div id="obj1" role="gridcell">obj1</div>
+ <div id="obj2" role="gridcell">obj2</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-selected-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-selected-undefined.html
new file mode 100644
index 0000000000..d276b27c2c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-gridcell-aria-selected-undefined.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role gridcell; supported state or property "aria-selected" value of "undefined"</title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <div id="test" role="gridcell" aria-selected="undefined">Placeholder content</div>
+ <div id="obj1" role="gridcell">obj1</div>
+ <div id="obj2" role="gridcell">obj2</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-heading-aria-level-1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-heading-aria-level-1.html
new file mode 100644
index 0000000000..a57d5d59f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-heading-aria-level-1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role heading; supported state or property "aria-level" value of "1"</title>
+ </head>
+ <body>
+ <div id="test" role="heading" aria-level="1">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-link-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-link-aria-expanded-false.html
new file mode 100644
index 0000000000..a372b6e442
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-link-aria-expanded-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role link; supported state or property "aria-expanded" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="link" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-link-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-link-aria-expanded-true.html
new file mode 100644
index 0000000000..0dcaa32a5e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-link-aria-expanded-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role link; supported state or property "aria-expanded" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="link" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-link-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-link-aria-expanded-undefined.html
new file mode 100644
index 0000000000..cd8e03704f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-link-aria-expanded-undefined.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role link; supported state or property "aria-expanded" value of "undefined"</title>
+ </head>
+ <body>
+ <div id="test" role="link" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listbox-aria-multiselectable-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listbox-aria-multiselectable-false.html
new file mode 100644
index 0000000000..d7c66a6e3e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listbox-aria-multiselectable-false.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role listbox; supported state or property "aria-multiselectable" value
+ of "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="listbox" aria-multiselectable="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listbox-aria-multiselectable-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listbox-aria-multiselectable-true.html
new file mode 100644
index 0000000000..e0378cecbe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listbox-aria-multiselectable-true.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role listbox; supported state or property "aria-multiselectable" value
+ of "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="listbox" aria-multiselectable="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listbox-aria-required-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listbox-aria-required-false.html
new file mode 100644
index 0000000000..18d6da189d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listbox-aria-required-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role listbox; supported state or property "aria-required" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="listbox" aria-required="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listbox-aria-required-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listbox-aria-required-true.html
new file mode 100644
index 0000000000..707442f0ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listbox-aria-required-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role listbox; supported state or property "aria-required" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="listbox" aria-required="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listitem-aria-level-1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listitem-aria-level-1.html
new file mode 100644
index 0000000000..fd6146a495
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listitem-aria-level-1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role listitem; supported state or property "aria-level" value of "1"</title>
+ </head>
+ <body>
+ <div role="list"><div id="test" role="listitem" aria-level="1">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listitem-aria-posinset-1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listitem-aria-posinset-1.html
new file mode 100644
index 0000000000..3cab9141ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listitem-aria-posinset-1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role listitem; supported state or property "aria-posinset" value of "1"</title>
+ </head>
+ <body>
+ <div role="list"><div id="test" role="listitem" aria-posinset="1">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listitem-aria-setsize-1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listitem-aria-setsize-1.html
new file mode 100644
index 0000000000..4ef2da2d38
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-listitem-aria-setsize-1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role listitem; supported state or property "aria-setsize" value of "1"</title>
+ </head>
+ <body>
+ <div role="list"><div id="test" role="listitem" aria-setsize="1">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-checked-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-checked-false.html
new file mode 100644
index 0000000000..2bff3b29c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-checked-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role option; supported state or property "aria-checked" value of "false"</title>
+ </head>
+ <body>
+ <div role="listbox"><div id="test" role="option" aria-checked="false">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-checked-mixed.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-checked-mixed.html
new file mode 100644
index 0000000000..33fee796a8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-checked-mixed.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role option; supported state or property "aria-checked" value of "mixed"</title>
+ </head>
+ <body>
+ <div role="listbox"><div id="test" role="option" aria-checked="mixed">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-checked-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-checked-true.html
new file mode 100644
index 0000000000..49c8209952
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-checked-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role option; supported state or property "aria-checked" value of "true"</title>
+ </head>
+ <body>
+ <div role="listbox"><div id="test" role="option" aria-checked="true">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-checked-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-checked-undefined.html
new file mode 100644
index 0000000000..e372ff93ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-checked-undefined.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role option; supported state or property "aria-checked" value of "undefined"</title>
+ </head>
+ <body>
+ <div role="listbox"><div id="test" role="option" aria-checked="undefined">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-posinset-1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-posinset-1.html
new file mode 100644
index 0000000000..7fbcc50427
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-posinset-1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role option; supported state or property "aria-posinset" value of "1"</title>
+ </head>
+ <body>
+ <div role="listbox"><div id="test" role="option" aria-posinset="1">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-selected-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-selected-false.html
new file mode 100644
index 0000000000..56db6c2ae5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-selected-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role option; supported state or property "aria-selected" value of "false"</title>
+ </head>
+ <body>
+ <div role="listbox"><div id="test" role="option" aria-selected="false">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-selected-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-selected-true.html
new file mode 100644
index 0000000000..eaf138f2ef
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-selected-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role option; supported state or property "aria-selected" value of "true"</title>
+ </head>
+ <body>
+ <div role="listbox"><div id="test" role="option" aria-selected="true">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj1</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-selected-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-selected-undefined.html
new file mode 100644
index 0000000000..43489a0d2b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-selected-undefined.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role option; supported state or property "aria-selected" value of "undefined"</title>
+ </head>
+ <body>
+ <div role="listbox"><div id="test" role="option" aria-selected="undefined">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-setsize-1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-setsize-1.html
new file mode 100644
index 0000000000..6a8b379896
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-option-aria-setsize-1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role option; supported state or property "aria-setsize" value of "1"</title>
+ </head>
+ <body>
+ <div role="listbox"><div id="test" role="option" aria-setsize="1">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-radiogroup-aria-required-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-radiogroup-aria-required-false.html
new file mode 100644
index 0000000000..fe956b50b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-radiogroup-aria-required-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role radiogroup; supported state or property "aria-required" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="radiogroup" aria-required="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-radiogroup-aria-required-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-radiogroup-aria-required-true.html
new file mode 100644
index 0000000000..6bf6b11bef
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-radiogroup-aria-required-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role radiogroup; supported state or property "aria-required" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="radiogroup" aria-required="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-row-aria-level-1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-row-aria-level-1.html
new file mode 100644
index 0000000000..9c1ea0b174
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-row-aria-level-1.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role row; supported state or property "aria-level" value of "1"</title>
+ </head>
+ <body>
+ <div role="grid"><div id="test" role="row" aria-level="1">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-row-aria-selected-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-row-aria-selected-false.html
new file mode 100644
index 0000000000..832fc16a1e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-row-aria-selected-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role row; supported state or property "aria-selected" value of "false"</title>
+ </head>
+ <body>
+ <div role="grid"><div id="test" role="row" aria-selected="false">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-row-aria-selected-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-row-aria-selected-true.html
new file mode 100644
index 0000000000..2977712b83
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-row-aria-selected-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role row; supported state or property "aria-selected" value of "true"</title>
+ </head>
+ <body>
+ <div role="grid"><div id="test" role="row" aria-selected="true">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-row-aria-selected-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-row-aria-selected-undefined.html
new file mode 100644
index 0000000000..cc4f6a828a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-row-aria-selected-undefined.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role row; supported state or property "aria-selected" value of "undefined"</title>
+ </head>
+ <body>
+ <div role="grid"><div id="test" role="row" aria-selected="undefined"><div role="gridcell">Placeholder content</div></div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-rowheader-aria-sort-ascending.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-rowheader-aria-sort-ascending.html
new file mode 100644
index 0000000000..79f3316a9e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-rowheader-aria-sort-ascending.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role rowheader; supported state or property "aria-sort" value of "ascending"</title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="rowheader" aria-sort="ascending">Placeholder content</span>
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell" id="obj2">obj2</span>
+ </div>
+ <div role="row">
+ <span role="rowheader">header cell 2</span>
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-rowheader-aria-sort-descending.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-rowheader-aria-sort-descending.html
new file mode 100644
index 0000000000..beca847b75
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-rowheader-aria-sort-descending.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role rowheader; supported state or property "aria-sort" value of "descending"</title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="rowheader" aria-sort="descending">Placeholder content</span>
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell" id="obj2">obj2</span>
+ </div>
+ <div role="row">
+ <span role="rowheader">header cell 2</span>
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-rowheader-aria-sort-none.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-rowheader-aria-sort-none.html
new file mode 100644
index 0000000000..a1d466f652
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-rowheader-aria-sort-none.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role rowheader; supported state or property "aria-sort" value of "none"</title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="rowheader" aria-sort="none">Placeholder content</span>
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell" id="obj2">obj2</span>
+ </div>
+ <div role="row">
+ <span role="rowheader">header cell 2</span>
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-rowheader-aria-sort-other.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-rowheader-aria-sort-other.html
new file mode 100644
index 0000000000..6ed7626aa4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-rowheader-aria-sort-other.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role rowheader; supported state or property "aria-sort" value of "other"</title>
+ </head>
+ <body>
+ <div role="grid">
+ <div role="row">
+ <span id="test" role="rowheader" aria-sort="other">Placeholder content</span>
+ <span role="gridcell" id="obj1">obj1</span>
+ <span role="gridcell" id="obj2">obj2</span>
+ </div>
+ <div role="row">
+ <span role="rowheader">header cell 2</span>
+ <span role="gridcell">obj1</span>
+ <span role="gridcell">obj2</span>
+ </div>
+ </div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-expanded-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-expanded-false.html
new file mode 100644
index 0000000000..a14c3c4382
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-expanded-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role separator; supported state or property "aria-expanded" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="separator" aria-expanded="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-expanded-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-expanded-true.html
new file mode 100644
index 0000000000..c2d399ea47
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-expanded-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role separator; supported state or property "aria-expanded" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="separator" aria-expanded="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-expanded-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-expanded-undefined.html
new file mode 100644
index 0000000000..8f350b7159
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-expanded-undefined.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role separator; supported state or property "aria-expanded" value of "undefined"</title>
+ </head>
+ <body>
+ <div id="test" role="separator" aria-expanded="undefined">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-orientation-horizontal.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-orientation-horizontal.html
new file mode 100644
index 0000000000..e888bb90e6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-orientation-horizontal.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role separator; supported state or property "aria-orientation" value of
+ "horizontal"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="separator" aria-orientation="horizontal">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-orientation-vertical.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-orientation-vertical.html
new file mode 100644
index 0000000000..5dec81b834
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-separator-aria-orientation-vertical.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role separator; supported state or property "aria-orientation" value of
+ "vertical"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="separator" aria-orientation="vertical">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tab-aria-selected-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tab-aria-selected-false.html
new file mode 100644
index 0000000000..e0865918b0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tab-aria-selected-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tab; supported state or property "aria-selected" value of "false"</title>
+ </head>
+ <body>
+ <div role="tablist"><div id="test" role="tab" aria-selected="false">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tab-aria-selected-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tab-aria-selected-true.html
new file mode 100644
index 0000000000..61c5ecedec
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tab-aria-selected-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tab; supported state or property "aria-selected" value of "true"</title>
+ </head>
+ <body>
+ <div role="tablist"><div id="test" role="tab" aria-selected="true">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tab-aria-selected-undefined.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tab-aria-selected-undefined.html
new file mode 100644
index 0000000000..9e7417a3c7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tab-aria-selected-undefined.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tab; supported state or property "aria-selected" value of "undefined"</title>
+ </head>
+ <body>
+ <div role="tablist"><div id="test" role="tab" aria-selected="undefined">Placeholder content</div></div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tablist-aria-level-1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tablist-aria-level-1.html
new file mode 100644
index 0000000000..0e740d8fed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tablist-aria-level-1.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tablist; supported state or property "aria-level" value of "1"</title>
+ </head>
+ <body>
+ <div id="test" role="tablist" aria-level="1">
+ <div id="obj1" role="tab">obj1</div>
+ <div role="tablist" aria-level="2">
+ <div id="obj2" role="tab">obj2</div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-activedescendant-obj1.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-activedescendant-obj1.html
new file mode 100644
index 0000000000..732dfa0d74
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-activedescendant-obj1.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>Test Case 234
+ </title>
+ </head>
+ <body>
+ <div id="test" role="textbox" aria-activedescendant="obj1" tabindex="0">Placeholder content
+ <div id="obj1" role="button">obj1</div>
+ </div>
+ <div id="obj2">obj2</div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-autocomplete-both.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-autocomplete-both.html
new file mode 100644
index 0000000000..8e6136e1eb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-autocomplete-both.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role textbox; supported state or property "aria-autocomplete" value of
+ "both"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="textbox" aria-autocomplete="both">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-autocomplete-inline.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-autocomplete-inline.html
new file mode 100644
index 0000000000..fa9e009852
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-autocomplete-inline.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role textbox; supported state or property "aria-autocomplete" value of
+ "inline"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="textbox" aria-autocomplete="inline">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-autocomplete-list.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-autocomplete-list.html
new file mode 100644
index 0000000000..85d7bfa3b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-autocomplete-list.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role textbox; supported state or property "aria-autocomplete" value of
+ "list"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="textbox" aria-autocomplete="list">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-autocomplete-none.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-autocomplete-none.html
new file mode 100644
index 0000000000..6594bd7263
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-autocomplete-none.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role textbox; supported state or property "aria-autocomplete" value of
+ "none"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="textbox" aria-autocomplete="none">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-multiline-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-multiline-false.html
new file mode 100644
index 0000000000..6c047d141c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-multiline-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role textbox; supported state or property "aria-multiline" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="textbox" aria-multiline="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-multiline-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-multiline-true.html
new file mode 100644
index 0000000000..8231e43bc5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-multiline-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role textbox; supported state or property "aria-multiline" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="textbox" aria-multiline="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-readonly-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-readonly-false.html
new file mode 100644
index 0000000000..c007dab15b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-readonly-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role textbox; supported state or property "aria-readonly" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="textbox" aria-readonly="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-readonly-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-readonly-true.html
new file mode 100644
index 0000000000..6525bc02b5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-readonly-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role textbox; supported state or property "aria-readonly" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="textbox" aria-readonly="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-required-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-required-false.html
new file mode 100644
index 0000000000..eb496bc14b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-required-false.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role textbox; supported state or property "aria-required" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="textbox" aria-required="false">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-required-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-required-true.html
new file mode 100644
index 0000000000..88ebdd6a25
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-textbox-aria-required-true.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role textbox; supported state or property "aria-required" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="textbox" aria-required="true">Placeholder content</div>
+ <div id="obj1">obj1</div>
+ <div id="obj2">obj2</div>
+ </body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tree-aria-multiselectable-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tree-aria-multiselectable-false.html
new file mode 100644
index 0000000000..17ffdcc6fb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tree-aria-multiselectable-false.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tree; supported state or property "aria-multiselectable" value of
+ "false"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="tree" aria-multiselectable="false">
+ <div role="treeitem" id="obj1">obj1</div>
+ <div role="treeitem" id="obj2">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tree-aria-multiselectable-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tree-aria-multiselectable-true.html
new file mode 100644
index 0000000000..9af7d0cc6c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tree-aria-multiselectable-true.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tree; supported state or property "aria-multiselectable" value of
+ "true"
+ </title>
+ </head>
+ <body>
+ <div id="test" role="tree" aria-multiselectable="true">
+ <div role="treeitem" id="obj1">obj1</div>
+ <div role="treeitem" id="obj2">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tree-aria-required-false.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tree-aria-required-false.html
new file mode 100644
index 0000000000..d049bf6523
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tree-aria-required-false.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tree; supported state or property "aria-required" value of "false"</title>
+ </head>
+ <body>
+ <div id="test" role="tree" aria-required="false">
+ <div role="treeitem" id="obj1">obj1</div>
+ <div role="treeitem" id="obj2">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tree-aria-required-true.html b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tree-aria-required-true.html
new file mode 100644
index 0000000000..86fbbc1a51
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/roles-properties-supported/roles-properties-supported-tree-aria-required-true.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <title>&lt;div&gt; with role tree; supported state or property "aria-required" value of "true"</title>
+ </head>
+ <body>
+ <div id="test" role="tree" aria-required="true">
+ <div role="treeitem" id="obj1">obj1</div>
+ <div role="treeitem" id="obj2">obj2</div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/selected-state/670.html b/testing/web-platform/tests/conformance-checkers/html-aria/selected-state/670.html
new file mode 100644
index 0000000000..de95a2e19d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/selected-state/670.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 670</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 670</h1>
+
+ <ul role="listbox">
+ <li role="option" aria-selected="true" id="ID_OPTION" tabindex="0">Option 1</li>
+ <li role="option">Option 2</li>
+ </ul>
+
+ <h2>Description</h2>
+ <p>For an element with role role "option" which is a child of an element with
+ role "listbox", and the value of the "aria-selected" attribute is equal
+ to "true".</p>
+
+ <script>
+
+ function setFocus() {
+ var node = document.getElementById('ID_OPTION');
+ node.focus();
+ }
+
+ window.addEventListener('load', setFocus);
+ </script>
+ </body>
+
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/selected-state/671.html b/testing/web-platform/tests/conformance-checkers/html-aria/selected-state/671.html
new file mode 100644
index 0000000000..4d36b22cf1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/selected-state/671.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 671</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 671</h1>
+
+ <ul role="listbox">
+ <li role="option" aria-selected="false" id="ID_OPTION" tabindex="0">Option 1</li>
+ <li role="option">Option 2</li>
+ </ul>
+
+ <h2>Description</h2>
+ <p>For an element with role role "option" which is a child of an element with
+ role "listbox", and the value of the "aria-selected" attribute is NOT equal
+ to "true" or the attribute is undefined.</p>
+
+
+ <script>
+
+ function setFocus() {
+ var test_node = document.getElementById('ID_OPTION');
+ test_node.focus();
+ }
+
+ window.addEventListener('load', setFocus);
+ </script>
+ </body>
+
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/selected-state/672.html b/testing/web-platform/tests/conformance-checkers/html-aria/selected-state/672.html
new file mode 100644
index 0000000000..962e6b944b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/selected-state/672.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 672</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 672</h1>
+ <ul role="listbox">
+ <li role="option" aria-selected="false" id="TEST_ID" tabindex="0">Option 1</li>
+ <li role="option">Option 2</li>
+ </ul>
+
+ <h2>Description</h2>
+ <p>For an element with role "option" which is a child of an element with role "listbox",
+ and the value of the "aria-selected" attribute changes (from "true", or to "true").</p>
+
+ <script>
+ function changeSelectedState() {
+ var test_node = document.getElementById('TEST_ID');
+ var state = test_node.getAttribute('aria-selected');
+
+ if (state === 'false') test_node.setAttribute('aria-selected', 'true');
+ else test_node.setAttribute('aria-selected', 'true');
+
+ }
+
+ function setFocus() {
+ var test_node = document.getElementById('TEST_ID');
+ test_node.focus();
+ setTimeout(changeSelectedState,1000);
+ }
+
+ window.addEventListener('load', setFocus);
+ </script>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/setsize-posinset-level/setsize-posinset-level-1.html b/testing/web-platform/tests/conformance-checkers/html-aria/setsize-posinset-level/setsize-posinset-level-1.html
new file mode 100644
index 0000000000..04786b8066
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/setsize-posinset-level/setsize-posinset-level-1.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 763</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 763</h1>
+
+ <div role="listbox">
+ <div role="option" aria-setsize="3" aria-posinset="1" tabindex="-1">Option 1</div>
+ <div role="option" aria-setsize="3" aria-posinset="2" tabindex="-1" id="ID_TARGET">Option 2</div>
+ <div role="option" aria-setsize="3" aria-posinset="3" tabindex="-1">Option 3</div>
+ </div>
+
+ <h2>Description</h2>
+ <p>A div element with the role='listbox' has three child div elements each with
+ role='option' and aria-setsize='3'. The 1st child div element has aria-posinset='1',
+ the 2nd child div element has aria-posinset='2' and the 3rd child div element
+ has aria-posinset='3'.</p>
+
+
+ <h2>Expected Results</h2>
+
+ <h3>MSAA + UIA Express</h3>
+ <ul>
+ <li>role="tree": ROLE_SYSTEM_LIST</li>
+ <li>role="treeitem": ROLE_SYSTEM_LISTITEM</li>
+ <li>LegacyIAccessible.Description will be in the form X of Y,
+ where X is the value of aria-posinset and Y is the value of aria-setsize
+ </li>
+ </ul>
+
+ <h3>MSAA + IAccessible2</h3>
+ <ul>
+ <li>role="tree": ROLE_SYSTEM_LIST</li>
+ <li>role="treeitem": ROLE_SYSTEM_LISTITEM</li>
+ <li>The structure should be reflected in the accessibility tree as directed by aria-posinset.</li>
+ <li>function groupPosition() should be available and have the following results:
+ <ul>
+ <li>groupLevel: 1</li>
+ <li>similarItemsInGroup: 3</li>
+ <li>positionInGroup: aria-posinest value</li>
+ </ul>
+ </li>
+ </ul>
+
+ <h3>UIA</h3>
+ <ul>
+ <li>role="tree": List</li>
+ <li>role="treeitem": ListItem</li>
+ <li>LegacyIAccessible.Description will be in the form X of Y,
+ where X is the value of aria-posinset and Y is the value of aria-setsize</li>
+ </ul>
+
+
+ <h3>ATK/AT-SPI</h3>
+ <ul>
+ <li>role="tree": ROLE_LIST</li>
+ <li>role="treeitem": ROLE_LISTITEM</li>
+ <li>aria-setsize: not mapped to setsize: value</li>
+ <li>aria-posinset: is mapped to posinset: value</li>
+ </ul>
+
+ <h3>AXAPI</h3>
+ <ul>
+ <li>role="tree": AXList = 'list'</li>
+ <li>role="treeitem": AXGroup = 'group'</li>
+ <li>aria-setsize: is mapped to AXARIASetSize: value</li>
+ <li>aria-posinset: is mapped to AXARIAPosInSet: value</li>
+ </ul>
+
+
+ <script>
+
+ function setFocus() {
+ var node = document.getElementById('ID_TARGET');
+ node.focus();
+ }
+
+ window.addEventListener('load', setFocus);
+ </script>
+ </body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/setsize-posinset-level/setsize-posinset-level-5.html b/testing/web-platform/tests/conformance-checkers/html-aria/setsize-posinset-level/setsize-posinset-level-5.html
new file mode 100644
index 0000000000..1ee058526b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/setsize-posinset-level/setsize-posinset-level-5.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 767</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 767</h1>
+
+ <div role="list">
+ <div role="listitem">Item 1</div>
+ <div role="listitem">Item 2</div>
+ <div role="listitem">Item 3</div>
+ <div role="listitem">Item 4</div>
+ </div>
+
+ <h2>Description</h2>
+ <p>A div element with the role='list' with four child div elements with with the role='listitem'.</p>
+
+ <h2>Expected Results</h2>
+
+ <h3>MSAA + UIA Express</h3>
+ <ul>
+ <li>role="list": ROLE_SYSTEM_LIST + STATE_SYSTEM_READONLY</li>
+ <li>role="listitem": ROLE_SYSTEM_LISTITEM + STATE_SYSTEM_READONLY</li>
+ <li>LegacyIAccessible.Description will be in the form X of Y,
+ where X is the position in list and Y = 4</li>
+ </ul>
+
+ <h3>MSAA + IAccessible2</h3>
+ <ul>
+ <li>role="list": ROLE_SYSTEM_LIST + STATE_SYSTEM_READONLY</li>
+ <li>role="listitem": ROLE_SYSTEM_LISTITEM + STATE_SYSTEM_READONLY</li>
+ <li>The structure should be reflected in the accessibility tree as directed by aria-posinset.</li>
+ <li>function groupPosition() should be available and have the following results:
+ <ul>
+ <li>object attributes setsize:4, posinset:1-based position in the list></li>
+ <li>groupLevel: 0 or 1</li>
+ <li>similarItemsInGroup: 4</li>
+ <li>positionInGroup: position in list</li>
+ </ul>
+ </li>
+ </ul>
+
+ <h3>UIA</h3>
+ <ul>
+ <li>role="list": List</li>
+ <li>role="listitem": Listitem</li>
+ <li>LegacyIAccessible.Description will be in the form X of Y,
+ where X is the position in list and Y = 4</li>
+ </ul>
+
+ <h3>ATK/AT-SPI</h3>
+ <ul>
+ <li>role="list": ROLE_LIST and STATE_EDITABLE is not exposed</li>
+ <li>role="listitem": ROLE_LISTITEM and STATE_EDITABLE is not exposed</li>
+ <li>object attributes setsize:4, posinset:1-based position in the list></li>
+ </ul>
+
+ <h3>AXAPI</h3>
+ <ul>
+ <li>role="list": AXList and AXContentList = 'content list'</li>
+ <li>role="listitem": AXGroup = nil</li>
+ <li>AXARIASetSize: 4</li>
+ <li>AXARIAPosInSet: 1 based position in list</li>
+ <li>AXDisclosureLevel: 0 or 1 </li>
+ </ul>
+ </body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/setsize-posinset-level/setsize-posinset-level-6.html b/testing/web-platform/tests/conformance-checkers/html-aria/setsize-posinset-level/setsize-posinset-level-6.html
new file mode 100644
index 0000000000..af8979c27d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/setsize-posinset-level/setsize-posinset-level-6.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 768</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 768</h1>
+
+ <div role="list">
+ <div role="listitem" aria-level="2">Item 1</div>
+ <div role="listitem" aria-level="2">Item 2</div>
+ <div role="listitem" aria-level="2">Item 3</div>
+ <div role="listitem" aria-level="2">Item 4</div>
+ </div>
+
+ <h2>Description</h2>
+ <p>A div element with the role='list' with four child div elements with with the role='listitem' with a aria-level='2'.</p>
+
+ <h2>Expected Results</h2>
+
+ <h3>MSAA + UIA Express</h3>
+ <ul>
+ <li>role="list": ROLE_SYSTEM_LIST + STATE_SYSTEM_READONLY</li>
+ <li>role="listitem": ROLE_SYSTEM_LISTITEM + STATE_SYSTEM_READONLY</li>
+ <li>LegacyIAccessible.Description will be in the form X of Y,
+ where X is the position in list and Y = 4</li>
+ <li>Expose level=1 in AriaProperites for list items</li>
+ </ul>
+
+ <h3>MSAA + IAccessible2</h3>
+ <ul>
+ <li>role="list": ROLE_SYSTEM_LIST + STATE_SYSTEM_READONLY</li>
+ <li>role="listitem": ROLE_SYSTEM_LISTITEM + STATE_SYSTEM_READONLY</li>
+ <li>The structure should be reflected in the accessibility tree as directed by aria-posinset.</li>
+ <li>function groupPosition() should be available and have the following results:
+ <ul>
+ <li>groupLevel: 2</li>
+ <li>similarItemsInGroup: 4</li>
+ <li>positionInGroup: position in list</li>
+ </ul>
+ </li>
+ </ul>
+
+ <h3>UIA</h3>
+ <ul>
+ <li>role="list": List</li>
+ <li>role="listitem": Listitem</li>
+ <li>LegacyIAccessible.Description will be in the form X of Y,
+ where X is the position in list and Y = 4</li>
+ <li>Expose level=1 in AriaProperites for list items</li>
+ </ul>
+
+ <h3>ATK/AT-SPI</h3>
+ <ul>
+ <li>role="list": ROLE_LIST and STATE_EDITABLE is not exposed</li>
+ <li>role="listitem": ROLE_LISTITEM and STATE_EDITABLE is not exposed</li>
+ <li>setsize: 4</li>
+ <li>posinset: position in list</li>
+ <li>level: 2 </li>
+ </ul>
+
+ <h3>AXAPI</h3>
+ <ul>
+ <li>role="list": AXList and AXContentList = 'content list'</li>
+ <li>role="listitem": AXGroup = nil</li>
+ <li>AXARIASetSize: 4</li>
+ <li>AXARIAPosInSet: position in list</li>
+ <li>AXDisclosureLevel: 2 </li>
+ </ul>
+
+ </body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/setsize-posinset-level/testcase-769.html b/testing/web-platform/tests/conformance-checkers/html-aria/setsize-posinset-level/testcase-769.html
new file mode 100644
index 0000000000..106813d281
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/setsize-posinset-level/testcase-769.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 769</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 769</h1>
+
+ <div role="list">
+ <div role="listitem">Item 1
+ <div role="group">
+ <div role="listitem">Item 1A</div>
+ <div role="listitem">Item 1B</div>
+ </div>
+ </div>
+ <div role="listitem">Item 2
+ <div role="group">
+ <div role="listitem">Item 2A</div>
+ <div role="listitem">Item 2B</div>
+ </div>
+ </div>
+ </div>
+
+ <h2>Description</h2>
+ <p>A div element with the role='list' with two child div elements with with the role='listitem'.
+ Each of the child div element also contain a div element with the role="group" with two child
+ div elements with the role='listitem'.</p>
+
+ <h2>Expected Results</h2>
+
+ <h3>MSAA + UIA Express</h3>
+ <ul>
+ <li>role="list": ROLE_SYSTEM_LIST + STATE_SYSTEM_READONLY</li>
+ <li>role="listitem": ROLE_SYSTEM_LISTITEM + STATE_SYSTEM_READONLY</li>
+ <li>LegacyIAccessible.Description will be in the form X of Y,
+ where X is the position in list and Y = 2 (since all lists have 2 items)</li>
+ <li>Expose level=1 in AriaProperites for list items for "Item 1" and "Item 2"</li>
+ <li>Expose level=2 in AriaProperites for list items for "Item 1A", "Item 1B", "Item 2A" and "Item 2B"</li>
+ </ul>
+
+ <h3>MSAA + IAccessible2</h3>
+ <ul>
+ <li>role="list": ROLE_SYSTEM_LIST + STATE_SYSTEM_READONLY</li>
+ <li>role="listitem": ROLE_SYSTEM_LISTITEM + STATE_SYSTEM_READONLY</li>
+ <li>function groupPosition() should be available and have the following results:
+ <ul>
+ <li>groupLevel: 1 for "Item 1" and "Item 2" (since all lists have 2 items)</li>
+ <li>groupLevel: 2 for "Item 1A", "Item 1B", "Item 2A" and "Item 2B"</li>
+ <li>similarItemsInGroup: 2</li>
+ <li>positionInGroup: position in list</li>
+ </ul>
+ </li>
+ </ul>
+
+ <h3>UIA</h3>
+ <ul>
+ <li>role="list": List</li>
+ <li>role="listitem": Listitem</li>
+ <li>LegacyIAccessible.Description will be in the form X of Y,
+ where X is the position in list and Y = 2 (since all lists have 2 items)</li>
+ <li>Expose level=1 in AriaProperites for "Item 1" and "Item 2"</li>
+ <li>Expose level=2 in AriaProperites for "Item 1A", "Item 1B", "Item 2A" and "Item 2B"</li>
+ </ul>
+
+ <h3>ATK/AT-SPI</h3>
+ <ul>
+ <li>role="list": ROLE_LIST and STATE_EDITABLE is not exposed</li>
+ <li>role="listitem": ROLE_LISTITEM and STATE_EDITABLE is not exposed</li>
+ <li>setsize: 2 (since all lists have 2 items)</li>
+ <li>posinset: position in list</li>
+ <li>level: 1 for "Item 1" and "Item 2"</li>
+ <li>level: 2 for "Item 1A", "Item 1B", "Item 2A" and "Item 2B"</li>
+ </ul>
+
+ <h3>AXAPI</h3>
+ <ul>
+ <li>role="list": AXList and AXContentList = 'content list'</li>
+ <li>role="listitem" for "Item 1" and "Item 2": AXGroup = 'group'</li>
+ <li>role="listitem" for "Item 1A", "Item 1B", "Item 2A" and "Item 2B": AXGroup = nil</li>
+ <li>AXARIASetSize: 2 (since all lists have 2 items)</li>
+ <li>AXARIAPosInSet: position in list</li>
+ <li>AXDisclosureLevel: 1 for "Item 1" and "Item 2"</li>
+ <li>AXDisclosureLevel: 2 for "Item 1A", "Item 1B", "Item 2A" and "Item 2B"</li>
+ </ul>
+
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/stability-of-dom/669.html b/testing/web-platform/tests/conformance-checkers/html-aria/stability-of-dom/669.html
new file mode 100644
index 0000000000..2f2e64fb69
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/stability-of-dom/669.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>ARIA 1.0 Test Case 669</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case 669</h1>
+
+ <ul role="listbox" id="ID_LISTBOX" tabindex="0" aria-activedescendant="ID_OPTION_1">
+ <li id="ID_OPTION_1" role="option">Option 1</li>
+ <li id="ID_OPTION_2" role="option">Option 2</li>
+ </ul>
+
+ <h2>Description</h2>
+ <p>An element with role "listbox" with two descendants having role "option"
+ and aria-activedescendant set to the id of the first option for which an
+ assistive technology or API test tool requests to move focus to option 2.</p>
+
+ <script>
+
+ function setFocus() {
+ var node = document.getElementById('ID_LISTBOX');
+ node.focus();
+ }
+
+ window.addEventListener('load', setFocus);
+ </script>
+ </body>
+
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-listbox-multiselectable-A.html b/testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-listbox-multiselectable-A.html
new file mode 100644
index 0000000000..3ba81f2c16
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-listbox-multiselectable-A.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html><head>
+ <title>ARIA 1.0 Test Case: Listbox role with multiseclect</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case: Listbox role with multiseclect</h1>
+
+ <div role="listbox" aria-multiselectable="true">
+ <div role="option">Option 1</div>
+ <div role="option" aria-selected="true" tabindex="-1">Option 2 (test for selected)</div>
+ <div role="option" aria-selected="false" id="ID_TARGET" tabindex="0">Option 3 (test for selected)</div>
+ <div role="option">Option 4</div>
+ </div>
+
+ <h2>Description</h2>
+ <p>A DIV element with role role "listbox" has an aria-multiselect attribute set to "true".
+ Two of the four child "div" elements with the role "option" have the "aria-selected" attribute set
+ to "true".</p>
+
+ <h2>Accessibility API Mappings</h2>
+
+ <h3>MSAA + UIA Express</h3>
+ <p>Expose <code>STATE_SYSTEM_SELECTED</code>; Expose <code>STATE_SYSTEM_SELECTABLE</code></p>
+
+ <h3>MSAA + IAccessible2</h3>
+ <p>Expose STATE_SYSTEM_SELECTED and STATE_SYSTEM_SELECTABLE for each of the elements with role option</p>
+
+ <h3>UIA</h3>
+ <p>Expose IsSelected property in SelectionItem Control Pattern. The availability of the SelectionItem Control Pattern indicates the item is selectable.</p>
+
+ <h3>ATK/AT-SPI</h3>
+ <p>Expose STATE_SELECTED on each of the elements with role option.</p>
+
+ <h3>AXAPI</h3>
+ <p>AXSelected:Yes on option 2 and 3 and AXSelected:No on option 1 and 4</p>
+
+ <script>
+
+ function setFocus() {
+ var node = document.getElementById('ID_TARGET');
+
+myVar=setTimeout(function(){var node = document.getElementById('ID_TARGET');node.setAttribute("aria-selected","true");} ,2000)
+ }
+
+ window.addEventListener('load', setFocus);
+ </script>
+
+
+
+
+</body></html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-listbox-multiselectable-B.html b/testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-listbox-multiselectable-B.html
new file mode 100644
index 0000000000..6d1dcdaae7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-listbox-multiselectable-B.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html><head>
+ <title>ARIA 1.0 Test Case: Listbox role with multiseclect</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case: Listbox role with multiseclect</h1>
+
+ <div role="listbox" aria-multiselectable="true">
+ <div role="option">Option 1</div>
+ <div role="option" aria-selected="true" tabindex="-1">Option 2 (test for selected)</div>
+ <div role="option" aria-selected="true" id="ID_TARGET" tabindex="0">Option 3 (test for selected)</div>
+ <div role="option">Option 4</div>
+ </div>
+
+ <h2>Description</h2>
+ <p>A DIV element with role role "listbox" has an aria-multiselect attribute set to "true".
+ Two of the four child "div" elements with the role "option" have the "aria-selected" attribute set
+ to "true".</p>
+
+ <h2>Accessibility API Mappings</h2>
+
+ <h3>MSAA + UIA Express</h3>
+ <p>Expose <code>STATE_SYSTEM_SELECTED</code>; Expose <code>STATE_SYSTEM_SELECTABLE</code></p>
+
+ <h3>MSAA + IAccessible2</h3>
+ <p>Expose STATE_SYSTEM_SELECTED and STATE_SYSTEM_SELECTABLE for each of the elements with role option</p>
+
+ <h3>UIA</h3>
+ <p>Expose IsSelected property in SelectionItem Control Pattern. The availability of the SelectionItem Control Pattern indicates the item is selectable.</p>
+
+ <h3>ATK/AT-SPI</h3>
+ <p>Expose STATE_SELECTED on each of the elements with role option.</p>
+
+ <h3>AXAPI</h3>
+ <p>AXSelected:Yes on option 2 and 3 and AXSelected:No on option 1 and 4</p>
+
+ <script>
+
+ function clearSelection() {
+ myVar=setTimeout(function(){var node = document.getElementById('ID_TARGET');node.setAttribute("aria-selected","false");} ,3000)
+ }
+
+ window.addEventListener('load', clearSelection);
+ </script>
+
+
+
+
+</body></html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-listbox-multiselectable-C.html b/testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-listbox-multiselectable-C.html
new file mode 100644
index 0000000000..88eb11bb41
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-listbox-multiselectable-C.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html><head>
+ <title>ARIA 1.0 Test Case: Listbox role with multiseclect</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <style>
+ [aria-selected="true"] { font-weight: bold; }
+ </style>
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case: Listbox role with multiseclect</h1>
+
+ <div role="listbox" aria-multiselectable="true">
+ <div role="option">Option 1</div>
+ <div role="option" aria-selected="false" tabindex="-1">Option 2 (test for selected)</div>
+ <div role="option" aria-selected="false" id="ID_TARGET" tabindex="0">Option 3 (test for selected)</div>
+ <div role="option">Option 4</div>
+ </div>
+ <p><button onclick="toggleSelectedState();">Toggle Option 3 Selected State</button>
+
+ <h2>Description</h2>
+ <p>A DIV element with role role "listbox" has an aria-multiselect attribute set to "true".
+ Two of the four child "div" elements with the role "option" have the "aria-selected" attribute set
+ to "true".</p>
+
+ <h2>Accessibility API Mappings</h2>
+
+ <h3>MSAA + UIA Express</h3>
+ <p>Expose <code>STATE_SYSTEM_SELECTED</code>; Expose <code>STATE_SYSTEM_SELECTABLE</code></p>
+
+ <h3>MSAA + IAccessible2</h3>
+ <p>Expose STATE_SYSTEM_SELECTED and STATE_SYSTEM_SELECTABLE for each of the elements with role option</p>
+
+ <h3>UIA</h3>
+ <p>Expose IsSelected property in SelectionItem Control Pattern. The availability of the SelectionItem Control Pattern indicates the item is selectable.</p>
+
+ <h3>ATK/AT-SPI</h3>
+ <p>Expose STATE_SELECTED on each of the elements with role option.</p>
+
+ <h3>AXAPI</h3>
+ <p>AXSelected:Yes on option 2 and 3 and AXSelected:No on option 1 and 4</p>
+
+ <script>
+/*
+ function setSelection() {
+ var node = document.getElementById('ID_TARGET');
+ node.setAttribute("aria-selected","true");
+ }
+
+ window.addEventListener('load', setSelection);
+*/
+ function toggleSelectedState() {
+ var el = document.getElementById('ID_TARGET');
+ if (el.getAttribute('aria-selected') == 'true')
+ el.setAttribute('aria-selected', 'false');
+ else
+ el.setAttribute('aria-selected', 'true');
+ }
+
+ </script>
+
+
+
+
+</body></html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-multiselectable-D.html b/testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-multiselectable-D.html
new file mode 100644
index 0000000000..290430acf5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-multiselectable-D.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html><head>
+ <title>ARIA 1.0 Test Case: Listbox role with multiseclect</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ <style>
+ div[aria-selected="true"] {color:white;background-color:black;}
+ </style>
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case: Listbox role with multiseclect</h1>
+
+ <div role="listbox" aria-label="charlotte" aria-multiselectable="true">
+ <div role="option" aria-selected="false" id="ID1" tabindex="-1" onclick="handle1(event)">Option 1 (test for click elected)</div>
+ <div role="option" aria-selected="false" id="ID2" tabindex="-1">Option 2</div>
+ <div role="option" aria-selected="false" id="ID3" onmousedown="handle2(event)">Option 3 (test for shift click selected)</div>
+ </div>
+
+ <script>
+ function handle1(e) {
+ var node=document.getElementById('ID1');
+ node.focus();
+ e.stopPropagation();
+ return false;
+ }
+ function handle2(e) {
+ shiftpressed=0;
+ shiftpressed=e.shiftKey;
+ if (shiftpressed){
+ var node=document.getElementById('ID1');
+ node.setAttribute("aria-selected", "true");
+ node=document.getElementById('ID2');
+ node.setAttribute("aria-selected", "true");
+ node=document.getElementById('ID3');
+ node.setAttribute("aria-selected", "true");
+ }
+ e.stopPropagation();
+ return false;
+ }
+ </script>
+
+</body></html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-tree-multiselectable-C.html b/testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-tree-multiselectable-C.html
new file mode 100644
index 0000000000..da97b2945f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-aria/testcases-multiselectable/testcase-tree-multiselectable-C.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html><head>
+ <title>ARIA 1.0 Test Case: Tree role with aria-multiselectable</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+ </head>
+ <body>
+ <h1>ARIA 1.0 Test Case: Tree role with aria-multiselectable</h1>
+
+ <div role="tree" aria-multiselectable="true">
+ <div role="treeitem">Leaf 1
+ <div role="group">
+ <div role="treeitem" aria-selected="true">Leaf 1A (Selected)</div>
+ <div role="treeitem">Leaf 1B</div>
+ <div role="treeitem" aria-selected="false">Leaf 1C (aria-selected='false')</div>
+ </div>
+ </div>
+ <div role="treeitem" aria-selected="true">Leaf 2 (Selected)
+ <div role="group">
+ <div role="treeitem">Leaf 2A</div>
+ <div role="treeitem">Leaf 2B</div>
+ <div role="treeitem">Leaf 2C</div>
+ </div>
+ </div>
+ <div role="treeitem">Leaf 3
+ <div role="group">
+ <div role="treeitem">Leaf 3A</div>
+ <div role="treeitem" aria-selected="false">Leaf 3B (aria-selected='false')</div>
+ <div role="treeitem" aria-selected="true">Leaf 3C (Selected)</div>
+ </div>
+ </div>
+ </div>
+
+ <script>
+
+ function setFocus() {
+ var node = document.getElementById('ID_TARGET');
+ node.focus();
+ }
+
+ window.addEventListener('load', setFocus);
+ </script>
+
+
+
+
+</body></html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters1html.html b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters1html.html
new file mode 100644
index 0000000000..a717f95cee
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters1html.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <title>Example</title>
+ </head>
+ <body>
+ <p>Login names can only use letters from A to Z (upper or lowercase)
+ and the character underscore (_) and minus (-).
+ For example: <code its-allowed-characters="[a-zA-Z_\-]">Huck_Finn</code>.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters2html.html b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters2html.html
new file mode 100644
index 0000000000..1f51390eb5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters2html.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <title>Example</title>
+ <link href="allowedcharacters2htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <p>Login names can only use letters from A to Z (upper or lowercase)
+ and the character underscore (_) and minus (-).
+ For example: <code>Huck_Finn</code>.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters2htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters2htmlrules.xml
new file mode 100644
index 0000000000..a9667e0c07
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters2htmlrules.xml
@@ -0,0 +1,3 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:allowedCharactersRule allowedCharacters="[a-zA-Z_\-]" selector="//h:p/h:code"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters3html.html b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters3html.html
new file mode 100644
index 0000000000..4b6533bc51
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters3html.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Example</title>
+ <link href="allowedcharacters3htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <p>Login names can only use letters from A to Z (upper or lowercase)
+ and the character underscore (_) and minus (-).
+ For example: <code id="name">Huck_Finn</code>.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters3htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters3htmlrules.xml
new file mode 100644
index 0000000000..7e490ba52f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters3htmlrules.xml
@@ -0,0 +1,4 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="allowedcharsParam">name</its:param>
+ <its:allowedCharactersRule allowedCharacters="[a-zA-Z_\-]" selector="//h:p/h:code[@id=$allowedcharsParam]"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters4html.html b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters4html.html
new file mode 100644
index 0000000000..ae78589154
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/html/allowedcharacters4html.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Example</title>
+ <script type="application/its+xml">
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="acParam">name</its:param>
+ <its:allowedCharactersRule allowedCharacters="[a-zA-Z_\-]" selector="//h:code[@id=$acParam]"/>
+ </its:rules>
+ </script>
+ </head>
+ <body>
+ <p>Login names can only use letters from A to Z (upper or lowercase)
+ and the character underscore (_) and minus (-).
+ For example: <code id="name">Huck_Finn</code>.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters1xml.xml
new file mode 100644
index 0000000000..0188ef8008
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters1xml.xml
@@ -0,0 +1,12 @@
+<myRes xmlns:its="http://www.w3.org/2005/11/its">
+ <head>
+ <its:rules version="2.0">
+ <its:allowedCharactersRule allowedCharacters="[^*+]" selector="//content"/>
+ </its:rules>
+ </head>
+ <body>
+ <content>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
+ nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed
+ diam voluptua.</content>
+ </body>
+</myRes>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters2xml.xml
new file mode 100644
index 0000000000..0f44ccf22f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters2xml.xml
@@ -0,0 +1,9 @@
+<res xmlns:its="http://www.w3.org/2005/11/its">
+ <head>
+ <its:rules version="2.0">
+ <its:allowedCharactersRule selector="//record" allowedCharactersPointer="@set"/>
+ </its:rules>
+ </head>
+ <record id="a1" set="[ &#xFF01;–&#xFF5E;]">FULL WIDTH ONLY</record>
+</res>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters3xml.xml
new file mode 100644
index 0000000000..21fae03267
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters3xml.xml
@@ -0,0 +1,10 @@
+<myRes xmlns:its="http://www.w3.org/2005/11/its">
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:type="simple" xlink:href="allowedcharacters3xmlrules.xml"/>
+ </head>
+ <body>
+ <content>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
+ nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed
+ diam voluptua.</content>
+ </body>
+</myRes>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters3xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters3xmlrules.xml
new file mode 100644
index 0000000000..4b624c4126
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters3xmlrules.xml
@@ -0,0 +1,3 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:allowedCharactersRule allowedCharacters="[^*+]" selector="//content"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters4xml.xml
new file mode 100644
index 0000000000..49dceddc84
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters4xml.xml
@@ -0,0 +1,7 @@
+<res xmlns:its="http://www.w3.org/2005/11/its">
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:type="simple" xlink:href="allowedcharacters4xmlrules.xml"/>
+ </head>
+ <record id="a1" set="[ &#xFF01;–&#xFF5E;]">FULL WIDTH ONLY</record>
+</res>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters4xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters4xmlrules.xml
new file mode 100644
index 0000000000..b45129a57d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters4xmlrules.xml
@@ -0,0 +1,3 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:allowedCharactersRule selector="//record" allowedCharactersPointer="@set"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters5xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters5xml.xml
new file mode 100644
index 0000000000..1f1ebb0ea0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters5xml.xml
@@ -0,0 +1,4 @@
+<messages xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <msg num="123">Click the <panelmsg its:allowedCharacters="[&#x0020;-&#x00FE;]"
+ >CONTINUE</panelmsg> Button on the printer panel</msg>
+</messages>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters6xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters6xml.xml
new file mode 100644
index 0000000000..0dc1a9945d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters6xml.xml
@@ -0,0 +1,3 @@
+<messages xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <msg num="123">Click the <its:span allowedCharacters="[&#x0020;-&#x00FE;]">CONTINUE</its:span> Button on the printer panel</msg>
+</messages>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters7xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters7xml.xml
new file mode 100644
index 0000000000..168de572ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters7xml.xml
@@ -0,0 +1,10 @@
+<myRes xmlns:its="http://www.w3.org/2005/11/its">
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:type="simple" xlink:href="allowedcharacters7xmlrules.xml"/>
+ </head>
+ <body>
+ <content id="allowedchar">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
+ nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed
+ diam voluptua.</content>
+ </body>
+</myRes>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters7xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters7xmlrules.xml
new file mode 100644
index 0000000000..c030ff0720
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters7xmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="allowedcharParam">allowedchar</its:param>
+ <its:allowedCharactersRule allowedCharacters="[^*+]" selector="//content[@id=$allowedcharParam]"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters8xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters8xml.xml
new file mode 100644
index 0000000000..a6d2aa6d9a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/allowedcharacters/xml/allowedcharacters8xml.xml
@@ -0,0 +1,13 @@
+<myRes xmlns:its="http://www.w3.org/2005/11/its">
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="allowedcharParam">allowedchar</its:param>
+ <its:allowedCharactersRule allowedCharacters="[^*+]" selector="//content[@id=$allowedcharParam]"/>
+</its:rules>
+ </head>
+ <body>
+ <content id="allowedchar">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
+ nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed
+ diam voluptua.</content>
+ </body>
+</myRes>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir1html.html b/testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir1html.html
new file mode 100644
index 0000000000..d79fd7fa5b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir1html.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <title>Directionality</title>
+ </head>
+ <body>
+ <p>In Hebrew, the title <q lang="he"
+ dir="rtl">פעילות הבינאום, W3C</q>
+ means "Internationalization Activity, W3C".</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir2html.html b/testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir2html.html
new file mode 100644
index 0000000000..562676dcfc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir2html.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <title>Directionality</title>
+ <script type="application/its+xml">
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:dirRule selector="//h:*[@class='rtLeft']" dir="rtl" />
+ </its:rules>
+ </script>
+ </head>
+ <body>
+ <p>In Hebrew, the title <q lang="he"
+ class="rtLeft">פעילות הבינאום, W3C</q>
+ means "Internationalization Activity, W3C".</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir3html.html b/testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir3html.html
new file mode 100644
index 0000000000..5764c6bc53
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir3html.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <title>Directionality</title>
+ <link href="dir3htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <p>In Hebrew, the title <q lang="he"
+ class="rtLeft">פעילות הבינאום, W3C</q>
+ means "Internationalization Activity, W3C".</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir3htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir3htmlrules.xml
new file mode 100644
index 0000000000..8e1c97b07a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir3htmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="dirParam">rtLeft</its:param>
+ <its:dirRule selector="//h:*[@class=$dirParam]" dir="rtl" />
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir4html.html b/testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir4html.html
new file mode 100644
index 0000000000..1d3ed6e154
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/directionality/html/dir4html.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <title>Directionality</title>
+ <script type="application/its+xml">
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="dirParam">rtLeft</its:param>
+ <its:dirRule selector="//h:*[@class=$dirParam]" dir="rtl" />
+ </its:rules>
+ </script>
+ </head>
+ <body>
+ <p>In Hebrew, the title <q lang="he"
+ class="rtLeft">פעילות הבינאום, W3C</q>
+ means "Internationalization Activity, W3C".</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir1xml.xml
new file mode 100644
index 0000000000..8962c0c06e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir1xml.xml
@@ -0,0 +1,12 @@
+<text xml:lang="en">
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:dirRule dir="rtl" selector="//*[@direction='rtlText']"/>
+ </its:rules>
+ </head>
+ <body>
+ <par>In Hebrew, the title <quote xml:lang="he"
+ direction="rtlText">פעילות הבינאום, W3C</quote>
+ means <quote>Internationalization Activity, W3C</quote>.</par>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir2xml.xml
new file mode 100644
index 0000000000..da98efb781
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir2xml.xml
@@ -0,0 +1,11 @@
+<text xml:lang="en">
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="dir2xmlrules.xml" />
+ </head>
+ <body>
+ <par>In Hebrew, the title <quote xml:lang="he"
+ direction="rtlText">פעילות הבינאום, W3C</quote>
+ means <quote>Internationalization Activity, W3C</quote>.</par>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir2xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir2xmlrules.xml
new file mode 100644
index 0000000000..42b2feb006
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir2xmlrules.xml
@@ -0,0 +1,3 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:dirRule dir="rtl" selector="//*[@direction='rtlText']"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir3xml.xml
new file mode 100644
index 0000000000..d7f1805d6c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir3xml.xml
@@ -0,0 +1,7 @@
+<text xml:lang="en" xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <body>
+ <par>In Arabic, the title <quote xml:lang="ar"
+ its:dir="rtl">نشاط التدويل، W3C</quote>
+ means <quote>Internationalization Activity, W3C</quote>.</par>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir4xml.xml
new file mode 100644
index 0000000000..1a0b77ca8e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir4xml.xml
@@ -0,0 +1,6 @@
+<text xml:lang="en" xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <body>
+ <par>In Arabic, the title "<its:span xml:lang="ar" dir="rtl">نشاط التدويل، W3C</its:span>"
+ means "Internationalization Activity, W3C".</par>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir5xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir5xml.xml
new file mode 100644
index 0000000000..b8c56ac211
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir5xml.xml
@@ -0,0 +1,13 @@
+<text xml:lang="en">
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="dirParam">rtlText</its:param>
+ <its:dirRule dir="rtl" selector="//*[@direction=$dirParam]"/>
+ </its:rules>
+ </head>
+ <body>
+ <par>In Hebrew, the title <quote xml:lang="he"
+ direction="rtlText">פעילות הבינאום, W3C</quote>
+ means <quote>Internationalization Activity, W3C</quote>.</par>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir6xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir6xml.xml
new file mode 100644
index 0000000000..0d60fb0cc2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir6xml.xml
@@ -0,0 +1,11 @@
+<text xml:lang="en">
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="dir6xmlrules.xml" />
+ </head>
+ <body>
+ <par>In Hebrew, the title <quote xml:lang="he"
+ direction="rtlText">פעילות הבינאום, W3C</quote>
+ means <quote>Internationalization Activity, W3C</quote>.</par>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir6xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir6xmlrules.xml
new file mode 100644
index 0000000000..8ade2458f8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/directionality/xml/dir6xmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="dirParam">rtlText</its:param>
+ <its:dirRule dir="rtl" selector="//*[@direction=$dirParam]"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain1html.html b/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain1html.html
new file mode 100644
index 0000000000..2bb5d4b265
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain1html.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <link href="domain1htmlrules.xml" rel="its-rules">
+ <meta name="keywords" content="automotive">
+ <title>Domain HTML</title>
+ </head>
+ <body>
+ <p>The new car from XYZ - buy it now!</p>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain1htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain1htmlrules.xml
new file mode 100644
index 0000000000..9387be964b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain1htmlrules.xml
@@ -0,0 +1,5 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:domainRule selector="/h:html/h:body"
+ domainPointer="/h:html/h:head/h:meta[@name='keywords']/@content"/>
+ </its:rules>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain2html.html b/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain2html.html
new file mode 100644
index 0000000000..82a8151c63
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain2html.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <link href="domain2htmlrules.xml" rel="its-rules">
+ <meta name="keywords" content="automotive">
+ <title>Domain HTML</title>
+ </head>
+ <body>
+ <p>The new car from XYZ - buy it now!</p>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain2htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain2htmlrules.xml
new file mode 100644
index 0000000000..4446ffb6a0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain2htmlrules.xml
@@ -0,0 +1,6 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:domainRule selector="/h:html/h:body"
+ domainPointer="/h:html/h:head/h:meta[@name='keywords']/@content"
+ domainMapping="automotive auto, medical medicine, 'criminal law' law, 'property law' law"/>
+ </its:rules>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain3html.html b/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain3html.html
new file mode 100644
index 0000000000..3349ae50d6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain3html.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<link href="domain3htmlrules.xml" rel="its-rules">
+<meta name="keywords" content="sports law">
+<title>Sports law</title>
+</head>
+<body>
+<p>
+Sports law is an umbrella term used to describe the legal issues at work in the world of both amateur and professional sports.
+</p>
+<p>
+Sports law overlaps substantially with labor law, contract law, competition or antitrust law, and tort law.
+</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain3htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain3htmlrules.xml
new file mode 100644
index 0000000000..89aed8f1a0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain3htmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:param name="domainParam">keywords</its:param>
+<its:domainRule selector="/h:html/h:body" domainPointer="/h:html/h:head/h:meta[@name=$domainParam]/@content" domainMapping="'sports law' law, 'labor law' law, 'contract law' law, 'competition law' law,'tort law' law"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain4html.html b/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain4html.html
new file mode 100644
index 0000000000..7ae79aaaad
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/domain/html/domain4html.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<meta name="keywords" content="SPORTS LAW, Judicial Matters">
+<meta property="mykeywords" content="Sport, Law">
+<script type="application/its+xml">
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:param name="domainParam">keywords</its:param>
+<its:domainRule selector="/h:html/h:body" domainPointer="/h:html/h:head/h:meta[@property='mykeywords' or @name=$domainParam]/@content" domainMapping="'sports law' LAW, 'labor law' LAW, 'contract law' LAW, 'competition law' LAW,'tort law' LAW"/>
+</its:rules>
+</script>
+<title>Sports law</title>
+</head>
+<body>
+<p>Some text about sport and law.</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain1xml.xml
new file mode 100644
index 0000000000..b3fd0f716d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain1xml.xml
@@ -0,0 +1,13 @@
+<doc>
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:domainRule selector="/doc/body"
+ domainPointer="/doc/head/meta[@name='DC.subject']/@content"
+ />
+ </its:rules>
+ <meta name="DC.subject" content="automotive"/>
+ </head>
+ <body>
+ <p>The new car from XYZ - buy it now!</p>
+ </body>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain2xml.xml
new file mode 100644
index 0000000000..2c7674a247
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain2xml.xml
@@ -0,0 +1,14 @@
+<doc>
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:domainRule selector="/doc/body"
+ domainPointer="/doc/head/meta[@name='DC.subject']/@content"
+ domainMapping="automotive auto, 'criminal law' law, 'property law' law"
+ />
+ </its:rules>
+ <meta name="DC.subject" content="automotive"/>
+ </head>
+ <body>
+ <p>The new car from XYZ - buy it now!</p>
+ </body>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain4xml.xml
new file mode 100644
index 0000000000..c08211fca9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain4xml.xml
@@ -0,0 +1,10 @@
+<text>
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:href="domain4xmlrules.xml"/>
+ <meta name="DC.subject" content="sports law"/>
+ </head>
+ <body>
+ <p>Sports law is an umbrella term used to describe the legal issues at work in the world of both amateur and professional sports.</p>
+ <p>Sports law overlaps substantially with labor law, contract law, competition or antitrust law, and tort law.</p>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain4xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain4xmlrules.xml
new file mode 100644
index 0000000000..2660698c92
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain4xmlrules.xml
@@ -0,0 +1,6 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:domainRule selector="/text/body"
+ domainPointer="/text/head/meta[@name='DC.subject']/@content"
+ domainMapping="'sports law' law, 'labor law' law, 'contract law' law, 'competition law' law,'tort law' law"
+ />
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain5xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain5xml.xml
new file mode 100644
index 0000000000..8831dcb2bd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain5xml.xml
@@ -0,0 +1,17 @@
+<text>
+<head>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:type="simple" xlink:href="domain5xmlrules.xml"/>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+<its:domainRule selector="/text/body/span" domainPointer="/text/head/meta[@name='DC.type']/@content" domainMapping="'sports law' amateur"/>
+</its:rules>
+<meta name="DC.subject" content="sports law"/>
+<meta name="DC.type" content="sports law"/>
+</head>
+<body>
+<p>
+Sports law is an umbrella term used to describe the legal issues at work in the world of both amateur and professional sports.
+Sports law overlaps substantially with labor law, contract law, competition or antitrust law, and tort law.
+</p>
+<span id="amateursports">Unlike intercollegiate sports, international amateur sports are run by a variety of organizations. </span>
+</body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain5xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain5xmlrules.xml
new file mode 100644
index 0000000000..472b38c58b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain5xmlrules.xml
@@ -0,0 +1,6 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:domainRule selector="/text/body"
+ domainPointer="/text/head/meta[@name='DC.subject']/@content"
+ domainMapping="'sports law' law,'labor law' law,'contract law' law,'competition law' law,'tort law' law"
+ />
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain6xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain6xml.xml
new file mode 100644
index 0000000000..c62de54ac9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain6xml.xml
@@ -0,0 +1,19 @@
+<text>
+<head>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+<its:param name="domainParam">DC.type</its:param>
+<its:domainRule selector="/text/body/p" domainPointer="/text/head/meta[@name=$domainParam]/@content" domainMapping="'Poetry literature' poetry"/>
+</its:rules>
+<meta name="DC.type" content="Poetry literature"/>
+</head>
+<body>
+<p>
+<span>
+A poem is a composition written in verse (although verse has also been used for epic and dramatic fiction).
+</span>
+<span>
+Poems make use of the aesthetic qualities of language to suggest differential meanings and to evoke emotive responses. Poems rely heavily on imagery and metaphor; they may have a rhythmic structure based on patterns of stresses (metric feet) or on patterns of different-length syllables (as in classical prosody); and they may or may not utilize rhyme.
+</span>
+</p>
+</body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain7xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain7xml.xml
new file mode 100644
index 0000000000..472cbb7553
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain7xml.xml
@@ -0,0 +1,16 @@
+<text>
+<head>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:href="domain7xmlrules.xml"/>
+<meta name="DC.type" content="Poetry literature"/>
+</head>
+<body>
+<p>
+<span>
+A poem is a composition written in verse (although verse has also been used for epic and dramatic fiction).
+</span>
+<span>
+Poems make use of the aesthetic qualities of language to suggest differential meanings and to evoke emotive responses. Poems rely heavily on imagery and metaphor; they may have a rhythmic structure based on patterns of stresses (metric feet) or on patterns of different-length syllables (as in classical prosody); and they may or may not utilize rhyme.
+</span>
+</p>
+</body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain7xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain7xmlrules.xml
new file mode 100644
index 0000000000..b9e17bd700
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/domain/xml/domain7xmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+<its:param name="domainParam">DC.type</its:param>
+<its:domainRule selector="/text/body/p" domainPointer="/text/head/meta[@name=$domainParam]/@content" domainMapping="'Poetry literature' poetry"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext1html.html b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext1html.html
new file mode 100644
index 0000000000..f3a56b5717
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext1html.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <link href="withintext1htmlrules.xml" rel="its-rules">
+ <title>Appaloosa</title>
+ </head>
+ <body>
+ <section itemscope>
+ <h2>keywords</h2>
+ <span itemprop="keyword">horse</span>
+ <span itemprop="keyword">appaloosa</span>
+ </section>
+ <p itemscope>
+ The Appaloosa
+ <cite>
+ The name comes from "Palouse horse" in reference to the Palouse River in Northern Idaho.
+ </cite>
+ are rugged horses originally breed by the
+ <span itemprop="keyword">Nez-Perce</span>
+ tribe in the US Northwest.
+ </p>
+ <p>
+ They are often characterized by their spotted coats, as shown here:
+ <img src="appaloosa.png" alt="Appaloosa horses">
+ </p>
+<!--footer-->
+ <p>
+ Copyright:
+ <em>Zebulon Inc.</em>
+ </p>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext1htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext1htmlrules.xml
new file mode 100644
index 0000000000..5d49bbcd5b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext1htmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:withinTextRule selector="//h:cite" withinText="nested"/>
+</its:rules>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext2html.html b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext2html.html
new file mode 100644
index 0000000000..ed7e06095f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext2html.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <title>Within text test: Default</title>
+ </head>
+ <body>
+ <p>Text with <span its-within-text="YES">bold</span>.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext3html.html b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext3html.html
new file mode 100644
index 0000000000..9079e6f2ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext3html.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <link href="withintext3htmlrules.xml" rel="its-rules">
+ <title>Appaloosa</title>
+ </head>
+ <body>
+ <section itemscope>
+ <h2>keywords</h2>
+ <span itemprop="firstkeyword">horse</span>
+ <span itemprop="secondkeyword">appaloosa</span>
+ </section>
+ <p itemscope>
+ The Appaloosa
+ <cite>
+ The name comes from "Palouse horse" in reference to the Palouse River in Northern Idaho.
+ </cite>
+ are rugged horses originally breed by the
+ <span itemprop="keyword">Nez-Perce</span>
+ tribe in the US Northwest.
+ </p>
+ <p>
+ They are often characterized by their spotted coats, as shown here:
+ <img src="appaloosa.png" alt="Appaloosa horses">
+ </p>
+<!--footer-->
+ <p>
+ Copyright:
+ <em>Zebulon Inc.</em>
+ </p>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext3htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext3htmlrules.xml
new file mode 100644
index 0000000000..127dea6b73
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext3htmlrules.xml
@@ -0,0 +1,5 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:param name="withinTextParam">firstkeyword</its:param>
+<its:withinTextRule selector="//h:cite" withinText="nested"/>
+<its:withinTextRule selector="//h:section/h:span[@itemprop=$withinTextParam]" withinText="no"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext4html.html b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext4html.html
new file mode 100644
index 0000000000..5458106525
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/html/withintext4html.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+<script type="application/its+xml">
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:param name="withinparam">copyright</its:param>
+<its:withinTextRule selector="//h:cite" withinText="nested"/>
+<its:withinTextRule selector="//h:p[@id=$withinparam]" withinText="yes"/>
+</its:rules>
+</script>
+ <meta charset=utf-8>
+ <title>Appaloosa</title>
+ </head>
+ <body>
+ <section itemscope>
+ <h2>keywords</h2>
+ <span itemprop="keyword">horse</span>
+ <span itemprop="keyword">appaloosa</span>
+ </section>
+ <p itemscope>
+ The Appaloosa
+ <cite>
+ The name comes from "Palouse horse" in reference to the Palouse River in Northern Idaho.
+ </cite>
+ are rugged horses originally breed by the
+ <span itemprop="keyword">Nez-Perce</span>
+ tribe in the US Northwest.
+ </p>
+ <p>
+ They are often characterized by their spotted coats, as shown here:
+ <img src="appaloosa.png" alt="Appaloosa horses">
+ </p>
+<!--footer-->
+ <p id="copyright">
+ Copyright:
+ <em>Zebulon Inc.</em>
+ </p>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext1xml.xml
new file mode 100644
index 0000000000..c4a44fc7b8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext1xml.xml
@@ -0,0 +1,12 @@
+<doc>
+ <head>
+ <its:rules version="2.0" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:withinTextRule withinText="yes" selector="//b|//u|//i"/>
+ <its:withinTextRule withinText="nested" selector="//fn"/>
+ </its:rules>
+ </head>
+ <body>
+ <p>This is a paragraph with <b>bold</b>, <i>italic</i>, and <u>underlined</u>.</p>
+ <p>This is a paragraph with a footnote<fn>This is the text of the footnote</fn> at the middle.</p>
+ </body>
+ </doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext2xml.xml
new file mode 100644
index 0000000000..c0d0810679
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext2xml.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<myDocument xmlns="http://my.DocumentURI/" xml:lang="en">
+ <prolog>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="withintext2xmlrules.xml"
+ xmlns:d="http://my.DocumentURI/">
+ <its:withinTextRule selector="//d:keywords/d:kw" withinText="no"/>
+</its:rules>
+ <author>Zebulon Fairfield</author>
+ <version>version 12, revision 2 - 2006-08-14</version>
+ <keywords><kw>horse</kw><kw>appaloosa</kw></keywords>
+ <storageKey>articles-6D272BA9-3B89CAD8</storageKey>
+ </prolog>
+ <content>
+ <section>
+ <title>Appaloosa</title>
+ <p>The Appaloosa<fnote>The name comes from "Palouse horse" in reference
+ to the Palouse River in Northern Idaho.</fnote> are rugged horses
+ originally breed by the <kw>Nez-Perce</kw> tribe in the US Northwest.</p>
+ <p>They are often characterized by their spotted coats, as shown
+ here: <img src="appaloosa.png" alt="Appaloosa horses"/></p>
+ </section>
+ <footer><p>Copyright: <em>Zebulon Inc.</em></p></footer>
+ </content>
+</myDocument>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext2xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext2xmlrules.xml
new file mode 100644
index 0000000000..539af5b1e7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext2xmlrules.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0"
+ xmlns:d="http://my.DocumentURI/">
+ <its:withinTextRule selector="//d:kw|//d:img|//d:em" withinText="yes"/>
+ <its:withinTextRule selector="//d:fnote" withinText="nested"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext3xml.xml
new file mode 100644
index 0000000000..66debdc8f9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext3xml.xml
@@ -0,0 +1,11 @@
+<text xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <prolog>
+ <title its:withinText="no">Designing User Interfaces</title>
+ <author its:withinText="no">Janice Prakash</author>
+ <keywords its:withinText="no">user interface, ui, software interface</keywords>
+ </prolog>
+ <body>
+ <p>The book <title its:withinText="yes">Of Mice and Screens</title> by <author its:withinText="yes">Aldus
+ Brandywine</author> is one of the best introductions to the vast topic of designing user interfaces.</p>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext4xml.xml
new file mode 100644
index 0000000000..1a4b3725f6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext4xml.xml
@@ -0,0 +1,12 @@
+<text xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <prolog>
+ <its:span withinText="no">Designing User Interfaces</its:span>
+ <its:span withinText="no">Janice Prakash</its:span>
+ <its:span withinText="no">user interface, ui, software interface</its:span>
+ </prolog>
+ <body>
+ <p>The book <its:span withinText="yes">Of Mice and Screens</its:span> by <its:span withinText="yes">Aldus
+ Brandywine</its:span> is one of the best introductions to the vast topic of designing user interfaces.</p>
+ </body>
+</text>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext5xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext5xml.xml
new file mode 100644
index 0000000000..37db106f6c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext5xml.xml
@@ -0,0 +1,25 @@
+<doc>
+<head>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+<its:param name="withinTextParam">footnote</its:param>
+<its:withinTextRule withinText="yes" selector="//b|//u|//i"/>
+<its:withinTextRule withinText="nested" selector="//fn[@id=$withinTextParam]"/>
+</its:rules>
+</head>
+<body>
+<p>
+This is a paragraph with
+<b>bold</b>
+,
+<i>italic</i>
+, and
+<u>underlined</u>
+.
+</p>
+<p>
+This is a paragraph with a footnote
+<fn id="footnote">This is the text of the footnote</fn>
+at the middle.
+</p>
+</body>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext6xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext6xml.xml
new file mode 100644
index 0000000000..b96c3e9023
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext6xml.xml
@@ -0,0 +1,21 @@
+<doc>
+<head>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:href="withintext6xmlrules.xml"/>
+</head>
+<body>
+<p>
+This is a paragraph with
+<b>bold</b>
+,
+<i>italic</i>
+, and
+<u>underlined</u>
+.
+</p>
+<p>
+This is a paragraph with a footnote
+<fn id="footnote">This is the text of the footnote</fn>
+at the middle.
+</p>
+</body>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext6xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext6xmlrules.xml
new file mode 100644
index 0000000000..6f41dd0429
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/elementswithintext/xml/withintext6xmlrules.xml
@@ -0,0 +1,5 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+<its:param name="withinTextParam">footnote</its:param>
+<its:withinTextRule withinText="yes" selector="//b|//u|//i"/>
+<its:withinTextRule withinText="nested" selector="//fn[@id=$withinTextParam]"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource1html.html b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource1html.html
new file mode 100644
index 0000000000..2ee1436733
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource1html.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <meta charset=utf-8>
+ <link href="externalresource1htmlrules.xml" rel="its-rules">
+ <title>Video element example</title>
+ </head>
+ <body>
+ <video
+ width="640"
+ height="360"
+ src="http://www.example.com/video/v2.mp"
+ poster="video-image.png">If your browser doesn't support the <code>video</code> element, you can <a href="http://www.example.com/video/v2.mp">download the video</a> instead.</video>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource1htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource1htmlrules.xml
new file mode 100644
index 0000000000..21608edb30
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource1htmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:externalResourceRefRule selector="//h:video/@src" externalResourceRefPointer="."/>
+ <its:externalResourceRefRule selector="//h:video/@poster" externalResourceRefPointer="."/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource2html.html b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource2html.html
new file mode 100644
index 0000000000..79250b87a8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource2html.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <meta charset=utf-8>
+ <link href="externalresource2htmlrules.xml" rel="its-rules">
+ <title>Video element example</title>
+ </head>
+ <body>
+ <p id='1'>
+ <video
+ width="640"
+ height="360"
+ src="http://www.example.com/video/v2.mp3"
+ poster="video-image.png">If your browser doesn't support the <code>video</code> element, you can <a href="http://www.example.com/video/v2.mp3">download the video</a> instead.</video>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource2htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource2htmlrules.xml
new file mode 100644
index 0000000000..34c66b5ec4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource2htmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="externalresourceParam">1</its:param>
+ <its:externalResourceRefRule selector="//h:p[@id=$externalresourceParam]/h:video" externalResourceRefPointer="@poster"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource3html.html b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource3html.html
new file mode 100644
index 0000000000..98c13a12e8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/html/externalresource3html.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <script type="application/its+xml">
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="externalresourceParam">video-image.png</its:param>
+ <its:externalResourceRefRule selector="//h:video[@poster=$externalresourceParam]" externalResourceRefPointer="@src"/>
+ </its:rules>
+ </script>
+ <meta charset=utf-8>
+ <title>Video element example</title>
+ </head>
+ <body>
+ <video
+ width="640"
+ height="360"
+ src="http://www.example.com/video/v2.mp"
+ poster="video-image.png">If your browser doesn't support the <code>video</code> element, you can <a href="http://www.example.com/video/v2.mp">download the video</a> instead.</video>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource1xml.xml
new file mode 100644
index 0000000000..51b640e7eb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource1xml.xml
@@ -0,0 +1,24 @@
+<doc
+ xmlns:its="http://www.w3.org/2005/11/its"
+ xmlns:dbk="http://docbook.org/ns/docbook" >
+ <its:rules version="2.0">
+ <its:externalResourceRefRule selector="//dbk:imagedata | //dbk:audiodata | //dbk:videodata" externalResourceRefPointer="@fileref"/>
+ </its:rules>
+ <dbk:mediaobject>
+ <dbk:videoobject>
+ <dbk:videodata fileref="movie.avi"/>
+ </dbk:videoobject>
+ <dbk:imageobject>
+ <dbk:imagedata fileref="movie-frame.gif"/>
+ </dbk:imageobject>
+ <dbk:textobject>
+ <dbk:para>This video illustrates the proper way to assemble an inverting time distortion
+ device. </dbk:para>
+ <dbk:warning>
+ <dbk:para> It is imperative that the primary and secondary temporal couplings not be
+ mounted in the wrong order. Temporal catastrophe is the likely result. The
+ future you destroy may be your own. </dbk:para>
+ </dbk:warning>
+ </dbk:textobject>
+ </dbk:mediaobject>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource2xml.xml
new file mode 100644
index 0000000000..818766d0ec
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource2xml.xml
@@ -0,0 +1,22 @@
+<doc
+ xmlns:its="http://www.w3.org/2005/11/its"
+ xmlns:dbk="http://docbook.org/ns/docbook" >
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:href="externalresource2xmlrules.xml"/>
+ <dbk:mediaobject>
+ <dbk:videoobject>
+ <dbk:videodata fileref="movie.avi"/>
+ </dbk:videoobject>
+ <dbk:imageobject>
+ <dbk:imagedata fileref="movie-frame.gif"/>
+ </dbk:imageobject>
+ <dbk:textobject>
+ <dbk:para>This video illustrates the proper way to assemble an inverting time distortion
+ device. </dbk:para>
+ <dbk:warning>
+ <dbk:para> It is imperative that the primary and secondary temporal couplings not be
+ mounted in the wrong order. Temporal catastrophe is the likely result. The
+ future you destroy may be your own. </dbk:para>
+ </dbk:warning>
+ </dbk:textobject>
+ </dbk:mediaobject>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource2xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource2xmlrules.xml
new file mode 100644
index 0000000000..718135f5e3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource2xmlrules.xml
@@ -0,0 +1,3 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:dbk="http://docbook.org/ns/docbook" version="2.0">
+ <its:externalResourceRefRule selector="//dbk:imagedata | //dbk:audiodata | //dbk:videodata" externalResourceRefPointer="@fileref"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource3xml.xml
new file mode 100644
index 0000000000..0528bb9c63
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource3xml.xml
@@ -0,0 +1,28 @@
+<doc
+ xmlns:its="http://www.w3.org/2005/11/its"
+ xmlns:dbk="http://docbook.org/ns/docbook" >
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:href="externalresource3xmlrules.xml"/>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:dbk="http://docbook.org/ns/docbook" version="2.0">
+ <its:externalResourceRefRule selector="//dbk:audiodata" externalResourceRefPointer="@fileref"/>
+ </its:rules>
+ <dbk:mediaobject>
+ <dbk:videoobject>
+ <dbk:videodata fileref="movie.avi"/>
+ </dbk:videoobject>
+ <dbk:audioobject>
+ <dbk:audiodata fileref="movie.mp3"/>
+ </dbk:audioobject>
+ <dbk:imageobject>
+ <dbk:imagedata fileref="movie-frame.gif"/>
+ </dbk:imageobject>
+ <dbk:textobject>
+ <dbk:para>This video illustrates the proper way to assemble an inverting time distortion
+ device. </dbk:para>
+ <dbk:warning>
+ <dbk:para> It is imperative that the primary and secondary temporal couplings not be
+ mounted in the wrong order. Temporal catastrophe is the likely result. The
+ future you destroy may be your own. </dbk:para>
+ </dbk:warning>
+ </dbk:textobject>
+ </dbk:mediaobject>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource3xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource3xmlrules.xml
new file mode 100644
index 0000000000..383781cece
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource3xmlrules.xml
@@ -0,0 +1,3 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:dbk="http://docbook.org/ns/docbook" version="2.0">
+ <its:externalResourceRefRule selector="//dbk:imagedata | //dbk:videodata" externalResourceRefPointer="@fileref"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource4xml.xml
new file mode 100644
index 0000000000..76df2ccd97
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource4xml.xml
@@ -0,0 +1,25 @@
+<doc
+ xmlns:its="http://www.w3.org/2005/11/its"
+ xmlns:dbk="http://docbook.org/ns/docbook" >
+ <its:rules version="2.0">
+ <its:param name="externalResourceParam">movie-frame.gif</its:param>
+ <its:externalResourceRefRule selector="//dbk:imagedata[@fileref=$externalResourceParam]" externalResourceRefPointer="@fileref"/>
+ </its:rules>
+ <dbk:mediaobject>
+ <dbk:videoobject>
+ <dbk:videodata fileref="movie.avi"/>
+ </dbk:videoobject>
+ <dbk:imageobject>
+ <dbk:imagedata fileref="movie-frame.gif"/>
+ </dbk:imageobject>
+ <dbk:textobject>
+ <dbk:para>This video illustrates the proper way to assemble an inverting time distortion
+ device. </dbk:para>
+ <dbk:warning>
+ <dbk:para> It is imperative that the primary and secondary temporal couplings not be
+ mounted in the wrong order. Temporal catastrophe is the likely result. The
+ future you destroy may be your own. </dbk:para>
+ </dbk:warning>
+ </dbk:textobject>
+ </dbk:mediaobject>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource5xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource5xml.xml
new file mode 100644
index 0000000000..d3e376467e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource5xml.xml
@@ -0,0 +1,20 @@
+<doc xmlns:dbk="http://docbook.org/ns/docbook" >
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:href="externalresource5xmlrules.xml"/>
+ <dbk:mediaobject>
+ <dbk:videoobject>
+ <dbk:videodata fileref="movie.avi"/>
+ </dbk:videoobject>
+ <dbk:imageobject>
+ <dbk:imagedata fileref="movie-frame.gif"/>
+ </dbk:imageobject>
+ <dbk:textobject>
+ <dbk:para>This video illustrates the proper way to assemble an inverting time distortion
+ device. </dbk:para>
+ <dbk:warning>
+ <dbk:para> It is imperative that the primary and secondary temporal couplings not be
+ mounted in the wrong order. Temporal catastrophe is the likely result. The
+ future you destroy may be your own. </dbk:para>
+ </dbk:warning>
+ </dbk:textobject>
+ </dbk:mediaobject>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource5xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource5xmlrules.xml
new file mode 100644
index 0000000000..01209738e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/externalresource/xml/externalresource5xmlrules.xml
@@ -0,0 +1,5 @@
+<its:rules version="2.0" xmlns:its="http://www.w3.org/2005/11/its"
+ xmlns:dbk="http://docbook.org/ns/docbook">
+ <its:param name="externalResourceParam">movie-frame.gif</its:param>
+ <its:externalResourceRefRule selector="//dbk:imagedata[@fileref=$externalResourceParam]" externalResourceRefPointer="@fileref"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue1html.html b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue1html.html
new file mode 100644
index 0000000000..85ce27f1db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue1html.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Id Value</title>
+ <link href="idvalue1htmlrules.xml" rel="its-rules">
+</head>
+<body>
+ <p id="settingsMissing">
+ <b id="text">Can't find settings file.</b>
+ <var id="desc">The module cannot find the default settings file.
+ You need to re-initialize the system.</var>
+ </p>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue1htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue1htmlrules.xml
new file mode 100644
index 0000000000..fb049999c4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue1htmlrules.xml
@@ -0,0 +1,6 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:idValueRule selector="//h:p" idValue="@id"/>
+ <its:idValueRule selector="//h:b" idValue="@id"/>
+ <its:idValueRule selector="//h:var" idValue="@id"/>
+</its:rules>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue2html.html b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue2html.html
new file mode 100644
index 0000000000..44197abbd9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue2html.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Id Value</title>
+ <link href="idvalue2htmlrules.xml" rel="its-rules">
+</head>
+<body>
+ <p id="settingsMissing">
+ <b id="text">Can't find settings file.</b>
+ <var id="desc">The module cannot find the default settings file.
+ You need to re-initialize the system.</var>
+ <b id="crashtext">This computer is now crashing GOODBYE!!</b>
+ </p>
+</body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue2htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue2htmlrules.xml
new file mode 100644
index 0000000000..942af0dbe9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue2htmlrules.xml
@@ -0,0 +1,7 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="idvalueparam">text</its:param>
+ <its:idValueRule selector="//h:p" idValue="@id"/>
+ <its:idValueRule selector="//h:b[@id=$idvalueparam]" idValue="@id"/>
+ <its:idValueRule selector="//h:b[@id='crashtext']" idValue="@id"/>
+ <its:idValueRule selector="//h:var" idValue="@id"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue3html.html b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue3html.html
new file mode 100644
index 0000000000..4030307b1e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/html/idvalue3html.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <script type="application/its+xml">
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="idvalueparam">text</its:param>
+ <its:idValueRule selector="//h:p" idValue="@id"/>
+ <its:idValueRule selector="//h:b[@id=$idvalueparam]" idValue="@id"/>
+ <its:idValueRule selector="//h:var" idValue="@id"/>
+ </its:rules>
+ </script>
+ <meta charset=utf-8>
+ <title>Id Value</title>
+</head>
+<body>
+ <p id="settingsMissing">
+ <b id="text">Can't find settings file.</b>
+ <var id="desc">The module cannot find the default settings file.
+ You need to re-initialize the system.</var>
+ </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue1xml.xml
new file mode 100644
index 0000000000..8b2869b12a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue1xml.xml
@@ -0,0 +1,20 @@
+<resource
+ xmlns:its="http://www.w3.org/2005/11/its" >
+ <its:rules version="2.0">
+ <its:idValueRule selector="//text" idValue="../@name"/>
+ </its:rules>
+<webform>
+ <entry name="btn.OK">
+ <text>OK</text>
+ <pos>1, 1</pos>
+ <trig>sendOK</trig>
+ </entry>
+</webform>
+<webform>
+ <entry name="btn.CANCEL">
+ <text>Cancel</text>
+ <pos>2, 1</pos>
+ <trig>cancelAll</trig>
+ </entry>
+</webform>
+</resource>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue2xml.xml
new file mode 100644
index 0000000000..a27ad31d8d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue2xml.xml
@@ -0,0 +1,4 @@
+<file>
+ <res name="retryBtn" xml:id="btnAgain">Try Again</res>
+ <res name="retryTip">click this to re-run the process with the current settings.</res>
+</file>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue3xml.xml
new file mode 100644
index 0000000000..6b19c6378b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue3xml.xml
@@ -0,0 +1,13 @@
+<resource>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:href="idvalue3xmlrules.xml"/>
+ <entry name="btn.OK">
+ <text>OK</text>
+ <pos>1, 1</pos>
+ <trig>sendOK</trig>
+ </entry>
+ <entry name="btn.CANCEL">
+ <text>Cancel</text>
+ <pos>2, 1</pos>
+ <trig>cancelAll</trig>
+ </entry>
+</resource>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue3xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue3xmlrules.xml
new file mode 100644
index 0000000000..5ff498f766
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue3xmlrules.xml
@@ -0,0 +1,3 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:idValueRule selector="//entry" idValue="@name"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue4xml.xml
new file mode 100644
index 0000000000..909bfd270a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue4xml.xml
@@ -0,0 +1,17 @@
+<resource>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:href="idvalue4xmlrules.xml"/>
+ <webform id="1">
+ <entry name="btn.OK">
+ <text>OK</text>
+ <pos>1, 1</pos>
+ <trig>sendOK</trig>
+ </entry>
+ </webform>
+ <webform id="2">
+ <entry name="btn.CANCEL">
+ <text>Cancel</text>
+ <pos>2, 1</pos>
+ <trig>cancelAll</trig>
+ </entry>
+ </webform>
+</resource>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue4xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue4xmlrules.xml
new file mode 100644
index 0000000000..59e7325ec1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue4xmlrules.xml
@@ -0,0 +1,4 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="idvalueParam">1</its:param>
+ <its:idValueRule selector="//webform[@id=$idvalueParam]/entry" idValue="@name"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue5xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue5xml.xml
new file mode 100644
index 0000000000..4b356b09e2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/idvalue/xml/idvalue5xml.xml
@@ -0,0 +1,20 @@
+<resource>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="idvalueParam">1</its:param>
+ <its:idValueRule selector="//webform[@id=$idvalueParam]/entry" idValue="@name"/>
+ </its:rules>
+ <webform id="1">
+ <entry name="btn.OK">
+ <text>OK</text>
+ <pos>1, 1</pos>
+ <trig>sendOK</trig>
+ </entry>
+ </webform>
+ <webform id="2">
+ <entry name="btn.CANCEL">
+ <text>Cancel</text>
+ <pos>2, 1</pos>
+ <trig>cancelAll</trig>
+ </entry>
+ </webform>
+</resource>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo1html.html b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo1html.html
new file mode 100644
index 0000000000..3e1b981ee9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo1html.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+ <html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <link href="languageinfo1htmlrules.xml" rel="its-rules">
+ <title>EXAMPLE</title>
+ </head>
+ <body>
+ <p>The motto of Québec is:
+ <q lang="fr-CA">Je me souviens</q>
+ .</p>
+ <p>La devise du Québec est :
+ <q lang="fr-CA">Je me souviens</q>
+ .</p>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo1htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo1htmlrules.xml
new file mode 100644
index 0000000000..d6bfe44e06
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo1htmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:langRule selector="/h:*" langPointer="@lang"/>
+<its:langRule selector="//h:q" langPointer="@lang"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo2html.html b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo2html.html
new file mode 100644
index 0000000000..3d577cf9a1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo2html.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <link href="languageinfo2htmlrules.xml" rel="its-rules">
+ <title>EXAMPLE</title>
+ </head>
+ <body>
+ <p>The motto of Québec is:
+ <q lang="fr-CA">Je me souviens</q>
+ .</p>
+ <p>La devise du Québec est :
+ <q lang="fr-CA">Je me souviens</q>
+ .</p>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo2htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo2htmlrules.xml
new file mode 100644
index 0000000000..7babe27deb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo2htmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:param name="langParam">fr-CA</its:param>
+<its:langRule selector="//h:q[@lang=$langParam]" langPointer="@lang"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo3html.html b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo3html.html
new file mode 100644
index 0000000000..021a5375cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/html/languageinfo3html.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+<script type="application/its+xml">
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="langinfoparam">2</its:param>
+ <its:langRule selector="//h:p[@id=$langinfoparam]/h:q" langPointer="@lang"/>
+ </its:rules>
+</script>
+ <title>EXAMPLE</title>
+ </head>
+ <body>
+ <p id="1">The motto of Québec is:
+ <q>Je me souviens</q>
+ .</p>
+ <p id="2">La devise du Québec est :
+ <q lang="fr-CA">Je me souviens</q>
+ .</p>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo1xml.xml
new file mode 100644
index 0000000000..768cca6d0e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo1xml.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<text>
+ <head>
+ <its:rules version="2.0" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:langRule selector="//content" langPointer="@language"/>
+ <its:langRule selector="//q" langPointer="@language"/>
+ </its:rules>
+ </head>
+ <content language="en">
+ <par>The motto of Québec is: <q language="fr-CA">Je me souviens</q>.</par>
+ <par>The one of Canada: <q language="la">A mari usque ad mare</q>.</par>
+ </content>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo2xml.xml
new file mode 100644
index 0000000000..c534bcce7f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo2xml.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<text language="en">
+ <head>
+ <its:rules version="2.0" xmlns:its="http://www.w3.org/2005/11/its"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="languageinfo2xmlrules.xml">
+ <its:langRule selector="//content/item/text" langPointer="../lang"/>
+ </its:rules>
+ </head>
+ <content>
+ <item>
+ <lang>en</lang>
+ <text>The motto of Québec is: <q language="fr-CA">Je me souviens</q>.</text>
+ </item>
+ <item>
+ <lang>fr-CA</lang>
+ <text>La devise du Québec est : <q>Je me souviens</q>.</text>
+ </item>
+ </content>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo2xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo2xmlrules.xml
new file mode 100644
index 0000000000..bf7a0570da
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo2xmlrules.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<its:rules version="2.0" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:langRule selector="/text" langPointer="@language"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo3xml.xml
new file mode 100644
index 0000000000..80cd2bfd42
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo3xml.xml
@@ -0,0 +1,20 @@
+<text language="en">
+<head>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+<its:param name="langParam">fr-CA</its:param>
+<its:langRule selector="//par/q[@language=$langParam]" langPointer="@language"/>
+</its:rules>
+</head>
+<content>
+<par>
+The motto of Québec is:
+<q language="fr-CA">Je me souviens</q>
+.
+</par>
+<par>
+The one of Canada:
+<q language="la">A mari usque ad mare</q>
+.
+</par>
+</content>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo4xml.xml
new file mode 100644
index 0000000000..3b28792afc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo4xml.xml
@@ -0,0 +1,24 @@
+<text language="en">
+<head>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:href="languageinfo4xmlrules.xml">
+</its:rules>
+</head>
+<content>
+<item>
+<lang>en</lang>
+<text>
+The motto of Québec is:
+<q language="fr-CA">Je me souviens</q>
+.
+</text>
+</item>
+<item>
+<lang>fr-CA</lang>
+<text>
+La devise du Québec est :
+<q>Je me souviens</q>
+.
+</text>
+</item>
+</content>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo4xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo4xmlrules.xml
new file mode 100644
index 0000000000..517f401998
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/languageinformation/xml/languageinfo4xmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+<its:param name="langParam">fr-CA</its:param>
+<its:langRule selector="//q[@language=$langParam]" langPointer="@language"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale1html.html b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale1html.html
new file mode 100644
index 0000000000..bc3adab8ac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale1html.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Locale filter</title>
+ <link href="locale1htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <div id="Canada">
+ <p>This legal notice is only for Canadian locales.</p>
+ </div>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale1htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale1htmlrules.xml
new file mode 100644
index 0000000000..d87c7f9411
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale1htmlrules.xml
@@ -0,0 +1,3 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:localeFilterRule selector="//h:div[@id='Canada']" localeFilterList="en-CA, fr-CA"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale2html.html b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale2html.html
new file mode 100644
index 0000000000..6e2870f609
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale2html.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Locale filter</title>
+ </head>
+ <body>
+ <div its-locale-filter-list="en-CA, fr-CA" id="Canada">
+ <p>This legal notice is only for Canadian locales.</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale3html.html b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale3html.html
new file mode 100644
index 0000000000..dec87593dc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale3html.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Locale filter</title>
+ <link href="locale3htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <div id="Canada">
+ <p>This legal notice is only for Canadian locales.</p>
+ </div>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale3htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale3htmlrules.xml
new file mode 100644
index 0000000000..9f44ede595
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale3htmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="localeParam">Canada</its:param>
+ <its:localeFilterRule selector="//h:div[@id=$localeParam]" localeFilterList="en-CA, fr-CA"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale4html.html b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale4html.html
new file mode 100644
index 0000000000..d8effcdf78
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale4html.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <script type="application/its+xml">
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="localeParam">Canada</its:param>
+ <its:localeFilterRule selector="//h:div[@id=$localeParam]" localeFilterList="en-CA, fr-CA"/>
+ </its:rules>
+ </script>
+ <meta charset=utf-8>
+ <title>Locale filter</title>
+ </head>
+ <body>
+ <div id="Canada">
+ <p>This legal notice is only for Canadian locales.</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale5html.html b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale5html.html
new file mode 100644
index 0000000000..fe5b01665d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/html/locale5html.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Locale filter</title>
+ </head>
+ <body>
+ <div its-locale-filter-list="*-ca">
+ <p>Text for Canadian locales.</p>
+ </div>
+ <div its-locale-filter-list="*-ca" its-locale-filter-type="exclude">
+ <p>Text for non-Canadian locales.</p>
+ </div>
+ <div its-locale-filter-list="*" its-locale-filter-type="ExCluDE">
+ <p>Text for no locales.</p>
+ </div>
+ <div its-locale-filter-list="" its-locale-filter-type="EXCLude">
+ <p>Text for all locales.</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale1xml.xml
new file mode 100644
index 0000000000..fbb4c617dc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale1xml.xml
@@ -0,0 +1,12 @@
+<book
+ xmlns:its="http://www.w3.org/2005/11/its"
+ its:version="2.0">
+ <info>
+ <its:rules version="2.0">
+ <its:localeFilterRule selector="//legalnotice[@role='Canada']" localeFilterList="en-CA, fr-CA"/>
+ </its:rules>
+ <legalnotice role="Canada">
+ <para>This legal notice is only for Canadian locales.</para>
+ </legalnotice>
+ </info>
+</book>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale2xml.xml
new file mode 100644
index 0000000000..a97c8acd19
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale2xml.xml
@@ -0,0 +1,9 @@
+<book
+ xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <info>
+ <legalnotice
+ its:localeFilterList="en-CA, fr-CA">
+ <para>This legal notice is only for Canadian locales.</para>
+ </legalnotice>
+ </info>
+</book>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale3xml.xml
new file mode 100644
index 0000000000..7a99e2d4e8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale3xml.xml
@@ -0,0 +1,10 @@
+<book
+ xmlns:its="http://www.w3.org/2005/11/its"
+ its:version="2.0">
+ <info>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:href="locale3xmlrules.xml"/>
+ <legalnotice role="Canada">
+ <para>This legal notice is only for Canadian locales.</para>
+ </legalnotice>
+ </info>
+</book>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale3xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale3xmlrules.xml
new file mode 100644
index 0000000000..5eda8cc7fb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale3xmlrules.xml
@@ -0,0 +1,3 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:localeFilterRule selector="//legalnotice[@role='Canada']" localeFilterList="en-CA, fr-CA"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale4xml.xml
new file mode 100644
index 0000000000..d3eda11e37
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale4xml.xml
@@ -0,0 +1,16 @@
+<book
+ xmlns:its="http://www.w3.org/2005/11/its"
+ its:version="2.0">
+ <info>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:href="locale4xmlrules.xml"/>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:localeFilterRule selector="//legalnotice[@role='Germany']" localeFilterList="de-DE"/>
+</its:rules>
+ <legalnotice role="Canada">
+ <para>This legal notice is only for Canadian locales.</para>
+ </legalnotice>
+ <legalnotice role="Germany">
+ <para>This legal notice is only for German locales.</para>
+ </legalnotice>
+ </info>
+</book>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale4xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale4xmlrules.xml
new file mode 100644
index 0000000000..5eda8cc7fb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale4xmlrules.xml
@@ -0,0 +1,3 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:localeFilterRule selector="//legalnotice[@role='Canada']" localeFilterList="en-CA, fr-CA"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale5xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale5xml.xml
new file mode 100644
index 0000000000..8e2e84a277
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale5xml.xml
@@ -0,0 +1,8 @@
+
+<book xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+<info>
+<its:span localeFilterList="en-CA, fr-CA">
+<para>This legal notice is only for Canadian locales.</para>
+</its:span>
+</info>
+</book>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale6xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale6xml.xml
new file mode 100644
index 0000000000..e0881f2f1a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale6xml.xml
@@ -0,0 +1,14 @@
+<book>
+ <info>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="localeParam">Germany</its:param>
+ <its:localeFilterRule selector="//legalnotice[@role='Germany']" localeFilterList="de-DE"/>
+</its:rules>
+ <legalnotice role="Canada">
+ <para>This legal notice is only for Canadian locales.</para>
+ </legalnotice>
+ <legalnotice role="Germany">
+ <para>This legal notice is only for German locales.</para>
+ </legalnotice>
+ </info>
+</book> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale7xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale7xml.xml
new file mode 100644
index 0000000000..fb11bf93fe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale7xml.xml
@@ -0,0 +1,13 @@
+<book
+ xmlns:its="http://www.w3.org/2005/11/its"
+ its:version="2.0">
+ <info>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:href="locale7xmlrules.xml"/>
+ <legalnotice role="Canada">
+ <para>This legal notice is only for Canadian locales.</para>
+ </legalnotice>
+ <legalnotice role="Germany">
+ <para>This legal notice is only for German locales.</para>
+ </legalnotice>
+ </info>
+</book>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale7xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale7xmlrules.xml
new file mode 100644
index 0000000000..3d851a22c9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale7xmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="localeParam">Germany</its:param>
+ <its:localeFilterRule selector="//legalnotice[@role=$localeParam]" localeFilterList="de-DE"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale8xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale8xml.xml
new file mode 100644
index 0000000000..ff7711929c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localefilter/xml/locale8xml.xml
@@ -0,0 +1,18 @@
+<book
+ xmlns:its="http://www.w3.org/2005/11/its"
+ its:version="2.0">
+ <info>
+ <legalnotice its:localeFilterList="*-CA" its:localeFilterType="include">
+ <para>Text only for Canadian locales.</para>
+ </legalnotice>
+ <legalnotice its:localeFilterList="*-CA" its:localeFilterType="exclude">
+ <para>Text for non-Canadian locales.</para>
+ </legalnotice>
+ <legalnotice its:localeFilterList="*" its:localeFilterType="exclude">
+ <para>Text for no locales.</para>
+ </legalnotice>
+ <legalnotice its:localeFilterList="" its:localeFilterType="exclude">
+ <para>Text for all locales.</para>
+ </legalnotice>
+ </info>
+</book>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote1html.html b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote1html.html
new file mode 100644
index 0000000000..80dcb4304e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote1html.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <title>Example</title>
+ <link href="locnote1htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <span id="DisableInfo">The {0} has been disabled.</span>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote1htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote1htmlrules.xml
new file mode 100644
index 0000000000..87b8415aac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote1htmlrules.xml
@@ -0,0 +1,7 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:locNoteRule locNoteType="alert" selector="//h:span[@id='DisableInfo']">
+<its:locNote>
+The variable {0} has three possible values: 'printer', 'stacker' and 'stapler options'.
+</its:locNote>
+</its:locNoteRule>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote2html.html b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote2html.html
new file mode 100644
index 0000000000..ba74660628
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote2html.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <title>Example</title>
+ <link href="locnote2htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <section id="FileNotFound">
+ <h2>FileNotFound</h2>
+ <p>
+ Indicates that the resource file {0} could not be loaded.
+ </p>
+ <span>Cannot find the file {0}.</span>
+ </section>
+ <section id="DivByZero">
+ <h2>FileNotFound</h2>
+ <p>A division by 0 was going to be computed.</p>
+ <span>Invalid parameter.</span>
+ </section>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote2htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote2htmlrules.xml
new file mode 100644
index 0000000000..2da2d203e9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote2htmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:translateRule selector="//h:section/h:p" translate="no"/>
+<its:locNoteRule locNoteType="description" selector="//h:section/h:span" locNotePointer="../h:p"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote3html.html b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote3html.html
new file mode 100644
index 0000000000..0f60fd02e5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote3html.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <title>EXAMPLE</title>
+ <link href="locnote3htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <span id="NotFound">Cannot find {0} on {1}.</span>
+ </body>
+ </html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote3htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote3htmlrules.xml
new file mode 100644
index 0000000000..898225e430
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote3htmlrules.xml
@@ -0,0 +1,3 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:locNoteRule locNoteType="description" selector="//h:span[@id='NotFound']" locNoteRef="ErrorsInfo.html/#NotFound"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote4html.html b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote4html.html
new file mode 100644
index 0000000000..9b25c07f26
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote4html.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <title>EXAMPLE</title>
+ <link href="locnote4htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <p id="FileNotFound" title="Comments.html#FileNotFound">
+ <span>Cannot find the file {0}.</span>
+ </p>
+ <p id="DivByZero" title="Comments.html#DivByZero">
+ <span>Invalid parameter.</span>
+ </p>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote4htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote4htmlrules.xml
new file mode 100644
index 0000000000..2e0f1173e0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote4htmlrules.xml
@@ -0,0 +1,3 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:locNoteRule locNoteType="description" selector="//h:body/h:p/h:span" locNoteRefPointer="../@title"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote5html.html b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote5html.html
new file mode 100644
index 0000000000..81db733a6a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote5html.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <link href="locnote5htmlrules.xml" rel="its-rules">
+ <title>EXAMPLE</title>
+ </head>
+ <body>
+ <p id="1">
+ This is a hippoptamus:
+ <img src="hippo.png" alt="Hippo in the Chobe River">
+ .
+ </p>
+ <p id="2">
+ This is an elephant:
+ <img src="elephants.png" alt="Elephants taking a mud bath">
+ .
+ </p>
+ <p id="DisableInfo">The {0} has been disabled.</p>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote5htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote5htmlrules.xml
new file mode 100644
index 0000000000..c9d00868a2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote5htmlrules.xml
@@ -0,0 +1,15 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:locNoteRule selector="//h:p[@id='1']/h:img/@alt" locNoteType="alert">
+<its:locNote>Do not translate the word "Chobe"</its:locNote>
+</its:locNoteRule>
+<its:locNoteRule selector="//h:p[@id='2']/h:img/@alt" locNoteType="description">
+<its:locNote>This text will be displayed over the image.</its:locNote>
+</its:locNoteRule>
+<its:locNoteRule locNoteType="alert" selector="//h:p[@id='DisableInfo']">
+<its:locNote>
+The variable
+{0}
+has three possible values: 'printer', 'stacker' and 'stapler options'.
+</its:locNote>
+</its:locNoteRule>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote6html.html b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote6html.html
new file mode 100644
index 0000000000..2757da4e6a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote6html.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <title>EXAMPLE</title>
+ <link href="locnote6htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <span id="1">
+ This is a hippoptamus:
+ <img src="hippo.png" alt="Hippo in the Chobe River">
+ .
+ </span>
+ <span id="2">
+ This is an elephant:
+ <img src="elephants.png" alt="Elephants taking a mud bath">
+ .
+ </span>
+ <span id="DisableInfo">The {0} has been disabled.</span>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote6htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote6htmlrules.xml
new file mode 100644
index 0000000000..d8a1ee4a70
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote6htmlrules.xml
@@ -0,0 +1,15 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:locNoteRule selector="//@alt" locNoteType="description">
+<its:locNote>This text will be displayed over the image.</its:locNote>
+</its:locNoteRule>
+<its:locNoteRule selector="//h:span[@id='1']/h:img/@alt" locNoteType="alert">
+<its:locNote>Do not translate the word "Chobe"</its:locNote>
+</its:locNoteRule>
+<its:locNoteRule locNoteType="alert" selector="//h:span[@id='DisableInfo']">
+<its:locNote>
+The variable
+{0}
+has three possible values: 'printer', 'stacker' and 'stapler options'.
+</its:locNote>
+</its:locNoteRule>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote7html.html b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote7html.html
new file mode 100644
index 0000000000..4741c323d7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote7html.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <title>LocNote test: Default</title>
+ </head>
+ <body>
+ <p>This is a <span its-loc-note="Check with terminology engineer" its-loc-note-type="ALERT">motherboard</span>.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote8html.html b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote8html.html
new file mode 100644
index 0000000000..4b019c1526
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote8html.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <title>EXAMPLE</title>
+ <link href="locnote8htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <span id="1">
+ This is a hippoptamus:
+ <img src="hippo.png" alt="Hippo in the Chobe River">
+ .
+ </span>
+ <span id="2">
+ This is an elephant:
+ <img src="elephants.png" alt="Elephants taking a mud bath">
+ .
+ </span>
+ <span id="DisableInfo">The {0} has been disabled.</span>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote8htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote8htmlrules.xml
new file mode 100644
index 0000000000..7d6c81f1ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote8htmlrules.xml
@@ -0,0 +1,16 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:param name="spanIdParam">DisableInfo</its:param>
+<its:locNoteRule selector="//@alt" locNoteType="description">
+<its:locNote>This text will be displayed over the image.</its:locNote>
+</its:locNoteRule>
+<its:locNoteRule selector="//h:span[@id='1']/h:img/@alt" locNoteType="alert">
+<its:locNote>Do not translate the word "Chobe"</its:locNote>
+</its:locNoteRule>
+<its:locNoteRule locNoteType="alert" selector="//h:span[@id=$spanIdParam]">
+<its:locNote>
+The variable
+{0}
+has three possible values: 'printer', 'stacker' and 'stapler options'.
+</its:locNote>
+</its:locNoteRule>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote9html.html b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote9html.html
new file mode 100644
index 0000000000..9adbbcd23e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/html/locnote9html.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+<script type="application/its+xml">
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="locnoteparam">DisableInfo</its:param>
+ <its:locNoteRule locNoteType="alert" selector="//h:p[@id=$locnoteparam]">
+ <its:locNote>The variable {0} has three possible values: 'printer',
+ 'stacker' and 'stapler options'.</its:locNote>
+ </its:locNoteRule>
+ </its:rules>
+</script>
+ <meta charset=utf-8>
+ <title>Example</title>
+ </head>
+<body>
+ <p id="DisableInfo">The {0} has been disabled.</p>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote10xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote10xml.xml
new file mode 100644
index 0000000000..aefe57b3a7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote10xml.xml
@@ -0,0 +1,33 @@
+<msgList>
+<head>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+<its:param name="DisableInfoParam">DisableInfo</its:param>
+<its:locNoteRule selector="//@alt" locNoteType="description">
+<its:locNote>This text will be displayed over the image.</its:locNote>
+</its:locNoteRule>
+<its:locNoteRule selector="//msg[@id='1']/img/@alt" locNoteType="alert">
+<its:locNote>Do not translate the word "Chobe"</its:locNote>
+</its:locNoteRule>
+<its:locNoteRule locNoteType="alert" selector="//msg[@id=$DisableInfoParam]">
+<its:locNote>
+The variable
+{0}
+has three possible values: 'printer', 'stacker' and 'stapler options'.
+</its:locNote>
+</its:locNoteRule>
+</its:rules>
+</head>
+<body>
+<msg id="1">
+This is a hippoptamus:
+<img src="hippo.png" alt="Hippo in the Chobe River"/>
+.
+</msg>
+<msg id="2">
+This is an elephant:
+<img src="elephants.png" alt="Elephants taking a mud bath"/>
+.
+</msg>
+<msg id="DisableInfo">The {0} has been disabled.</msg>
+</body>
+</msgList>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote11xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote11xml.xml
new file mode 100644
index 0000000000..20a697e98e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote11xml.xml
@@ -0,0 +1,18 @@
+<msgList>
+<head>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="locnote11xmlrules.xml"/>
+</head>
+<body>
+<msg id="1">
+This is a hippoptamus:
+<img src="hippo.png" alt="Hippo in the Chobe River"/>
+.
+</msg>
+<msg id="2">
+This is an elephant:
+<img src="elephants.png" alt="Elephants taking a mud bath"/>
+.
+</msg>
+<msg id="DisableInfo">The {0} has been disabled.</msg>
+</body>
+</msgList>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote11xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote11xmlrules.xml
new file mode 100644
index 0000000000..43b00c70cd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote11xmlrules.xml
@@ -0,0 +1,16 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+<its:param name="DisableInfoParam">DisableInfo</its:param>
+<its:locNoteRule selector="//@alt" locNoteType="description">
+<its:locNote>This text will be displayed over the image.</its:locNote>
+</its:locNoteRule>
+<its:locNoteRule selector="//msg[@id='1']/img/@alt" locNoteType="alert">
+<its:locNote>Do not translate the word "Chobe"</its:locNote>
+</its:locNoteRule>
+<its:locNoteRule locNoteType="alert" selector="//msg[@id=$DisableInfoParam]">
+<its:locNote>
+The variable
+{0}
+has three possible values: 'printer', 'stacker' and 'stapler options'.
+</its:locNote>
+</its:locNoteRule>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote1xml.xml
new file mode 100644
index 0000000000..4b50997572
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote1xml.xml
@@ -0,0 +1,13 @@
+<myRes>
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:locNoteRule locNoteType="alert" selector="//msg[@id='DisableInfo']">
+ <its:locNote>The variable {0} has three possible values: 'printer',
+ 'stacker' and 'stapler options'.</its:locNote>
+ </its:locNoteRule>
+ </its:rules>
+ </head>
+ <body>
+ <msg id="DisableInfo">The {0} has been disabled.</msg>
+ </body>
+</myRes>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote2xml.xml
new file mode 100644
index 0000000000..166215d649
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote2xml.xml
@@ -0,0 +1,19 @@
+<Res>
+ <prolog>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:translateRule selector="//msg/notes" translate="no"/>
+ <its:locNoteRule locNoteType="description" selector="//msg/data"
+ locNotePointer="../notes"/>
+ </its:rules>
+ </prolog>
+ <body>
+ <msg id="FileNotFound">
+ <notes>Indicates that the resource file {0} could not be loaded.</notes>
+ <data>Cannot find the file {0}.</data>
+ </msg>
+ <msg id="DivByZero">
+ <notes>A division by 0 was going to be computed.</notes>
+ <data>Invalid parameter.</data>
+ </msg>
+ </body>
+</Res>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote3xml.xml
new file mode 100644
index 0000000000..3336af33d4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote3xml.xml
@@ -0,0 +1,12 @@
+<myRes>
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:locNoteRule locNoteType="description"
+ selector="//msg[@id='NotFound']"
+ locNoteRef="ErrorsInfo.html/#NotFound" />
+ </its:rules>
+ </head>
+ <body>
+ <msg id="NotFound">Cannot find {0} on {1}.</msg>
+ </body>
+</myRes>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote4xml.xml
new file mode 100644
index 0000000000..a98b30eba1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote4xml.xml
@@ -0,0 +1,16 @@
+<dataFile>
+ <prolog>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:locNoteRule locNoteType="description" selector="//body/string/data"
+ locNoteRefPointer="../@noteFile" />
+ </its:rules>
+ </prolog>
+ <body>
+ <string id="FileNotFound" noteFile="Comments.html#FileNotFound">
+ <data>Cannot find the file {0}.</data>
+ </string>
+ <string id="DivByZero" noteFile="Comments.html#DivByZero">
+ <data>Invalid parameter.</data>
+ </string>
+ </body>
+</dataFile>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote5xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote5xml.xml
new file mode 100644
index 0000000000..dac3607a35
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote5xml.xml
@@ -0,0 +1,15 @@
+<msgList>
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="locnote5xmlrules.xml">
+ <its:locNoteRule selector="//msg[@id='1']/img/@alt" locNoteType="alert">
+ <its:locNote>Do not translate the word "Chobe"</its:locNote>
+ </its:locNoteRule>
+ </its:rules>
+ </head>
+ <body>
+ <msg id="1">This is a hippoptamus: <img src="hippo.png" alt="Hippo in the Chobe River"/>.</msg>
+ <msg id="2">This is an elephant: <img src="elephants.png" alt="Elephants taking a mud bath"/>.</msg>
+ <msg id="DisableInfo">The {0} has been disabled.</msg>
+ </body>
+</msgList>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote5xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote5xmlrules.xml
new file mode 100644
index 0000000000..8eb7b345b4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote5xmlrules.xml
@@ -0,0 +1,9 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:locNoteRule selector="//@alt" locNoteType="description">
+ <its:locNote>This text will be displayed over the image.</its:locNote>
+ </its:locNoteRule>
+ <its:locNoteRule locNoteType="alert" selector="//msg[@id='DisableInfo']">
+ <its:locNote>The variable {0} has three possible values: 'printer',
+ 'stacker' and 'stapler options'.</its:locNote>
+ </its:locNoteRule>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote6xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote6xml.xml
new file mode 100644
index 0000000000..2df88380c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote6xml.xml
@@ -0,0 +1,21 @@
+<msgList>
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:locNoteRule selector="//@alt" locNoteType="description">
+ <its:locNote>This text will be displayed over the image.</its:locNote>
+ </its:locNoteRule>
+ <its:locNoteRule selector="//msg[@id='1']/img/@alt" locNoteType="alert">
+ <its:locNote>Do not translate the word "Chobe"</its:locNote>
+ </its:locNoteRule>
+ <its:locNoteRule locNoteType="alert" selector="//msg[@id='DisableInfo']">
+ <its:locNote>The variable {0} has three possible values: 'printer',
+ 'stacker' and 'stapler options'.</its:locNote>
+ </its:locNoteRule>
+ </its:rules>
+ </head>
+ <body>
+ <msg id="1">This is a hippoptamus: <img src="hippo.png" alt="Hippo in the Chobe River"/>.</msg>
+ <msg id="2">This is an elephant: <img src="elephants.png" alt="Elephants taking a mud bath"/>.</msg>
+ <msg id="DisableInfo">The {0} has been disabled.</msg>
+ </body>
+</msgList>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote7xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote7xml.xml
new file mode 100644
index 0000000000..65021f8b26
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote7xml.xml
@@ -0,0 +1,20 @@
+<Res>
+<prolog>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+<its:translateRule selector="//msg/notes" translate="no"/>
+<its:locNoteRule locNoteType="description" selector="//msg/data" locNotePointer="../notes"/>
+</its:rules>
+</prolog>
+<body>
+<msg id="FileNotFound">
+<notes>
+Indicates that the resource file {0} could not be loaded.
+</notes>
+<data>Cannot find the file {0}.</data>
+</msg>
+<msg id="DivByZero">
+<notes>A division by 0 was going to be computed.</notes>
+<data>Invalid parameter.</data>
+</msg>
+</body>
+</Res>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote8xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote8xml.xml
new file mode 100644
index 0000000000..41049c9681
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote8xml.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<Res xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <body its:locNote="The variable {0} is the name of the host.">
+ <msg id="HostNotFound">
+ <data>Host {0} cannot be found.</data>
+ </msg>
+ <msg id="HostDisconnected">
+ <data>The connection with {0} has been lost.</data>
+ </msg>
+ <msg id="FileNotFound">
+ <data its:locNote="{0} is a filename" its:locNoteType="alert">{0} not found.</data>
+ </msg>
+ <msg id="CannotLog">
+ <data its:locNoteRef="myLocNotes.htm#CannotLog" its:locNoteType="alert">Cannot log with this username.</data>
+ </msg>
+ </body>
+</Res>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote9xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote9xml.xml
new file mode 100644
index 0000000000..c726ea1d22
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/localizationnote/xml/locnote9xml.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<Doc xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <body>
+ <p><its:span locNote="If possible keep the non-English terms in the translated version too">Everything started when
+ Zebulon discovered that he had a <its:span locNoteRef="http://en.wikipedia.org/wiki/Doppelganger">doppelgänger</its:span>
+ who was a <b>serious</b> baseball <its:span locNoteRef="http://en.wikipedia.org/wiki/Aficionado">aficionado</its:span>.</its:span></p>
+ </body>
+</Doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue10html.html b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue10html.html
new file mode 100644
index 0000000000..e4957ac516
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue10html.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <script type="application/its+xml">
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="locQualityIssueParam">q1</its:param>
+ <its:locQualityIssueRule selector="//h:span[@id=$locQualityIssueParam]"
+ locQualityIssueType="typographical"
+ locQualityIssueComment="sentence without capitalization"
+ locQualityIssueEnabled="yes"/>
+ <its:locQualityIssueRule selector="//h:span[@id='q2']"
+ locQualityIssueType="misspelling"
+ locQualityIssueComment="should be 'Music can'"
+ locQualityIssueEnabled="yes"/>
+ </its:rules>
+ </script>
+ <meta charset=utf-8>
+ <title>Example</title>
+ </head>
+ <body>
+ <p>
+ <span id="q1">music </span> is an art form whose medium is sound and silence.
+ <span id="q2">Musci acn </span> take many different forms and is experienced by individuals in a range of social settings ranging from being alone to attending a large concert.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue1html.html b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue1html.html
new file mode 100644
index 0000000000..c4e423d555
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue1html.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <title>Example</title>
+ <link href="locqualityissue1htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <p>
+ <span id="q1">music </span> is an art form whose medium is sound and silence.
+ <span id="q2">Musci acn </span> take many different forms and is experienced by individuals in a range of social settings ranging from being alone to attending a large concert.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue1htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue1htmlrules.xml
new file mode 100644
index 0000000000..e4b3e20390
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue1htmlrules.xml
@@ -0,0 +1,10 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:locQualityIssueRule selector="//h:span[@id='q1']"
+ locQualityIssueType="typographical"
+ locQualityIssueComment="sentence without capitalization"
+ locQualityIssueEnabled="yes"/>
+ <its:locQualityIssueRule selector="//h:span[@id='q2']"
+ locQualityIssueType="misspelling"
+ locQualityIssueComment="should be 'Music can'"
+ locQualityIssueEnabled="yes"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue2html.html b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue2html.html
new file mode 100644
index 0000000000..d8c65ab077
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue2html.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <title>Example</title>
+ <link href="locqualityissue2htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <p>
+ <span id="q1">music </span> is an art form whose medium is sound and silence.
+ <span id="q2">Musci acn </span> take many different forms and is experienced by individuals in a range of social settings ranging from being alone to attending a large concert.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue2htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue2htmlrules.xml
new file mode 100644
index 0000000000..1104dfd25d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue2htmlrules.xml
@@ -0,0 +1,10 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:locQualityIssueRule selector="//h:span[@id='q1']"
+ locQualityIssueType="typographical"
+ locQualityIssueComment="sentence without capitalization"
+ locQualityIssueSeverity="50"/>
+ <its:locQualityIssueRule selector="//h:span[@id='q2']"
+ locQualityIssueType="misspelling"
+ locQualityIssueComment="should be 'Music can'"
+ locQualityIssueSeverity="75"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue3html.html b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue3html.html
new file mode 100644
index 0000000000..b2b8e8fcde
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue3html.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <title>Example</title>
+ <link href="locqualityissue3htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <p>
+ <span id="q1">music </span> is an art form whose medium is sound and silence.
+ <span id="q2">Musci acn </span> take many different forms and is experienced by individuals in a range of social settings ranging from being alone to attending a large concert.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue3htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue3htmlrules.xml
new file mode 100644
index 0000000000..c4f45e00fe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue3htmlrules.xml
@@ -0,0 +1,12 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:locQualityIssueRule selector="//h:span[@id='q1']"
+ locQualityIssueType="typographical"
+ locQualityIssueComment="sentence without capitalization"
+ locQualityIssueSeverity="50"
+ locQualityIssueProfileRef="http://example.org/qaMovel/v1"/>
+ <its:locQualityIssueRule selector="//h:span[@id='q2']"
+ locQualityIssueType="misspelling"
+ locQualityIssueComment="should be 'Music can'"
+ locQualityIssueSeverity="75"
+ locQualityIssueProfileRef="http://example.org/qaMovel/v1"/>
+ </its:rules> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue4html.html b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue4html.html
new file mode 100644
index 0000000000..16539527c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue4html.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Telharmonium 1897</title>
+ <style>
+ [its-loc-quality-issue-type]{
+ background-color:yellow;
+ margin:2px;
+ }
+ [its-loc-quality-issue-severity = "100"]{
+ border: 2px solid red;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>Telharmonium (1897)</h1>
+ <p>
+ <span
+ data-mytool-qacode="named_entity_not_found"
+ its-loc-quality-issue-type="inconsistent-entities"
+ >Christian Bale</span>(1867–1934) conceived of an instrument that could transmit its sound
+ from a power plant for hundreds of miles to listeners over telegraph wiring. Beginning in
+ 1889 the sound quality of regular telephone concerts was very poor on account of the buzzing
+ generated by carbon-granule microphones. As a result Cahill decided to set a new standard in
+ perfection of sound <span
+ its-loc-quality-issue-type="MiSSPeLLiNG">qaulity</span> with his instrument, a standard that would not only satisfy listeners but that
+ would overcome all the flaws of traditional instruments.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue5html.html b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue5html.html
new file mode 100644
index 0000000000..f2ca74f518
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue5html.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Telharmonium 1897</title>
+ <style>
+ [its-loc-quality-issue-type]{
+ background-color:yellow;
+ margin:2px;
+ }
+ [its-loc-quality-issue-severity = "100"]{
+ border: 2px solid red;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>Telharmonium (1897)</h1>
+ <p>
+ <span
+ data-mytool-qacode="named_entity_not_found"
+ its-loc-quality-issue-type="inconsistent-entities"
+ its-loc-quality-issue-comment="should be Thomas Cahill.">Christian Bale</span>(1867–1934) conceived of an instrument that could transmit its sound
+ from a power plant for hundreds of miles to listeners over telegraph wiring. Beginning in
+ 1889 the sound quality of regular telephone concerts was very poor on account of the buzzing
+ generated by carbon-granule microphones. As a result Cahill decided to set a new standard in
+ perfection of sound <span
+ its-loc-quality-issue-type="misspelling"
+ its-loc-quality-issue-comment="should be 'quality'">qulaity</span> with his instrument, a standard that would not only satisfy listeners but that
+ would overcome all the flaws of traditional instruments.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue6html.html b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue6html.html
new file mode 100644
index 0000000000..e067d93ab5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue6html.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Telharmonium 1897</title>
+ <style>
+ [its-loc-quality-issue-type]{
+ background-color:yellow;
+ margin:2px;
+ }
+ [its-loc-quality-issue-severity = "100"]{
+ border: 2px solid red;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>Telharmonium (1897)</h1>
+ <p>
+ <span
+ data-mytool-qacode="named_entity_not_found"
+ its-loc-quality-issue-type="inconsistent-entities"
+ its-loc-quality-issue-comment="should be Thomas Cahill."
+ its-loc-quality-issue-profile-ref="http://example.org/qaMovel/v1"
+ its-loc-quality-issue-severity="100"
+ its-loc-quality-issue-enabled="yes">Christian Bale</span>(1867–1934) conceived of an instrument that could transmit its sound
+ from a power plant for hundreds of miles to listeners over telegraph wiring. Beginning in
+ 1889 the sound quality of regular telephone concerts was very poor on account of the buzzing
+ generated by carbon-granule microphones. As a result Cahill decided to set a new standard in
+ perfection of sound <span
+ its-loc-quality-issue-type="misspelling"
+ its-loc-quality-issue-comment="should be 'quality'"
+ its-loc-quality-issue-profile-ref="grammar"
+ its-loc-quality-issue-severity="50"
+ its-loc-quality-issue-enabled="no">qulaity</span> with his instrument, a standard that would not only satisfy listeners but that
+ would overcome all the flaws of traditional instruments.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue7html.html b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue7html.html
new file mode 100644
index 0000000000..4ecb637c5c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue7html.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Test</title>
+ <script type="application/its+xml" id="lq1">
+ <its:locQualityIssues xml:id="lq1" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:locQualityIssue
+ locQualityIssueType="misspelling"
+ locQualityIssueComment="'c'es' is unknown. Could be 'c'est'"
+ locQualityIssueSeverity="50"/>
+ </its:locQualityIssues>
+ </script>
+ <style>.qaissue { background-color: yellow; } </style>
+ </head>
+ <body>
+ <p>
+ <span its-loc-quality-issues-ref="#lq1">c'es</span> pourquoi il n'était pas coupable</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue8html.html b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue8html.html
new file mode 100644
index 0000000000..7855bb0f24
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue8html.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Example</title>
+ <link href="locqualityissue8htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <p>
+ <span id="q1">music </span> is an art form whose medium is sound and silence.
+ <span id="q2">Musci acn </span> take many different forms and is experienced by individuals in a range of social settings ranging from being alone to attending a large concert.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue8htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue8htmlrules.xml
new file mode 100644
index 0000000000..b6b7ae996e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue8htmlrules.xml
@@ -0,0 +1,13 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="locQualityIssueParam">q1</its:param>
+ <its:locQualityIssueRule selector="//h:span[@id=$locQualityIssueParam]"
+ locQualityIssueType="typographical"
+ locQualityIssueComment="Sentence without capitalization"
+ locQualityIssueSeverity="50"
+ locQualityIssueProfileRef="http://example.org/qaMovel/v1"/>
+ <its:locQualityIssueRule selector="//h:span[@id='q2']"
+ locQualityIssueType="misspelling"
+ locQualityIssueComment="should be 'Music can'"
+ locQualityIssueSeverity="75"
+ locQualityIssueProfileRef="http://example.org/qaMovel/v1"/>
+ </its:rules> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue9html.html b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue9html.html
new file mode 100644
index 0000000000..79c805161f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue9html.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Test</title>
+ </head>
+ <body>
+ <p>
+ <span its-loc-quality-issues-ref="locqualityissue9htmlstandoff.xml#lq1">c'es</span> pourquoi il n'était pas coupable</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue9htmlstandoff.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue9htmlstandoff.xml
new file mode 100644
index 0000000000..d81222e66e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/html/locqualityissue9htmlstandoff.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" ?>
+<someDataFile xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+<its:locQualityIssues xml:id="lq1">
+ <its:locQualityIssue
+ locQualityIssueType="misspelling"
+ locQualityIssueComment="'c'es' is unknown. Could be 'c'est'"
+ locQualityIssueSeverity="50"/>
+ <its:locQualityIssue
+ locQualityIssueType="grammar"
+ locQualityIssueComment="Missing capital on the first word of a sentence."
+ locQualityIssueSeverity="30"/>
+</its:locQualityIssues>
+</someDataFile> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue10xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue10xml.xml
new file mode 100644
index 0000000000..c1d164462b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue10xml.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<doc xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+<para><its:span locQualityIssueComment="Sentence without capitalization" locQualityIssueSeverity="50" locQualityIssueProfileRef="http://example.org/qaMovel/v1">transport</its:span> or transportation is the movement of people, animals and goods from one location to another.Modes of <its:span locQualityIssueComment="should be 'transport include'" locQualityIssueSeverity="75" locQualityIssueProfileRef="http://example.org/qaMovel/v1">tranport inc.</its:span> air, rail, road, water, cable, pipeline, and space.</para>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue11xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue11xml.xml
new file mode 100644
index 0000000000..399e667131
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue11xml.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<doc>
+ <header>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="locqualityissueParam">q1</its:param>
+ <its:locQualityIssueRule selector="//span[@id=$locqualityissueParam]"
+ locQualityIssueComment="Sentence without capitalization"
+ locQualityIssueSeverity="50"
+ locQualityIssueProfileRef="http://example.org/qaMovel/v1"/>
+ <its:locQualityIssueRule selector="//span[@id='q2']"
+ locQualityIssueComment="should be 'transport include'"
+ locQualityIssueSeverity="75"
+ locQualityIssueProfileRef="http://example.org/qaMovel/v1"/>
+ </its:rules>
+ </header>
+ <para>
+ <span id="q1">transport</span> or transportation is the movement of people, animals and goods from one location to another.
+ Modes of <span id="q2">tranport inc.</span> air, rail, road, water, cable, pipeline, and space.
+</para>
+</doc>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue12xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue12xml.xml
new file mode 100644
index 0000000000..1574e8c770
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue12xml.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<doc>
+ <header>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:type="simple" xlink:href="locqualityissue12xmlrules.xml"/>
+ </header>
+ <para>
+ <span id="q1">transport</span> or transportation is the movement of people, animals and goods from one location to another.
+ Modes of <span id="q2">tranport inc.</span> air, rail, road, water, cable, pipeline, and space.
+</para>
+</doc>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue12xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue12xmlrules.xml
new file mode 100644
index 0000000000..dc42a43b4a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue12xmlrules.xml
@@ -0,0 +1,11 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="locqualityissueParam">q1</its:param>
+ <its:locQualityIssueRule selector="//span[@id=$locqualityissueParam]"
+ locQualityIssueComment="Sentence without capitalization"
+ locQualityIssueSeverity="50"
+ locQualityIssueProfileRef="http://example.org/qaMovel/v1"/>
+ <its:locQualityIssueRule selector="//span[@id='q2']"
+ locQualityIssueComment="should be 'transport include'"
+ locQualityIssueSeverity="75"
+ locQualityIssueProfileRef="http://example.org/qaMovel/v1"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue13xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue13xml.xml
new file mode 100644
index 0000000000..b6722c4992
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue13xml.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<doc xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <file>
+ <header>
+ <its:rules version="2.0">
+ <its:locQualityIssueRule selector="//mrk[@type='x-itslq']"
+ locQualityIssuesRefPointer="@ref"/>
+ </its:rules>
+ </header>
+ <unit id="1">
+ <segment>
+ <source>This is the content</source>
+ <target><mrk type="x-itslq" ref="#lq1">c'es</mrk> le contenu</target>
+ </segment>
+ <its:locQualityIssues xml:id="lq1">
+ <its:locQualityIssue
+ locQualityIssueComment="'c'es' is unknown. Could be 'c'est'"
+ locQualityIssueSeverity="75"
+ locQualityIssueProfileRef="http://example.org/qaMovel/v1"
+ locQualityIssueEnabled="yes"/>
+ </its:locQualityIssues>
+ </unit>
+ </file>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue1xml.xml
new file mode 100644
index 0000000000..ee70d1d8bb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue1xml.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<doc>
+ <header>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:locQualityIssueRule selector="//span[@id='q1']"
+ locQualityIssueType="typographical"/>
+ <its:locQualityIssueRule selector="//span[@id='q2']"
+ locQualityIssueType="misspelling"/>
+ </its:rules>
+ </header>
+ <para>
+ <span id="q1">transport</span> or transportation is the movement of people, animals and goods from one location to another.
+ Modes of <span id="q2">tranport inc.</span> air, rail, road, water, cable, pipeline, and space.
+</para>
+</doc>
+
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue2xml.xml
new file mode 100644
index 0000000000..5be4462920
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue2xml.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<doc>
+ <header>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:locQualityIssueRule selector="//span[@id='q1']"
+ locQualityIssueComment="Sentence without capitalization"
+ locQualityIssueSeverity="50"/>
+ <its:locQualityIssueRule selector="//span[@id='q2']"
+ locQualityIssueComment="should be 'transport include'"
+ locQualityIssueSeverity="75"/>
+ </its:rules>
+ </header>
+ <para>
+ <span id="q1">transport</span> or transportation is the movement of people, animals and goods from one location to another.
+ Modes of <span id="q2">tranport inc.</span> air, rail, road, water, cable, pipeline, and space.
+</para>
+</doc>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue3xml.xml
new file mode 100644
index 0000000000..a51fbc0a35
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue3xml.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<doc>
+ <header>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:locQualityIssueRule selector="//span[@id='q1']"
+ locQualityIssueType="typographical"
+ locQualityIssueSeverity="50"
+ locQualityIssueProfileRef="http://example.org/qaMovel/v1"
+ locQualityIssueEnabled="yes"/>
+ <its:locQualityIssueRule selector="//span[@id='q2']"
+ locQualityIssueType="misspelling"
+ locQualityIssueSeverity="75"
+ locQualityIssueProfileRef="http://example.org/qaMovel/v1"
+ locQualityIssueEnabled="yes"/>
+ </its:rules>
+ </header>
+ <para>
+ <span id="q1">transport</span> or transportation is the movement of people, animals and goods from one location to another.
+ Modes of <span id="q2">tranport inc.</span> air, rail, road, water, cable, pipeline, and space.
+</para>
+</doc>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue4xml.xml
new file mode 100644
index 0000000000..d50f903bae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue4xml.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<doc xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <header>
+ <its:rules version="2.0">
+ <its:locQualityIssueRule selector="//span[@id='q1']"
+ locQualityIssuesRefPointer="./@issues"/>
+ <its:locQualityIssueRule selector="//span[@id='q2']"
+ locQualityIssueType="misspelling"
+ locQualityIssueSeverity="75"
+ locQualityIssueProfileRef="http://example.org/qaMovel/v1"
+ locQualityIssueEnabled="yes"/>
+ </its:rules>
+ </header>
+ <para>
+ <span id="q1" issues="#id1234">transport</span> or transportation is the movement of people, animals and goods from one location to another.
+ Modes of <span id="q2">tranport inc.</span> air, rail, road, water, cable, pipeline, and space.
+ </para>
+ <its:locQualityIssues xml:id="id1234">
+ <its:locQualityIssue locQualityIssueType="typographical"
+ locQualityIssueSeverity="50"
+ locQualityIssueProfileRef="http://example.org/qaMovel/v1"
+ locQualityIssueEnabled="no"/>
+ </its:locQualityIssues>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue5xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue5xml.xml
new file mode 100644
index 0000000000..b5fcceabf8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue5xml.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0"?>
+<doc>
+ <header>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink"
+ version="2.0" xlink:type="simple" xlink:href="locqualityissue5xmlrules.xml"/>
+ </header>
+ <para>
+ <span id="q1">transport</span> or transportation is the movement of people, animals and goods from one location to another.
+ Modes of <span id="q2">tranport inc.</span> air, rail, road, water, cable, pipeline, and space.
+</para>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue5xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue5xmlrules.xml
new file mode 100644
index 0000000000..a778ffc9bd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue5xmlrules.xml
@@ -0,0 +1,10 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:locQualityIssueRule selector="//span[@id='q1']"
+ locQualityIssueType="typographical"
+ locQualityIssueSeverity="50"
+ locQualityIssueProfileRef="http://example.org/qaMovel/v1"/>
+ <its:locQualityIssueRule selector="//span[@id='q2']"
+ locQualityIssueComment="should be 'transport include'"
+ locQualityIssueSeverity="75"
+ locQualityIssueProfileRef="http://example.org/qaMovel/v1"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue6xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue6xml.xml
new file mode 100644
index 0000000000..e8c41ebfc7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue6xml.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<doc xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <para><span its:locQualityIssueType="typographical">transport</span> or transportation is the movement of people, animals and goods from one location to another.Modes of <span its:locQualityIssueType="misspelling">tranport inc.</span> air, rail, road, water, cable, pipeline, and space.</para>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue7xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue7xml.xml
new file mode 100644
index 0000000000..e81339948e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue7xml.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<doc xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <para><span its:locQualityIssueComment="Sentence without capitalization">transport</span> or transportation is the movement of people, animals and goods from one location to another.Modes of <span its:locQualityIssueComment="should be 'transport include'">tranport inc.</span> air, rail, road, water, cable, pipeline, and space.</para>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue8xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue8xml.xml
new file mode 100644
index 0000000000..2fffc91486
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue8xml.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<doc xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+<para><span its:locQualityIssueComment="Sentence without capitalization" its:locQualityIssueSeverity="50">transport</span> or transportation is the movement of people, animals and goods from one location to another.Modes of <span its:locQualityIssueComment="should be 'transport include'" its:locQualityIssueSeverity="75">tranport inc.</span> air, rail, road, water, cable, pipeline, and space.</para>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue9xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue9xml.xml
new file mode 100644
index 0000000000..fa4a108851
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityissue/xml/locqualityissue9xml.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<doc xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+<para><span its:locQualityIssueComment="Sentence without capitalization" its:locQualityIssueSeverity="50" its:locQualityIssueProfileRef="http://example.org/qaMovel/v1">transport</span> or transportation is the movement of people, animals and goods from one location to another.Modes of <span its:locQualityIssueComment="should be 'transport include'" its:locQualityIssueSeverity="75" its:locQualityIssueProfileRef="http://example.org/qaMovel/v1">tranport inc.</span> air, rail, road, water, cable, pipeline, and space.</para>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/html/locqualityrating1html.html b/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/html/locqualityrating1html.html
new file mode 100644
index 0000000000..668b3323e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/html/locqualityrating1html.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html
+ its-loc-quality-rating-profile-ref="http://example.org/qamodel/v13"
+ its-loc-quality-rating-score="100"
+ its-loc-quality-rating-score-threshold="95"
+ lang="en">
+ <head>
+ <meta charset=utf-8>
+ <title>Rikki-tikki-tavi</title>
+ </head>
+ <body>
+ <p>This is the story of the great war that Rikki-tikki-tavi fought single-handed,
+ through the bath-rooms of the big bungalow in Segowlee cantonment. Darzee, the
+ Tailorbird, helped him, and Chuchundra, the musk-rat, who never comes out into
+ the middle of the floor, but always creeps round by the wall, gave him advice,
+ but Rikki-tikki did the real fighting.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/html/locqualityrating2html.html b/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/html/locqualityrating2html.html
new file mode 100644
index 0000000000..df7ff85737
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/html/locqualityrating2html.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html
+ its-loc-quality-rating-profile-ref="http://example.org/qamodel/v13"
+ its-loc-quality-rating-vote="-1"
+ its-loc-quality-rating-vote-threshold="10"
+ lang="en">
+ <head>
+ <meta charset=utf-8>
+ <title>Rikki-tikki-tavi</title>
+ </head>
+ <body>
+ <p>This is the story of the great war that Rikki-tikki-tavi fought single-handed,
+ through the bath-rooms of the big bungalow in Segowlee cantonment. Darzee, the
+ Tailorbird, helped him, and Chuchundra, the musk-rat, who never comes out into
+ the middle of the floor, but always creeps round by the wall, gave him advice,
+ but Rikki-tikki did the real fighting.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/xml/locqualityrating1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/xml/locqualityrating1xml.xml
new file mode 100644
index 0000000000..e08b1d0bf9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/xml/locqualityrating1xml.xml
@@ -0,0 +1,11 @@
+<doc xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0"
+ its:locQualityRatingScore="100"
+ its:locQualityRatingScoreThreshold="95"
+ its:locQualityRatingProfileRef="http://example.org/qaModel/v13">
+ <title>The Adventures of Tom Sawyer</title>
+ <para>He got home pretty late that night, and when he climbed cautiously in at
+ the window, he uncovered an ambuscade, in the person of his aunt; and when
+ she saw the state his clothes were in her resolution to turn his Saturday
+ holiday into captivity at hard labor became adamantine in its
+ firmness.</para>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/xml/locqualityrating2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/xml/locqualityrating2xml.xml
new file mode 100644
index 0000000000..437fdd26f2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/xml/locqualityrating2xml.xml
@@ -0,0 +1,11 @@
+<doc xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0"
+ its:locQualityRatingVote="-1"
+ its:locQualityRatingVoteThreshold="10"
+ its:locQualityRatingProfileRef="http://example.org/qaModel/v13">
+ <title>The Adventures of Tom Sawyer</title>
+ <para>He got home pretty late that night, and when he climbed cautiously in at
+ the window, he uncovered an ambuscade, in the person of his aunt; and when
+ she saw the state his clothes were in her resolution to turn his Saturday
+ holiday into captivity at hard labor became adamantine in its
+ firmness.</para>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/xml/locqualityrating3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/xml/locqualityrating3xml.xml
new file mode 100644
index 0000000000..28b60154be
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/xml/locqualityrating3xml.xml
@@ -0,0 +1,11 @@
+<doc xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <title>The Adventures of Tom Sawyer</title>
+ <its:span locQualityRatingScore="100"
+ locQualityRatingScoreThreshold="95"
+ locQualityRatingProfileRef="http://example.org/qaModel/v13">
+ <para>He got home pretty late that night, and when he climbed cautiously in at
+ the window, he uncovered an ambuscade, in the person of his aunt; and when
+ she saw the state his clothes were in her resolution to turn his Saturday
+ holiday into captivity at hard labor became adamantine in its
+ firmness.</para></its:span>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/xml/locqualityrating4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/xml/locqualityrating4xml.xml
new file mode 100644
index 0000000000..101566abb7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/locqualityrating/xml/locqualityrating4xml.xml
@@ -0,0 +1,10 @@
+<doc xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <title>The Adventures of Tom Sawyer</title>
+ <its:span locQualityRatingVote="-1"
+ locQualityRatingVoteThreshold="10"
+ locQualityRatingProfileRef="http://example.org/qaModel/v13"><para>He got home pretty late that night, and when he climbed cautiously in at
+ the window, he uncovered an ambuscade, in the person of his aunt; and when
+ she saw the state his clothes were in her resolution to turn his Saturday
+ holiday into captivity at hard labor became adamantine in its
+ firmness.</para></its:span>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence1html.html b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence1html.html
new file mode 100644
index 0000000000..0147866fd9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence1html.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Sentences about European capitals.</title>
+ </head>
+ <body>
+ <p>
+ <span its-mt-confidence="0.8982" its-annotators-ref="mt-confidence|file:///tools.xml#T1"> Dublin is the capital of Ireland.</span>
+ <span its-mt-confidence="0.8536" its-annotators-ref="mt-confidence|file:///tools.xml#T2"> The capital of the Czech Republic is Prague.</span>
+ <span its-mt-confidence="0.7982" its-annotators-ref="mt-confidence|file:///tools.xml#T3">Madrid is the capital of Spain.</span>
+ <span its-mt-confidence="0.9982" its-annotators-ref="mt-confidence|file:///tools.xml#T4">Berlin is the capital of Germany.</span>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence2html.html b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence2html.html
new file mode 100644
index 0000000000..cc943148cc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence2html.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Sentences about Dublin and Prague MTed from Czech with mtConfidence locally.</title>
+ <link href="mtconfidence2htmlrules.xml" rel="its-rules">
+ </head>
+ <body its-annotators-ref="mt-confidence|file:///tools.xml#T0">
+ <p>
+ <span its-annotators-ref="mt-confidence|file:///tools.xml#T1"> Dublin is the capital of Ireland.</span>
+ <span its-annotators-ref="mt-confidence|file:///tools.xml#T2"> The capital of the Czech Republic is Prague.</span>
+ <span its-annotators-ref="mt-confidence|file:///tools.xml#T3">Madrid is the capital of Spain.</span>
+ <span its-annotators-ref="mt-confidence|file:///tools.xml#T4">Berlin is the capital of Germany.</span>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence2htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence2htmlrules.xml
new file mode 100644
index 0000000000..19cb15483f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence2htmlrules.xml
@@ -0,0 +1,3 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:mtConfidenceRule selector="/h:html/h:body/h:p" mtConfidence="0.8982"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence3html.html b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence3html.html
new file mode 100644
index 0000000000..e3edfbdf32
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence3html.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Sentences about Dublin and Prague MTed from Czech with mtConfidence locally.</title>
+ <link href="mtconfidence3htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <p>
+ <span its-annotators-ref="mt-confidence|file:///tools.xml#T1" id="ireland"> Dublin is the capital of Ireland.</span>
+ <span id="czech"> The capital of the Czech Republic is Prague.</span>
+ <span id="germany">Berlin is the capital of Germany.</span>
+ <span id="london">London is the capital of England</span>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence3htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence3htmlrules.xml
new file mode 100644
index 0000000000..f6e20179a1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence3htmlrules.xml
@@ -0,0 +1,5 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="mtParam">ireland</its:param>
+ <its:mtConfidenceRule selector="/h:html/h:body/h:p/h:span[@id=$mtParam]"
+ mtConfidence="0.8982"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence4html.html b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence4html.html
new file mode 100644
index 0000000000..1fe4b6465c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence4html.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <meta charset=utf-8>
+ <title>Example of MT Confidence with annotator references.</title>
+ <link href="mtconfidence4htmlrules.xml" rel="its-rules">
+ </head>
+ <body its-annotators-ref="mt-confidence|file:///tools.xml#T1" >
+ <p its-annotators-ref="text-analysis|file:///tools.xml#T2" >
+ <span id="ireland">Dublin is the capital city of Ireland and has the 50th biggest population density in Europe.</span>
+ <span id="spain">Madrid is the capital of Spain.</span>
+ <span its-annotators-ref="mt-confidence|file:///tools.xml#T3" id="germany">Berlin is the capital of Germany.</span>
+ <span id="england">London is the capital of England</span>
+ </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence4htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence4htmlrules.xml
new file mode 100644
index 0000000000..151a0ff17d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence4htmlrules.xml
@@ -0,0 +1,4 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:mtConfidenceRule selector="/h:html/h:body/h:p/h:span[@id='ireland']"
+ mtConfidence="0.8982"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence5html.html b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence5html.html
new file mode 100644
index 0000000000..fe343db0be
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/html/mtconfidence5html.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <meta charset=utf-8>
+ <title>Sentences about European capitals.</title>
+ <script type="application/its+xml">
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="mtParam">ireland</its:param>
+ <its:mtConfidenceRule selector="/h:html/h:body/h:p/h:span[@id=$mtParam]" mtConfidence="0.8982"/>
+ </its:rules>
+ </script>
+ </head>
+ <body>
+ <p its-annotators-ref="mt-confidence|file:///tools.xml#T1">
+ <span id="ireland"> Dublin is the capital of Ireland.</span>
+ <span> The capital of the Czech Republic is Prague.</span>
+ <span>Madrid is the capital of Spain.</span>
+ <span>Berlin is the capital of Germany.</span>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence1xml.xml
new file mode 100644
index 0000000000..c3cdedad0a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence1xml.xml
@@ -0,0 +1,22 @@
+<text xmlns:its="http://www.w3.org/2005/11/its">
+<head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:mtConfidenceRule selector="/text/body/p/span[@id='ireland']"
+ mtConfidence="0.6982"/>
+ <its:mtConfidenceRule selector="/text/body/p/span[@id='england']"
+ mtConfidence="0.7982"/>
+ <its:mtConfidenceRule selector="/text/body/p/span[@id='spain']"
+ mtConfidence="0.8982"/>
+ <its:mtConfidenceRule selector="/text/body/p/span[@id='germany']"
+ mtConfidence="0.8982"/>
+ </its:rules>
+</head>
+ <body>
+ <p>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T1" id="ireland">Dublin is the capital city of Ireland and has the 50th biggest population density in Europe.</span>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T2" id="spain">Madrid is the capital of Spain.</span>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T3" id="germany">Berlin is the capital of Germany.</span>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T4" id="england">London is the capital of England</span>
+ </p>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence2xml.xml
new file mode 100644
index 0000000000..2f49416377
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence2xml.xml
@@ -0,0 +1,13 @@
+<text xmlns:its="http://www.w3.org/2005/11/its">
+<head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:type="simple" xlink:href="mtconfidence2xmlrules.xml"/>
+</head>
+ <body>
+ <p>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T1" id="ireland">Dublin is the capital city of Ireland and has the 50th biggest population density in Europe.</span>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T2" id="spain">Madrid is the capital of Spain.</span>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T3" id="germany">Berlin is the capital of Germany.</span>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T4" id="england">London is the capital of England</span>
+ </p>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence2xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence2xmlrules.xml
new file mode 100644
index 0000000000..36b0450b96
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence2xmlrules.xml
@@ -0,0 +1,10 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:mtConfidenceRule selector="/text/body/p/span[@id='ireland']"
+ mtConfidence="0.6982"/>
+ <its:mtConfidenceRule selector="/text/body/p/span[@id='england']"
+ mtConfidence="0.7982"/>
+ <its:mtConfidenceRule selector="/text/body/p/span[@id='spain']"
+ mtConfidence="0.8982"/>
+ <its:mtConfidenceRule selector="/text/body/p/span[@id='germany']"
+ mtConfidence="0.5982"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence3xml.xml
new file mode 100644
index 0000000000..31be4342c9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence3xml.xml
@@ -0,0 +1,10 @@
+<text xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <body>
+ <p>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T1" its:mtConfidence="0.6982">Dublin is the capital city of Ireland and has the 50th biggest population density in Europe.</span>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T2" its:mtConfidence="0.7982">Madrid is the capital of Spain.</span>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T3" its:mtConfidence="0.9982">Berlin is the capital of Germany.</span>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T4" its:mtConfidence="0.6982">London is the capital of England</span>
+ </p>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence4xml.xml
new file mode 100644
index 0000000000..04efe69da1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence4xml.xml
@@ -0,0 +1,10 @@
+<text xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <body>
+ <p>
+ <its:span annotatorsRef="mt-confidence|file:///tools.xml#T1" mtConfidence="0.9982">Dublin is the capital city of Ireland.</its:span>
+ <its:span annotatorsRef="mt-confidence|file:///tools.xml#T2" mtConfidence="0.8982">Madrid is the capital of Spain.</its:span>
+ <its:span annotatorsRef="mt-confidence|file:///tools.xml#T3" mtConfidence="0.7982">Berlin is the capital of Germany.</its:span>
+ <its:span annotatorsRef="mt-confidence|file:///tools.xml#T4" mtConfidence="0.6982">London is the capital of England</its:span>
+ </p>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence5xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence5xml.xml
new file mode 100644
index 0000000000..3e8484cec6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence5xml.xml
@@ -0,0 +1,13 @@
+<text xmlns:its="http://www.w3.org/2005/11/its">
+<head>
+ <its:rules xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:type="simple" xlink:href="mtconfidence5xmlrules.xml"/>
+</head>
+ <body>
+ <p>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T1" id="ireland">Dublin is the capital city of Ireland and has the 50th biggest population density in Europe.</span>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T2" id="spain">Madrid is the capital of Spain.</span>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T3" id="germany">Berlin is the capital of Germany.</span>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T4" id="england">London is the capital of England</span>
+ </p>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence5xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence5xmlrules.xml
new file mode 100644
index 0000000000..296ff363ac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence5xmlrules.xml
@@ -0,0 +1,4 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="mtconfidenceParam">ireland</its:param>
+ <its:mtConfidenceRule selector="//span[@id=$mtconfidenceParam]" mtConfidence="0.6982"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence6xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence6xml.xml
new file mode 100644
index 0000000000..c846e6c7c0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence6xml.xml
@@ -0,0 +1,16 @@
+<text xmlns:its="http://www.w3.org/2005/11/its">
+<head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="mtconfidenceParam">ireland</its:param>
+ <its:mtConfidenceRule selector="//span[@id=$mtconfidenceParam]" mtConfidence="0.6982"/>
+ </its:rules>
+</head>
+ <body>
+ <p>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T1" id="ireland">Dublin is the capital city of Ireland and has the 50th biggest population density in Europe.</span>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T2" id="spain">Madrid is the capital of Spain.</span>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T3" id="germany">Berlin is the capital of Germany.</span>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T4" id="england">London is the capital of England</span>
+ </p>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence7xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence7xml.xml
new file mode 100644
index 0000000000..b0d545b8cf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/mtconfidence/xml/mtconfidence7xml.xml
@@ -0,0 +1,16 @@
+<text xmlns:its="http://www.w3.org/2005/11/its">
+<head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:mtConfidenceRule selector="/text/body/p/span[@id='germany']"
+ mtConfidence="0.8982"/>
+ </its:rules>
+</head>
+<body its:annotatorsRef="mt-confidence|file:///tools.xml#T1" >
+ <p its:annotatorsRef="text-analysis|file:///tools.xml#T2" >
+ <span id="ireland">Dublin is the capital city of Ireland and has the 50th biggest population density in Europe.</span>
+ <span id="spain">Madrid is the capital of Spain.</span>
+ <span its:annotatorsRef="mt-confidence|file:///tools.xml#T3" id="germany">Berlin is the capital of Germany.</span>
+ <span id="england">London is the capital of England</span>
+ </p>
+</body>
+</text> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace1xml.xml
new file mode 100644
index 0000000000..16330a2ee5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace1xml.xml
@@ -0,0 +1,13 @@
+<book xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <info>
+ <its:rules version="2.0">
+ <its:preserveSpaceRule selector="//verse" space="preserve"/>
+ </its:rules>
+ </info>
+ <verse>
+ 'Twas brillig, and the slithy toves
+ Did gyre and gimble in the wabe;
+ All mimsy were the borogoves,
+ And the mome raths outgrabe.
+ </verse>
+</book>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace2xml.xml
new file mode 100644
index 0000000000..b131356abd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace2xml.xml
@@ -0,0 +1,8 @@
+<book xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <verse xml:space="preserve">
+ 'Twas brillig, and the slithy toves
+ Did gyre and gimble in the wabe;
+ All mimsy were the borogoves,
+ And the mome raths outgrabe.
+ </verse>
+</book>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace3xml.xml
new file mode 100644
index 0000000000..e16d438d68
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace3xml.xml
@@ -0,0 +1,11 @@
+<book xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0" >
+ <info>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:href="preservespace3xmlrules.xml"/>
+ </info>
+ <verse>
+'Twas brillig, and the slithy toves
+ Did gyre and gimble in the wabe;
+ All mimsy were the borogoves,
+ And the mome raths outgrabe.
+ </verse>
+</book>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace3xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace3xmlrules.xml
new file mode 100644
index 0000000000..8b05d415e5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace3xmlrules.xml
@@ -0,0 +1,3 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:preserveSpaceRule selector="//verse" space="preserve"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace4xml.xml
new file mode 100644
index 0000000000..a9d919dd24
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace4xml.xml
@@ -0,0 +1,8 @@
+<book xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <its:span xml:space="preserve">
+ 'Twas brillig, and the slithy toves
+ Did gyre and gimble in the wabe;
+ All mimsy were the borogoves,
+ And the mome raths outgrabe.
+ </its:span >
+</book>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace5xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace5xml.xml
new file mode 100644
index 0000000000..57b47e1747
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace5xml.xml
@@ -0,0 +1,14 @@
+<book xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <info>
+ <its:rules version="2.0">
+ <its:param name="preserverspaceParam">firstverse</its:param>
+ <its:preserveSpaceRule selector="//verse[@id=$preserverspaceParam]" space="preserve"/>
+ </its:rules>
+ </info>
+ <verse id="firstverse">
+ 'Twas brillig, and the slithy toves
+ Did gyre and gimble in the wabe;
+ All mimsy were the borogoves,
+ And the mome raths outgrabe.
+ </verse>
+</book>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace6xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace6xml.xml
new file mode 100644
index 0000000000..ac3cc62864
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace6xml.xml
@@ -0,0 +1,9 @@
+<book xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:type="simple" xlink:href="preservespace6xmlrules.xml"/>
+ <verse id="firstverse">
+ 'Twas brillig, and the slithy toves
+ Did gyre and gimble in the wabe;
+ All mimsy were the borogoves,
+ And the mome raths outgrabe.
+ </verse>
+</book>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace6xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace6xmlrules.xml
new file mode 100644
index 0000000000..d626b57f26
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/preservespace/xml/preservespace6xmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="preserverspaceParam">firstverse</its:param>
+ <its:preserveSpaceRule selector="//verse[@id=$preserverspaceParam]" space="preserve"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance1html.html b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance1html.html
new file mode 100644
index 0000000000..3254d61dd3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance1html.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test</title>
+ <script id="pr1" type="application/its+xml">
+ <its:provenanceRecords xml:id="pr1" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:provenanceRecord
+ tool="onlinemtex"
+ revPerson="James Joyce"
+ revTool="mycat-v1.0"
+ revOrg="acme-CAT-v2.3"
+ provRef="http://www.examplelsp.com/excontent987/production/prov/e6354"/>
+ </its:provenanceRecords>
+ </script>
+ <script id="pr2" type="application/its+xml">
+ <its:provenanceRecords xml:id="pr2" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:provenanceRecord
+ person="John Doe"
+ org="legaltrans-ex"
+ revPerson="Tommy Atkins"
+ revOrg="vistatec"
+ provRef="http://www.vistatec.com/job-12-7-15-X31/reviewed/prov/re8573469"/>
+ </its:provenanceRecords>
+ </script>
+ <link href=provenance1htmlrules.xml rel=its-rules>
+ </head>
+ <body>
+ <p class="prov-records-ref"><a href="#pr1"></a>This paragraph was translated from the machine.</p>
+ <p class="prov-records-ref"><a href="#pr2"></a>This text was translated directly by a person.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance1htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance1htmlrules.xml
new file mode 100644
index 0000000000..5fe84aeb20
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance1htmlrules.xml
@@ -0,0 +1,3 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0" xmlns:h="http://www.w3.org/1999/xhtml">
+ <its:provRule selector="//*[@class='prov-records-ref']" provenanceRecordsRefPointer="h:a/@href"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance2html.html b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance2html.html
new file mode 100644
index 0000000000..214693ff72
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance2html.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test</title>
+ <script type="application/its+xml">
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0" xmlns:h="http://www.w3.org/1999/xhtml">
+ <its:provRule selector="//*[@class='prov-records-ref']" provenanceRecordsRefPointer="h:a/@href"/>
+ </its:rules>
+ </script>
+ <script id="pr1" type="application/its+xml">
+ <its:provenanceRecords xml:id="pr1" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:provenanceRecord
+ toolRef="http://www.provdata.com/tool/#onlinemtex"
+ revPerson="James Joyce"
+ revToolRef="http://www.provdata.com/RevTool/#mycat-v1"
+ revOrg="acme-CAT-v2.3"
+ provRef="http://www.examplelsp.com/excontent987/production/prov/e6354"/>
+ </its:provenanceRecords>
+ </script>
+ <script id="pr2" type="application/its+xml">
+ <its:provenanceRecords xml:id="pr2" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:provenanceRecord
+ personRef="http://www.provdata.com/person/#John_Doe"
+ orgRef="http://www.provdata.com/org/#legaltrans-ex"
+ revPersonRef="http://www.provdata.com/RevPerson/#Tommy_Atkins"
+ revOrgRef="http://www.provdata.com/RevOrg/#vistatec"
+ provRef="http://www.vistatec.com/job-12-7-15-X31/reviewed/prov/re8573469"/>
+ </its:provenanceRecords>
+ </script>
+ </head>
+ <body>
+ <p class="prov-records-ref"><a href="#pr1"></a>This paragraph was translated from the machine.</p>
+ <p class="prov-records-ref"><a href="#pr2"></a>This text was translated directly by a person.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance3html.html b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance3html.html
new file mode 100644
index 0000000000..75a99a3694
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance3html.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Test</title>
+ <script id="pr1" type="application/its+xml">
+ <its:provenanceRecords xml:id="pr1" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:provenanceRecord
+ toolRef="http://www.onlinemtex.com/2012/7/25/wsdl/"
+ org="acme-CAT-v2.3"
+ revToolRef="http://www.mycat.com/v1.0/download"
+ revOrg="acme-CAT-v2.3"
+ provRef="http://www.examplelsp.com/excontent987/production/prov/e6354"/>
+ </its:provenanceRecords>
+ </script>
+ <script id="pr2" type="application/its+xml">
+ <its:provenanceRecords xml:id="pr2" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:provenanceRecord
+ person="John Doe"
+ orgRef="http://www.legaltrans-ex.com/"
+ revPerson="Tommy Atkins"
+ revOrgRef="http://www.vistatec.com/"
+ provRef="http://www.vistatec.com/job-12-7-15-X31/reviewed/prov/re8573469"/>
+ </its:provenanceRecords>
+ </script>
+ </head>
+ <body>
+ <p Its-Provenance-Records-Ref="#pr1"> This paragraph was translated from the machine.</p>
+ <p its-provenance-records-ref="#pr2">This text was translated directly by a person.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance4html.html b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance4html.html
new file mode 100644
index 0000000000..0f387daccb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance4html.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <meta charset=utf-8>
+ <title>Translation Revision Provenance Agent: Local Test in HTML5</title>
+ </head>
+ <body>
+ <p id="p1"
+ its-person-ref="http://www.provdata.com/person/#John_Doe"
+ its-tool-ref="http://www.onlinemtex.com/2012/7/25/wsdl/"
+ its-ORG="acme-CAT-v2.3"
+ its-rev-tool-ref="http://www.mycat.com/v1.0/download"
+ its-rev-org="acme-CAT-v2.3"
+ its-prov-ref="http://www.examplelsp.com/excontent987/production/prov/e6354"> This paragraph was translated from the machine.</p>
+ <p class="legal-notice"
+ ITS-tool="onlinemtex"
+ its-person="John Doe"
+ its-org-ref="http://www.legaltrans-ex.com/"
+ its-rev-person="Tommy Atkins"
+ its-rev-org-ref="http://www.vistatec.com/"
+ its-prov-ref="http://www.vistatec.com/job-12-7-15-X31/reviewed/prov/re8573469">This text was translated directly by a person.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance5html.html b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance5html.html
new file mode 100644
index 0000000000..bb2f6bf0ba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance5html.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test</title>
+ <script id="pr1" type="application/its+xml">
+ <its:provenanceRecords xml:id="pr1" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:provenanceRecord
+ toolRef="http://www.provdata.com/tool/#onlinemtex"
+ revPerson="James Joyce"
+ revToolRef="http://www.provdata.com/RevTool/#mycat-v1"
+ revOrg="acme-CAT-v2.3"
+ provRef="http://www.examplelsp.com/excontent987/production/prov/e6354"/>
+ <its:provenanceRecord
+ revPerson="John Smith"
+ revOrg="Linguaserve I.S. S.A." />
+ </its:provenanceRecords>
+ </script>
+ <script id="pr2" type="application/its+xml">
+ <its:provenanceRecords xml:id="pr2" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:provenanceRecord
+ personRef="http://www.provdata.com/person/#John_Doe"
+ orgRef="http://www.provdata.com/org/#legaltrans-ex"
+ revPersonRef="http://www.provdata.com/RevPerson/#Tommy_Atkins"
+ revOrgRef="http://www.provdata.com/RevOrg/#vistatec"
+ provRef="http://www.vistatec.com/job-12-7-15-X31/reviewed/prov/re8573469"/>
+ </its:provenanceRecords>
+ </script>
+ <link href=provenance5htmlrules.xml rel=its-rules>
+ </head>
+ <body>
+ <p class="prov-records-ref1"><a href="#pr1"></a>This paragraph was translated from the machine and subsequently revised.</p>
+ <p class="prov-records-ref2"><a href="#pr2"></a>This text was translated directly by a person.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance5htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance5htmlrules.xml
new file mode 100644
index 0000000000..de701d979e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance5htmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0" xmlns:h="http://www.w3.org/1999/xhtml">
+ <its:param name="provenanceParam">prov-records-ref1</its:param>
+ <its:provRule selector="//*[@class=$provenanceParam]" provenanceRecordsRefPointer="h:a/@href"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance6html.html b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance6html.html
new file mode 100644
index 0000000000..a4952fc664
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance6html.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test</title>
+ </head>
+ <body>
+ <p its-provenance-records-ref="provenance6htmlstandoff.xml#pr1">This paragraph was translated from the machine and subsequently revised.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance6htmlstandoff.xml b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance6htmlstandoff.xml
new file mode 100644
index 0000000000..0be1638a67
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance6htmlstandoff.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" ?>
+<someDataFile xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+<its:provenanceRecords xml:id="pr1">
+ <its:provenanceRecord
+ toolRef="http://www.provdata.com/tool/#onlinemtex"
+ revPerson="James Joyce"
+ revToolRef="http://www.provdata.com/RevTool/#mycat-v1"
+ revOrg="acme-CAT-v2.3"
+ provRef="http://www.examplelsp.com/excontent987/production/prov/e6354"/>
+ <its:provenanceRecord
+ revPerson="John Smith"
+ revOrg="Linguaserve I.S. S.A." />
+ </its:provenanceRecords>
+</someDataFile>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance7html.html b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance7html.html
new file mode 100644
index 0000000000..7ddd66a606
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance7html.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test</title>
+ </head>
+ <body>
+ <p its-provenance-records-ref="provenance7htmlstandoff.html#pr1">This paragraph was translated from the machine and subsequently revised.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance7htmlstandoff.html b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance7htmlstandoff.html
new file mode 100644
index 0000000000..04e0070558
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance7htmlstandoff.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test</title>
+ <script id="pr1" type="application/its+xml">
+ <its:provenanceRecords xml:id="pr1" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:provenanceRecord
+ toolRef="http://www.provdata.com/tool/#onlinemtex"
+ revPerson="James Joyce"
+ revToolRef="http://www.provdata.com/RevTool/#mycat-v1"
+ revOrg="acme-CAT-v2.3"
+ provRef="http://www.examplelsp.com/excontent987/production/prov/e6354"/>
+ <its:provenanceRecord
+ revPerson="John Smith"
+ revOrg="Linguaserve I.S. S.A." />
+ </its:provenanceRecords>
+ </script>
+ </head>
+ <body>
+ <p id="#pr1">Here is the information of provenance.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance8html.html b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance8html.html
new file mode 100644
index 0000000000..a0fc83300c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/html/provenance8html.html
@@ -0,0 +1,37 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test</title>
+ <script id="pr1" type="application/its+xml">
+ <its:provenanceRecords xml:id="pr1" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:provenanceRecord
+ tool="onlinemtex"
+ revPerson="James Joyce"
+ revTool="mycat-v1.0"
+ revOrg="acme-CAT-v2.3"
+ provRef="http://www.examplelsp.com/excontent987/production/prov/e6354"/>
+ </its:provenanceRecords>
+ </script>
+ <script id="pr2" type="application/its+xml">
+ <its:provenanceRecords xml:id="pr2" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:provenanceRecord
+ person="John Doe"
+ org="legaltrans-ex"
+ revPerson="Tommy Atkins"
+ revOrg="vistatec"
+ provRef="http://www.vistatec.com/job-12-7-15-X31/reviewed/prov/re8573469"/>
+ </its:provenanceRecords>
+ </script>
+ <script type="application/its+xml">
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="provenanceParam">prov-records-ref1</its:param>
+ <its:provRule selector="//*[@class=$provenanceParam]" provenanceRecordsRefPointer="h:a/@href"/>
+ </its:rules>
+ </script>
+ </head>
+ <body>
+ <p class="prov-records-ref1"><a href="#pr1"></a>This paragraph was translated from the machine.</p>
+ <p class="prov-records-ref2"><a href="#pr2"></a>This text was translated directly by a person.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance1xml.xml
new file mode 100644
index 0000000000..9c154797e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance1xml.xml
@@ -0,0 +1,28 @@
+<text xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <dc:creator>John Doe</dc:creator>
+ <its:provenanceRecords xml:id="pr1">
+ <its:provenanceRecord
+ tool="onlinemtex"
+ revPerson="James Joyce"
+ revTool="mycat-v1.0"
+ revOrg="acme-CAT-v2.3"
+ provRef="http://www.examplelsp.com/excontent987/production/prov/e6354"/>
+ </its:provenanceRecords>
+ <its:provenanceRecords xml:id="pr2">
+ <its:provenanceRecord
+ person="John Doe"
+ org="legaltrans-ex"
+ revPerson="Tommy Atkins"
+ revOrg="vistatec"
+ provRef="http://www.examplelsp.com/excontent987/legal/prov/e6354 http://www.vistatec.com/job-12-7-15-X31/reviewed/prov/re8573469"/>
+ </its:provenanceRecords>
+ <its:rules version="2.0">
+ <its:provRule selector="//*[@ref]" provenanceRecordsRefPointer="@ref"/>
+ </its:rules>
+ <title>Translation Revision Provenance Agent: Global Test in XML</title>
+ <body>
+ <par ref="#pr1"> This paragraph was translated from the machine.</par>
+ <legalnotice ref="#pr2">This text was translated directly by a person.</legalnotice>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance2xml.xml
new file mode 100644
index 0000000000..c30afe8d39
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance2xml.xml
@@ -0,0 +1,29 @@
+<text xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <dc:creator>John Doe</dc:creator>
+ <its:provenanceRecords xml:id="pr1">
+ <its:provenanceRecord
+ toolRef="http://www.provdata.com/tool/#onlinemtex"
+ revPerson="James Joyce"
+ revToolRef="http://www.provdata.com/RevTool/#mycat-v1"
+ revOrg="acme-CAT-v2.3"
+ provRef="http://www.examplelsp.com/excontent987/production/prov/e6354"/>
+ </its:provenanceRecords>
+ <its:provenanceRecords xml:id="pr2">
+ <its:provenanceRecord
+ personRef="http://www.provdata.com/person/#John_Doe"
+ orgRef="http://www.provdata.com/org/#legaltrans-ex"
+ revPersonRef="http://www.provdata.com/RevPerson/#Tommy_Atkins"
+ revOrgRef="http://www.provdata.com/RevOrg/#vistatec"
+ provRef="http://www.examplelsp.com/excontent987/legal/prov/e6354 http://www.vistatec.com/job-12-7-15-X31/reviewed/prov/re8573469"/>
+ </its:provenanceRecords>
+ <its:rules version="2.0">
+ <its:provRule selector="//*[@ref]" provenanceRecordsRefPointer="@ref"/>
+ </its:rules>
+ <title>Translation Revision Provenance Agent: Global Test in XML</title>
+ <body>
+ <par ref="#pr1"> This paragraph was translated from the machine.</par>
+ <legalnotice ref="#pr2">This text was
+ translated directly by a person.</legalnotice>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance3xml.xml
new file mode 100644
index 0000000000..a356db347e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance3xml.xml
@@ -0,0 +1,27 @@
+<text xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <dc:creator>John Doe</dc:creator>
+ <its:provenanceRecords xml:id="pr1">
+ <its:provenanceRecord
+ tool="onlinemtex"
+ revPerson="James Joyce"
+ revTool="mycat-v1.0"
+ revOrg="acme-CAT-v2.3"
+ provRef="http://www.examplelsp.com/excontent987/production/prov/e6354"/>
+ </its:provenanceRecords>
+ <its:provenanceRecords xml:id="pr2">
+ <its:provenanceRecord
+ person="John Doe"
+ org="legaltrans-ex"
+ revPerson="Tommy Atkins"
+ revOrg="vistatec"
+ provRef="http://www.examplelsp.com/excontent987/legal/prov/e6354 http://www.vistatec.com/job-12-7-15-X31/reviewed/prov/re8573469"/>
+ </its:provenanceRecords>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="provenance3xmlrules.xml"/>
+ <title>Translation Revision Provenance Agent: Global Test in XML</title>
+ <body>
+ <par ref="#pr1"> This paragraph was translated from the machine.</par>
+ <legalnotice ref="#pr2">This text was
+ translated directly by a person.</legalnotice>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance3xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance3xmlrules.xml
new file mode 100644
index 0000000000..30f00d3e87
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance3xmlrules.xml
@@ -0,0 +1,3 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:provRule selector="//*[@ref]" provenanceRecordsRefPointer="@ref"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance4xml.xml
new file mode 100644
index 0000000000..dde7dbb1c7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance4xml.xml
@@ -0,0 +1,27 @@
+<text xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <dc:creator>John Doe</dc:creator>
+ <its:provenanceRecords xml:id="pr1">
+ <its:provenanceRecord
+ toolRef="http://www.provdata.com/tool/#onlinemtex"
+ revPerson="James Joyce"
+ revToolRef="http://www.provdata.com/RevTool/#mycat-v1"
+ revOrg="acme-CAT-v2.3"
+ provRef="http://www.examplelsp.com/excontent987/production/prov/e6354"/>
+ </its:provenanceRecords>
+ <its:provenanceRecords xml:id="pr2">
+ <its:provenanceRecord
+ personRef="http://www.provdata.com/person/#John_Doe"
+ orgRef="http://www.provdata.com/org/#legaltrans-ex"
+ revPersonRef="http://www.provdata.com/RevPerson/#Tommy_Atkins"
+ revOrgRef="http://www.provdata.com/RevOrg/#vistatec"
+ provRef="http://www.examplelsp.com/excontent987/legal/prov/e6354 http://www.vistatec.com/job-12-7-15-X31/reviewed/prov/re8573469"/>
+ </its:provenanceRecords>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="provenance4xmlrules.xml"/>
+ <title>Translation Revision Provenance Agent: Global Test in XML</title>
+ <body>
+ <par ref="#pr1"> This paragraph was translated from the machine.</par>
+ <legalnotice ref="#pr2">This text was
+ translated directly by a person.</legalnotice>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance4xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance4xmlrules.xml
new file mode 100644
index 0000000000..0b1e34ea8a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance4xmlrules.xml
@@ -0,0 +1,3 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:provRule selector="//*[@ref]" provenanceRecordsRefPointer="@ref"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance5xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance5xml.xml
new file mode 100644
index 0000000000..f82e8994b5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance5xml.xml
@@ -0,0 +1,30 @@
+<text xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <dc:creator>John Doe</dc:creator>
+ <its:provenanceRecords xml:id="pr1">
+ <its:provenanceRecord
+ tool="onlinemtex"
+ revPerson="James Joyce"
+ revTool="mycat-v1.0"
+ revOrg="acme-CAT-v2.3"
+ provRef="http://www.examplelsp.com/excontent987/production/prov/e6354"/>
+ </its:provenanceRecords>
+ <its:provenanceRecords xml:id="pr2">
+ <its:provenanceRecord
+ person="John Doe"
+ org="legaltrans-ex"
+ revPerson="Tommy Atkins"
+ revOrg="vistatec"
+ provRef="http://www.examplelsp.com/excontent987/legal/prov/e6354 http://www.vistatec.com/job-12-7-15-X31/reviewed/prov/re8573469"/>
+ </its:provenanceRecords>
+ <its:rules version="2.0">
+ <its:param name="provenanceParam">#pr1</its:param>
+ <its:provRule selector="//*[@ref=$provenanceParam]" provenanceRecordsRefPointer="@ref"/>
+ </its:rules>
+ <title>Translation Revision Provenance Agent: Global Test in XML</title>
+ <body>
+ <par ref="#pr1"> This paragraph was translated from the machine.</par>
+ <legalnotice ref="#pr2">This text was
+ translated directly by a person.</legalnotice>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance6xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance6xml.xml
new file mode 100644
index 0000000000..0b51543800
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance6xml.xml
@@ -0,0 +1,27 @@
+<text xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <dc:creator>John Doe</dc:creator>
+ <its:provenanceRecords xml:id="pr1">
+ <its:provenanceRecord
+ tool="onlinemtex"
+ revPerson="James Joyce"
+ revTool="mycat-v1.0"
+ revOrg="acme-CAT-v2.3"
+ provRef="http://www.examplelsp.com/excontent987/production/prov/e6354"/>
+ </its:provenanceRecords>
+ <its:provenanceRecords xml:id="pr2">
+ <its:provenanceRecord
+ person="John Doe"
+ org="legaltrans-ex"
+ revPerson="Tommy Atkins"
+ revOrg="vistatec"
+ provRef="http://www.examplelsp.com/excontent987/legal/prov/e6354 http://www.vistatec.com/job-12-7-15-X31/reviewed/prov/re8573469"/>
+ </its:provenanceRecords>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="provenance6xmlrules.xml"/>
+ <title>Translation Revision Provenance Agent: Global Test in XML</title>
+ <body>
+ <par ref="#pr1"> This paragraph was translated from the machine.</par>
+ <legalnotice ref="#pr2">This text was
+ translated directly by a person.</legalnotice>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance6xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance6xmlrules.xml
new file mode 100644
index 0000000000..e7e74a831b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance6xmlrules.xml
@@ -0,0 +1,4 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="provenanceParam">#pr1</its:param>
+ <its:provRule selector="//*[@ref=$provenanceParam]" provenanceRecordsRefPointer="@ref"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance7xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance7xml.xml
new file mode 100644
index 0000000000..e099e157eb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance7xml.xml
@@ -0,0 +1,20 @@
+<text xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <title>Translation Revision Provenance Agent: Local Test in XML</title>
+ <body>
+ <par its:personRef="http://www.provdata.com/person/#John_Doe"
+ its:toolRef="http://www.onlinemtex.com/2012/7/25/wsdl/"
+ its:org="acme-CAT-v2.3"
+ its:revToolRef="http://www.mycat.com/v1.0/download"
+ its:revOrg="acme-CAT-v2.3"
+ its:provRef="http://www.examplelsp.com/excontent987/production/prov/e6354"
+ >This paragraph was translated from the machine.</par>
+ <legalnotice its:tool="onlinemtex"
+ its:person="John Doe"
+ its:orgRef="http://www.legaltrans-ex.com/"
+ its:revPerson="Tommy Atkins"
+ its:revOrgRef="http://www.vistatec.com/"
+ its:provRef="http://www.examplelsp.com/excontent987/legal/prov/e6354 http://www.vistatec.com/job-12-7-15-X31/reviewed/prov/re8573469"
+ >This text was translated directly by a person.</legalnotice>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance8xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance8xml.xml
new file mode 100644
index 0000000000..c905730fcb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/provenance/xml/provenance8xml.xml
@@ -0,0 +1,20 @@
+<text xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <title>Translation Revision Provenance Agent: Local Test in XML</title>
+ <body>
+ <its:span personRef="http://www.provdata.com/person/#John_Doe"
+ toolRef="http://www.onlinemtex.com/2012/7/25/wsdl/"
+ org="acme-CAT-v2.3"
+ revToolRef="http://www.mycat.com/v1.0/download"
+ revOrg="acme-CAT-v2.3"
+ provRef="http://www.examplelsp.com/excontent987/production/prov/e6354"
+ >This paragraph was translated from the machine.</its:span>
+ <its:span tool="onlinemtex"
+ person="John Doe"
+ orgRef="http://www.legaltrans-ex.com/"
+ revPerson="Tommy Atkins"
+ revOrgRef="http://www.vistatec.com/"
+ provRef="http://www.examplelsp.com/excontent987/legal/prov/e6354 http://www.vistatec.com/job-12-7-15-X31/reviewed/prov/re8573469"
+ >This text was translated directly by a person.</its:span>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize1html.html b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize1html.html
new file mode 100644
index 0000000000..f2dad64387
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize1html.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Storage Size</title>
+ </head>
+ <body>
+ <p>String to translate:</p>
+ <p contenteditable="true" id="123" its-storage-size="25" its-storage-encoding="ISO-8859-1" its-line-break-type="LF">Papua New-Guinea</p>
+ <p contenteditable="true" id="139" its-storage-size="25" its-storage-encoding="ISO-8859-1" its-line-break-type="lF">Dominican Replubic</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize2html.html b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize2html.html
new file mode 100644
index 0000000000..ff1b5bdf8c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize2html.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <title>Storage Size</title>
+ <link href="storagesize2htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <b>String to translate:</b>
+ <p contenteditable="true" id="123">Papua New-Guinea</p>
+ <p contenteditable="true" id="139">Dominican Replubic</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize2htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize2htmlrules.xml
new file mode 100644
index 0000000000..93d0bfa61f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize2htmlrules.xml
@@ -0,0 +1,3 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:storageSizeRule selector="//h:p" storageSize="25" storageEncoding="ISO-8859-1"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize3html.html b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize3html.html
new file mode 100644
index 0000000000..364e97f8ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize3html.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Storage Size</title>
+ <link href="storagesize3htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <b>String to translate:</b>
+ <p contenteditable="true" id="123">Papua New-Guinea</p>
+ <p contenteditable="true" id="139">Dominican Replubic</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize3htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize3htmlrules.xml
new file mode 100644
index 0000000000..4e8b23d3d5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize3htmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="storagesizeParam">123</its:param>
+ <its:storageSizeRule selector="//h:p[@id=$storagesizeParam]" storageSize="25" storageEncoding="ISO-8859-1"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize4html.html b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize4html.html
new file mode 100644
index 0000000000..4ec272a4d3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/html/storagesize4html.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <script type="application/its+xml">
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="storagesizePapParam">123</its:param>
+ <its:param name="storagesizeDomParam">139</its:param>
+ <its:storageSizeRule selector="//h:p[@id=$storagesizePapParam]" storageSize="25" storageEncoding="ISO-8859-1"/>
+ <its:storageSizeRule selector="//h:p[@id=$storagesizeDomParam]" storageSize="25" storageEncoding="ISO-8859-1"/>
+ </its:rules>
+ </script>
+ <meta charset=utf-8>
+ <title>Storage Size</title>
+ </head>
+ <body>
+ <b>String to translate:</b>
+ <p contenteditable="true" id="123">Papua New-Guinea</p>
+ <p contenteditable="true" id="139">Dominican Replubic</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize1xml.xml
new file mode 100644
index 0000000000..c003af2ce7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize1xml.xml
@@ -0,0 +1,10 @@
+<db>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:storageSizeRule selector="//country" storageSize="25" storageEncoding="ISO-8859-1"/>
+ </its:rules>
+ <data>
+ <country id="123">Papouasie-Nouvelle-Guinée</country>
+ <country id="139">République Dominicaine</country>
+ </data>
+</db>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize2xml.xml
new file mode 100644
index 0000000000..343b4b4a9f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize2xml.xml
@@ -0,0 +1,8 @@
+<fields>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:storageSizeRule selector="//field" storageSizePointer="@max" storageEncodingPointer="@encoding"/>
+ </its:rules>
+ <field type="country" id="123" max="25" encoding="ISO-8859-1">Papouasie-Nouvelle-Guinée</field>
+ <field type="country" id="139" max="25" encoding="ISO-8859-1">République Dominicaine</field>
+</fields>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize3xml.xml
new file mode 100644
index 0000000000..02b07d946c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize3xml.xml
@@ -0,0 +1,8 @@
+<db>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:type="simple" xlink:href="storagesize3xmlrules.xml"/>
+ <data>
+ <country id="123">Papouasie-Nouvelle-Guinée</country>
+ <country id="139">République Dominicaine</country>
+ </data>
+</db>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize3xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize3xmlrules.xml
new file mode 100644
index 0000000000..0813511020
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize3xmlrules.xml
@@ -0,0 +1,3 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:storageSizeRule selector="//country" storageSize="25" storageEncoding="ISO-8859-1"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize4xml.xml
new file mode 100644
index 0000000000..a48879007b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize4xml.xml
@@ -0,0 +1,6 @@
+<fields>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:type="simple" xlink:href="storagesize4xmlrules.xml"/>
+ <field type="country" id="123" max="25" encoding="ISO-8859-1">Papouasie-Nouvelle-Guinée</field>
+ <field type="country" id="139" max="25" encoding="ISO-8859-1">République Dominicaine</field>
+</fields>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize4xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize4xmlrules.xml
new file mode 100644
index 0000000000..50be2ad803
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize4xmlrules.xml
@@ -0,0 +1,3 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:storageSizeRule selector="//field" storageSizePointer="@max" storageEncodingPointer="@encoding"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize5xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize5xml.xml
new file mode 100644
index 0000000000..cf7ff61030
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize5xml.xml
@@ -0,0 +1,5 @@
+<messages xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <var num="panelA1_Continue" its:storageSize="8" its:storageEncoding="UTF-16">CONTINUE</var>
+ <var num="panelA1_Stop" its:storageSize="8" its:storageEncoding="UTF-16">STOP</var>
+ <var num="panelB5_Cancel" its:storageSize="12" its:storageEncoding="UTF-16">CANCEL</var>
+</messages>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize6xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize6xml.xml
new file mode 100644
index 0000000000..21cfbae15d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize6xml.xml
@@ -0,0 +1,5 @@
+<messages xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <var num="panelA1_Continue" its:storageSize="8" its:storageEncoding="UTF-16" its:lineBreakType="lf">CONTINUE</var>
+ <var num="panelA1_Stop" its:storageSize="8" its:storageEncoding="UTF-16" its:lineBreakType="lf">STOP</var>
+ <var num="panelB5_Cancel" its:storageSize="12" its:storageEncoding="UTF-16" its:lineBreakType="lf">CANCEL</var>
+</messages>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize7xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize7xml.xml
new file mode 100644
index 0000000000..d090b0da64
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize7xml.xml
@@ -0,0 +1,8 @@
+<db>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:type="simple" xlink:href="storagesize7xmlrules.xml"/>
+ <data>
+ <country id="123">Papouasie-Nouvelle-Guinée</country>
+ <country id="139">République Dominicaine</country>
+ </data>
+</db>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize7xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize7xmlrules.xml
new file mode 100644
index 0000000000..8df636ef7a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize7xmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="storagesizeParam">123</its:param>
+ <its:storageSizeRule selector="//country[@id=$storagesizeParam]" storageSize="25" storageEncoding="ISO-8859-1"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize8xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize8xml.xml
new file mode 100644
index 0000000000..8044869de4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize8xml.xml
@@ -0,0 +1,11 @@
+<db>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="storagesizeParam">123</its:param>
+ <its:storageSizeRule selector="//country[@id=$storagesizeParam]" storageSize="25" storageEncoding="ISO-8859-1"/>
+ </its:rules>
+ <data>
+ <country id="123">Papouasie-Nouvelle-Guinée</country>
+ <country id="139">République Dominicaine</country>
+ </data>
+</db>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize9xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize9xml.xml
new file mode 100644
index 0000000000..e464ed6d04
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/storagesize/xml/storagesize9xml.xml
@@ -0,0 +1,5 @@
+<messages xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <its:span storageSize="8" storageEncoding="UTF-16" lineBreakType="lf">CONTINUE</its:span>
+ <its:span storageSize="8" storageEncoding="UTF-16" lineBreakType="lf">STOP</its:span>
+ <its:span storageSize="12" storageEncoding="UTF-16" lineBreakType="lf">CANCEL</its:span>
+</messages>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer1html.html b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer1html.html
new file mode 100644
index 0000000000..6a0d3607c0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer1html.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Target Pointer</title>
+ <link href="targetpointer1htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <div id="one">
+ <p class="srcfolder">Remember last folder</p>
+ <p class="targetfolder">lastFolder</p>
+ </div>
+ <div id="two">
+ <p class="srcfile">Custom file filter:</p>
+ <p class="targetfile">testFile.txt</p>
+ </div>
+ </body>
+</html>
+
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer1htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer1htmlrules.xml
new file mode 100644
index 0000000000..93318581b6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer1htmlrules.xml
@@ -0,0 +1,4 @@
+ <its:rules version="2.0" xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml">
+ <its:targetPointerRule selector="//h:div[@id='one']/h:p[@class='srcfolder']" targetPointer="../h:p[@class='targetfolder']"/>
+ <its:targetPointerRule selector="//h:div[@id='two']/h:p[@class='srcfile']" targetPointer="../h:p[@class='targetfile']"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer2html.html b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer2html.html
new file mode 100644
index 0000000000..f9e2a417f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer2html.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>Target Pointer</title>
+ <link href="targetpointer2htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <div id="one">
+ <p class="srcfolder">Remember last folder</p>
+ <p class="targetfolder">lastFolder</p>
+ </div>
+ <div id="two">
+ <p class="srcfile">Custom file filter:</p>
+ <p class="targetfile">testFile.txt</p>
+ </div>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer2htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer2htmlrules.xml
new file mode 100644
index 0000000000..b26379aaf5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer2htmlrules.xml
@@ -0,0 +1,8 @@
+ <its:rules version="2.0" xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml">
+ <its:param name="targetFolder">targetfolder</its:param>
+ <its:param name="targetFile">targetfile</its:param>
+ <its:targetPointerRule selector="//h:div[@id='one']/h:p[@class='srcfolder']" targetPointer="../h:p[@class=$targetFolder]"/>
+ <its:targetPointerRule selector="//h:div[@id='two']/h:p[@class='srcfile']" targetPointer="../h:p[@class=$targetFile]"/>
+ </its:rules>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer3html.html b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer3html.html
new file mode 100644
index 0000000000..2c27446592
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/html/targetpointer3html.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+ <head>
+<script type="application/its+xml">
+ <its:rules version="2.0" xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml">
+ <its:param name="targetFolder">targetfolder</its:param>
+ <its:targetPointerRule selector="//h:div[@id='one']/h:p[@class='srcfolder']" targetPointer="../h:p[@class=$targetFolder]"/>
+ <its:targetPointerRule selector="//h:div[@id='two']/h:p[@class='srcfile']" targetPointer="../h:p[@class='targetfile']"/>
+ </its:rules>
+</script>
+ <meta charset="utf-8">
+ <title>Target Pointer</title>
+ </head>
+ <body>
+ <div id="one">
+ <p class="srcfolder">Remember last folder</p>
+ <p class="targetfolder">lastFolder</p>
+ </div>
+ <div id="two">
+ <p class="srcfile">Custom file filter:</p>
+ <p class="targetfile">testFile.txt</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer1xml.xml
new file mode 100644
index 0000000000..0c32dc293d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer1xml.xml
@@ -0,0 +1,14 @@
+<file
+ xmlns:its="http://www.w3.org/2005/11/its" >
+ <its:rules version="2.0">
+ <its:targetPointerRule selector="//source" targetPointer="../target"/>
+ </its:rules>
+ <entry id="one">
+ <source>Remember last folder</source>
+ <target>lastFolder</target>
+ </entry>
+ <entry id="two">
+ <source>Custom file filter:</source>
+ <target>testFile.txt</target>
+ </entry>
+</file>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer2xml.xml
new file mode 100644
index 0000000000..91350392de
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer2xml.xml
@@ -0,0 +1,12 @@
+<file
+ xmlns:its="http://www.w3.org/2005/11/its" >
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:href="targetpointer2xmlrules.xml"/>
+ <entry id="one">
+ <source>Remember last folder</source>
+ <target>lastFolder</target>
+ </entry>
+ <entry id="two">
+ <source>Custom file filter:</source>
+ <target>testFile.txt</target>
+ </entry>
+</file>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer2xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer2xmlrules.xml
new file mode 100644
index 0000000000..b8fc4ed9a7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer2xmlrules.xml
@@ -0,0 +1,3 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:targetPointerRule selector="//source" targetPointer="../target"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer3xml.xml
new file mode 100644
index 0000000000..2af95ca8b7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer3xml.xml
@@ -0,0 +1,17 @@
+<file
+ xmlns:its="http://www.w3.org/2005/11/its" >
+ <its:rules version="2.0">
+ <its:param name="targetOneParam">firstfolder</its:param>
+ <its:param name="targetTwoParam">firstfile</its:param>
+ <its:targetPointerRule selector="//entry[@id='one']/source" targetPointer="../target[@id=$targetOneParam]"/>
+ <its:targetPointerRule selector="//entry[@id='two']/source" targetPointer="../target[@id=$targetTwoParam]"/>
+ </its:rules>
+ <entry id="one">
+ <source>Remember last folders</source>
+ <target id="firstfolder">firstFolder</target>
+ </entry>
+ <entry id="two">
+ <source>Custom file filter:</source>
+ <target id="firstfile">firstFile.txt</target>
+ </entry>
+</file>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer4xml.xml
new file mode 100644
index 0000000000..8f818262d1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer4xml.xml
@@ -0,0 +1,11 @@
+<file>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:href="targetpointer4xmlrules.xml"/>
+ <entry id="one">
+ <source>Remember last folders</source>
+ <target id="firstfolder">firstFolder</target>
+ </entry>
+ <entry id="two">
+ <source>Custom file filter:</source>
+ <target id="firstfile">firstFile.txt</target>
+ </entry>
+</file>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer4xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer4xmlrules.xml
new file mode 100644
index 0000000000..0ed1d81ce7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/targetpointer/xml/targetpointer4xmlrules.xml
@@ -0,0 +1,6 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="targetOneParam">firstfolder</its:param>
+ <its:param name="targetTwoParam">firstfile</its:param>
+ <its:targetPointerRule selector="//entry[@id='one']/source" targetPointer="../target[@id=$targetOneParam]"/>
+ <its:targetPointerRule selector="//entry[@id='two']/source" targetPointer="../target[@id=$targetTwoParam]"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology1html.html b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology1html.html
new file mode 100644
index 0000000000..61a8154426
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology1html.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <link href="terminology1htmlrules.xml" rel="its-rules">
+ <title>EXAMPLE</title>
+ </head>
+ <body>
+ <p id="term">
+ We may define
+ <a>discoursal point of view</a>
+ as
+ <cite id="TDPV">
+ the relationship, expressed through discourse structure, between the implied author or some other addresser, and the fiction.
+ </cite>
+ </p>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology1htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology1htmlrules.xml
new file mode 100644
index 0000000000..0326b23d44
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology1htmlrules.xml
@@ -0,0 +1,3 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:termRule selector="//h:a[1]" term="yes" termInfoRef="#TDPV"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology2html.html b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology2html.html
new file mode 100644
index 0000000000..0cca3f8072
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology2html.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <link href="terminology2htmlrules.xml" rel="its-rules">
+ <title>EXAMPLE</title>
+ </head>
+ <body>
+ <p>
+ We may define
+ <em id="keywords">discoursal point of view</em>
+ as
+ <dfn id="definitions">the relationship, expressed through discourse structure, between the implied author or some other addresser, and the fiction</dfn>
+ .
+ </p>
+ <p>
+ We may define
+ <em id="terms">refulgence</em>
+ as
+ <dfn id="refdef">a radiant or resplendent quality or state</dfn>
+ </p>
+ <p>
+ But I'm not sure how
+ <em id="term">quincunx</em>
+ can be defined.
+ </p>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology2htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology2htmlrules.xml
new file mode 100644
index 0000000000..2e4eea326b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology2htmlrules.xml
@@ -0,0 +1,5 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:termRule selector="//h:p[2]/h:em" term="yes" termInfoPointer="../h:dfn"/>
+<its:termRule selector="//h:p[3]/h:em" term="no"/>
+<its:termRule selector="//h:p[1]/h:em" term="yes" termInfoPointer="../h:dfn"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology3html.html b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology3html.html
new file mode 100644
index 0000000000..4274b3f702
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology3html.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <title>Terminology test: default</title>
+ </head>
+ <body>
+ <p>We need a new <span its-term="yEs" its-term-info-ref="#TDPV">motherboard</span>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology4html.html b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology4html.html
new file mode 100644
index 0000000000..29ffdc61da
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology4html.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <link href="terminology4htmlrules.xml" rel="its-rules">
+ <title>EXAMPLE</title>
+ </head>
+ <body>
+ <p>
+ We may define
+ <em id="keywords">discoursal point of view</em>
+ as
+ <dfn id="definitions">the relationship, expressed through discourse structure, between the implied author or some other addresser, and the fiction</dfn>
+ .
+ </p>
+ <p>
+ We may define
+ <em id="terms">refulgence</em>
+ as
+ <dfn id="refdef">a radiant or resplendent quality or state</dfn>
+ </p>
+ <p>
+ But I'm not sure how
+ <em id="term">quincunx</em>
+ can be defined.
+ </p>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology4htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology4htmlrules.xml
new file mode 100644
index 0000000000..d405064ded
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology4htmlrules.xml
@@ -0,0 +1,7 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:param name="termParam">keywords</its:param>
+<its:termRule selector="//h:p[2]/h:em" term="yes" termInfoPointer="../h:dfn"/>
+<its:termRule selector="//h:p[3]/h:em[@id=$termParam]" term="no"/>
+<its:termRule selector="//h:p[1]/h:em" term="yes" termInfoPointer="../h:dfn"/>
+</its:rules>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology5html.html b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology5html.html
new file mode 100644
index 0000000000..2e25ffb57a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology5html.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <title>Terminology test: default</title>
+ </head>
+ <body its-annotators-ref="text-analysis|file:///tools.xml#T1" >
+ <p>We need a new <span its-annotators-ref="terminology|http://example.com/term-tool#T2" its-term="YeS" its-term-info-ref="#TDPV" its-term-confidence="0.5">motherboard</span>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology6html.html b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology6html.html
new file mode 100644
index 0000000000..d35fd0b0e0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/html/terminology6html.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <script type="application/its+xml">
+ <its:rules version="2.0" xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml">
+ <its:param name="termparam">term</its:param>
+ <its:termRule selector="//h:p[@id=$termparam]/h:a[1]" term="yes" termInfoRef="#TDPV"/>
+ </its:rules>
+ </script>
+ <meta charset=utf-8>
+ <title>EXAMPLE</title>
+ </head>
+ <body>
+ <p id="term">
+ We may define
+ <a>discoursal point of view</a>
+ as
+ <cite id="TDPV">
+ the relationship, expressed through discourse structure, between the implied author or some other addresser, and the fiction.
+ </cite>
+ </p>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology1xml.xml
new file mode 100644
index 0000000000..55273b10bf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology1xml.xml
@@ -0,0 +1,11 @@
+<text
+ xmlns:its="http://www.w3.org/2005/11/its" >
+ <its:rules version="2.0">
+ <its:termRule selector="//term" term="yes" termInfoPointer="id(@def)"/>
+ </its:rules>
+ <p>We may define <term def="TDPV">discoursal point of view</term>
+ as <gloss xml:id="TDPV">the relationship, expressed through discourse
+ structure, between the implied author or some other addresser,
+ and the fiction.</gloss>
+ </p>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology2xml.xml
new file mode 100644
index 0000000000..33d794a6e3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology2xml.xml
@@ -0,0 +1,9 @@
+<text>
+ <its:rules version="2.0" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:termRule selector="//term[1]" term="yes" termInfoRef="#TDPV"/>
+ </its:rules>
+ <p>We may define <term>discoursal point of view</term>
+as <gloss xml:id="TDPV">the relationship, expressed through discourse
+structure, between the implied author or some other addresser,
+and the fiction.</gloss></p>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology3xml.xml
new file mode 100644
index 0000000000..3d913c81e0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology3xml.xml
@@ -0,0 +1,10 @@
+<text>
+ <its:rules version="2.0" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:termRule selector="//term" term="yes"
+ termInfoRefPointer="@target"/>
+ </its:rules>
+ <p>We may define <term target="#TDPV">discoursal point of view</term>
+as <gloss xml:id="TDPV">the relationship, expressed through discourse
+structure, between the implied author or some other addresser,
+and the fiction.</gloss></p>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology4xml.xml
new file mode 100644
index 0000000000..33d122b297
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology4xml.xml
@@ -0,0 +1,19 @@
+<text>
+ <head>
+ <its:rules version="2.0" xmlns:its="http://www.w3.org/2005/11/its"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xlink:href="terminology4xmlrules.xml">
+ <its:termRule selector="//p[2]/term" term="yes"
+ termInfoPointer="../gloss"/>
+ <its:termRule selector="//p[3]/term" term="no"/>
+ </its:rules>
+ <keywords><kw>terms</kw>, <kw>rare <kw>words</kw></kw></keywords>
+ </head>
+ <p>We may define <term>discoursal point of view</term>
+as <def>the relationship, expressed through discourse
+structure, between the implied author or some other addresser,
+and the fiction</def>.</p>
+ <p>We may define <term>refulgence</term>
+as <gloss id="refdef">a radiant or resplendent quality or state.</gloss></p>
+ <p>But I'm not sure how <term>quincunx</term> can be defined.</p>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology4xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology4xmlrules.xml
new file mode 100644
index 0000000000..7946cee28f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology4xmlrules.xml
@@ -0,0 +1,5 @@
+<its:rules version="2.0" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:termRule selector="//term" term="yes"
+ termInfoPointer="../def"/>
+ <its:termRule selector="//kw" term="yes"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology5xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology5xml.xml
new file mode 100644
index 0000000000..3ff4c769b9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology5xml.xml
@@ -0,0 +1,7 @@
+<doc its:version="2.0" xmlns:its="http://www.w3.org/2005/11/its">
+ <section xml:id="S001">
+ <par>A <kw its:term="yes" its:termInfoRef="http://en.wikipedia.org/wiki/Motherboard">motherboard</kw>,
+ also known as a <kw its:term="yes">logic <span its:term="yes">board</span></kw> on Apple Computers,
+ is the primary circuit board making up a modern computer.</par>
+ </section>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology6xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology6xml.xml
new file mode 100644
index 0000000000..52bd0ecd41
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology6xml.xml
@@ -0,0 +1,7 @@
+<doc its:version="2.0" xmlns:its="http://www.w3.org/2005/11/its">
+ <section xml:id="S001">
+ <par>A <its:span term="yes" termInfoRef="http://en.wikipedia.org/wiki/Motherboard">motherboard</its:span>,
+ also known as a <its:span term="yes">logic <its:span term="yes">board</its:span></its:span> on Apple Computers,
+ is the primary circuit board making up a modern computer.</par>
+ </section>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology7xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology7xml.xml
new file mode 100644
index 0000000000..440004956d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology7xml.xml
@@ -0,0 +1,17 @@
+<text>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+<its:param name="termInfoRefPointer">2</its:param>
+<its:termRule selector="//p[@id=$termInfoRefPointer]/term" term="yes" termInfoRefPointer="@target"/>
+</its:rules>
+<p id="1">
+This is a glossary of terms.
+</p>
+<p id="2">
+We may define
+<term target="#TDPV">discoursal point of view</term>
+as
+<gloss xml:id="TDPV">
+the relationship, expressed through discourse structure, between the implied author or some other addresser, and the fiction.
+</gloss>
+</p>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology8xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology8xml.xml
new file mode 100644
index 0000000000..b53f730930
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology8xml.xml
@@ -0,0 +1,14 @@
+<text>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:type="simple" xlink:href="terminology8xmlrules.xml"/>
+<p id="1">
+This is a glossary of terms.
+</p>
+<p id="2">
+We may define
+<term target="#TDPV">discoursal point of view</term>
+as
+<gloss xml:id="TDPV">
+the relationship, expressed through discourse structure, between the implied author or some other addresser, and the fiction.
+</gloss>
+</p>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology8xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology8xmlrules.xml
new file mode 100644
index 0000000000..26501b63be
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology8xmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+<its:param name="termInfoRefPointer">2</its:param>
+<its:termRule selector="//p[@id=$termInfoRefPointer]/term" term="yes" termInfoRefPointer="@target"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology9xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology9xml.xml
new file mode 100644
index 0000000000..bf74f2669b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/terminology/xml/terminology9xml.xml
@@ -0,0 +1,6 @@
+<book its:version="2.0" xmlns:its="http://www.w3.org/2005/11/its">
+ <head>Sample file</head>
+ <body its:annotatorsRef="text-analysis|file:///tools.xml#T1">
+ <p>And he said: you need a new <quote its:annotatorsRef="terminology|http://example.com/term-tool#T2" its:term="yes" its:termInfoRef="http://www.directron.com/motherboards1.html" its:termConfidence="0.5">motherboard</quote></p>
+ </body>
+</book>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis1html.html b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis1html.html
new file mode 100644
index 0000000000..9ab549092a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis1html.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <link href="textanalysis1htmlrules.xml" rel="its-rules">
+ <title>Text Analysis: Local Test</title>
+ </head>
+ <body>
+ <p>
+ <span id="dublin" typeof="http://nerd.eurecom.fr/ontology#Location" property="http://dbpedia.org/resource/Dublin">Dublin</span> is the <span id="capital" typeof="http://nerd.eurecom.fr/ontology#City" about="301467919" property="Wordnet3.0">capital</span> of Ireland.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis1htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis1htmlrules.xml
new file mode 100644
index 0000000000..c6245b71e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis1htmlrules.xml
@@ -0,0 +1,9 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0" xmlns:h="http://www.w3.org/1999/xhtml">
+ <its:textAnalysisRule selector="//h:body/h:p/h:*[@id='dublin']"
+ taClassRefPointer="@typeof"
+ taIdentRefPointer="@property"/>
+ <its:textAnalysisRule selector="//h:body/h:p/h:*[@id='capital']"
+ taClassRefPointer="@typeof"
+ taSourcePointer="@property"
+ taIdentPointer="@about"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis2html.html b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis2html.html
new file mode 100644
index 0000000000..f6cbe72cc6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis2html.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <link href="textanalysis2htmlrules.xml" rel="its-rules">
+ <title>Text Analysis: Local Test</title>
+ </head>
+ <body>
+ <p>
+ <span id="dublin" typeof="http://nerd.eurecom.fr/ontology#Location" property="http://dbpedia.org/resource/Dublin">Dublin</span> is the <span id="capital" typeof="http://nerd.eurecom.fr/ontology#City" about="301467919" property="Wordnet3.0">capital</span> of Ireland.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis2htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis2htmlrules.xml
new file mode 100644
index 0000000000..c5601a9ed7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis2htmlrules.xml
@@ -0,0 +1,11 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0" xmlns:h="http://www.w3.org/1999/xhtml">
+ <its:param name="taCityParam">dublin</its:param>
+ <its:param name="taCapitalParam">capital</its:param>
+ <its:textAnalysisRule selector="//h:body/h:p/h:*[@id=$taCityParam]"
+ taClassRefPointer="@typeof"
+ taIdentRefPointer="@property"/>
+ <its:textAnalysisRule selector="//h:body/h:p/h:*[@id=$taCapitalParam]"
+ taClassRefPointer="@typeof"
+ taSourcePointer="@property"
+ taIdentPointer="@about"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis3html.html b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis3html.html
new file mode 100644
index 0000000000..bf5e466578
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis3html.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+ <meta charset=utf-8>
+ <link href="textanalysis3htmlrules.xml" rel=its-rules>
+ <title>Text Analysis: Local Test</title>
+ </head>
+ <body>
+ <p><span id="dublin" property="http://xmlns.com/foaf/0.1/name"
+ about="http://dbpedia.org/resource/Dublin"
+ typeof="http://nerd.eurecom.fr/ontology#Location">Dublin</span> is
+ the <span id="capital">capital</span> of Ireland.</p>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis3htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis3htmlrules.xml
new file mode 100644
index 0000000000..d88271f30c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis3htmlrules.xml
@@ -0,0 +1,5 @@
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0" xmlns:h="http://www.w3.org/1999/xhtml">
+ <its:textAnalysisRule selector="//h:body/h:p/h:*[@id='dublin']"
+ taClassRefPointer="@typeof"
+ taIdentRefPointer="@about"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis4html.html b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis4html.html
new file mode 100644
index 0000000000..42ff1d37b5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis4html.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en" its-annotators-ref="text-analysis|http://enrycher.ijs.si">
+ <head>
+ <meta charset=utf-8>
+ <title>Text Analysis: Local Test</title>
+ </head>
+ <body>
+ <p><span
+ its-ta-confidence="0.7"
+ its-ta-class-ref="http://nerd.eurecom.fr/ontology#Location"
+ its-ta-ident-ref="http://dbpedia.org/resource/Dublin"
+ >Dublin</span>
+ is the <span
+ its-ta-source="Wordnet3.0"
+ its-ta-ident="301467919"
+ its-ta-confidence="0.5"
+ >capital</span> of Ireland.</p>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis5html.html b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis5html.html
new file mode 100644
index 0000000000..8f673df4ce
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/html/textanalysis5html.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <script type="application/its+xml">
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0" xmlns:h="http://www.w3.org/1999/xhtml">
+ <its:param name="taCityParam">dublin</its:param>
+ <its:param name="taCapitalParam">capital</its:param>
+ <its:textAnalysisRule selector="//h:body/h:p/h:*[@id=$taCityParam]"
+ taClassRefPointer="@typeof"
+ taIdentRefPointer="@property"/>
+ <its:textAnalysisRule selector="//h:body/h:p/h:*[@id=$taCapitalParam]"
+ taClassRefPointer="@typeof"
+ taSourcePointer="@property"
+ taIdentPointer="@about"/>
+ </its:rules>
+ </script>
+ <meta charset=utf-8>
+ <title>Textanalysis: Local Test</title>
+ </head>
+ <body>
+ <p><span id="dublin" typeof="http://nerd.eurecom.fr/ontology#Location" property="http://dbpedia.org/resource/Dublin">Dublin</span> is the <span id="capital" typeof="http://nerd.eurecom.fr/ontology#City" about="301467919" property="Wordnet3.0">capital</span> of Ireland.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis1xml.xml
new file mode 100644
index 0000000000..0aa9803ac3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis1xml.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<text>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:textAnalysisRule selector="/text/body/p/*[@id='dublin']"
+ taClassRefPointer="@classref"
+ taIdentRefPointer="@identref"/>
+ <its:textAnalysisRule selector="/text/body/p/*[@id='capital']"
+ taClassRefPointer="@classref"
+ taSourcePointer="@source"
+ taIdentPointer="@ident"/>
+ </its:rules>
+ <body>
+ <p><span classref="http://nerd.eurecom.fr/ontology#Location" id="dublin" identref="http://dbpedia.org/resource/Dublin">Dublin</span> is the <span id="capital" classref="http://nerd.eurecom.fr/ontology#City" source="Wordnet3.0" ident="301467919">capital</span> of Ireland.</p>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis2xml.xml
new file mode 100644
index 0000000000..74ffc81194
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis2xml.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<text>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="textanalysis2xmlrules.xml"/>
+ <body>
+ <p><span classref="http://nerd.eurecom.fr/ontology#Location" id="dublin" identref="http://dbpedia.org/resource/Dublin">Dublin</span> is the <span id="capital" classref="http://nerd.eurecom.fr/ontology#City" source="Wordnet3.0" ident="301467919">capital</span> of Ireland.</p>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis2xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis2xmlrules.xml
new file mode 100644
index 0000000000..eb25afba0c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis2xmlrules.xml
@@ -0,0 +1,9 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:textAnalysisRule selector="/text/body/p/*[@id='dublin']"
+ taClassRefPointer="@classref"
+ taIdentRefPointer="@identref"/>
+ <its:textAnalysisRule selector="/text/body/p/*[@id='capital']"
+ taClassRefPointer="@classref"
+ taSourcePointer="@source"
+ taIdentPointer="@ident"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis3xml.xml
new file mode 100644
index 0000000000..108061ce8a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis3xml.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<text>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="taCityParam">dublin</its:param>
+ <its:param name="taCapitalParam">capital</its:param>
+ <its:textAnalysisRule selector="/text/body/p/*[@id='dublin']"
+ taClassRefPointer="@classref"
+ taIdentRefPointer="@identref"/>
+ <its:textAnalysisRule selector="/text/body/p/*[@id='capital']"
+ taClassRefPointer="@classref"
+ taSourcePointer="@source"
+ taIdentPointer="@ident"/>
+ </its:rules>
+ <body>
+ <p><span classref="http://nerd.eurecom.fr/ontology#Location" id="dublin" identref="http://dbpedia.org/resource/Dublin">Dublin</span> is the <span id="capital" classref="http://nerd.eurecom.fr/ontology#City" source="Wordnet3.0" ident="301467919">capital</span> of Ireland.</p>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis4xml.xml
new file mode 100644
index 0000000000..e90c6c33fc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis4xml.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<text>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="textanalysis4xmlrules.xml"/>
+ <body>
+ <p><span classref="http://nerd.eurecom.fr/ontology#Location" id="dublin" identref="http://dbpedia.org/resource/Dublin">Dublin</span> is the <span id="capital" classref="http://nerd.eurecom.fr/ontology#City" source="Wordnet3.0" ident="301467919">capital</span> of Ireland.</p>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis4xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis4xmlrules.xml
new file mode 100644
index 0000000000..1a437e6cd1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis4xmlrules.xml
@@ -0,0 +1,11 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="taCityParam">dublin</its:param>
+ <its:param name="taCapitalParam">capital</its:param>
+ <its:textAnalysisRule selector="/text/body/p/*[@id='dublin']"
+ taClassRefPointer="@classref"
+ taIdentRefPointer="@identref"/>
+ <its:textAnalysisRule selector="/text/body/p/*[@id='capital']"
+ taClassRefPointer="@classref"
+ taSourcePointer="@source"
+ taIdentPointer="@ident"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis5xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis5xml.xml
new file mode 100644
index 0000000000..b570404cb0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis5xml.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<text xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0" its:annotatorsRef="text-analysis|http://enrycher.ijs.si">
+ <body>
+ <p><span its:taClassRef="http://nerd.eurecom.fr/ontology#Location" its:taIdentRef="http://dbpedia.org/resource/Dublin" its:taConfidence="0.7">Dublin</span> is the <span its:taSource="Wordnet3.0" its:taIdent="301467919" its:taConfidence="0.5">capital</span> of Ireland.</p>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis6xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis6xml.xml
new file mode 100644
index 0000000000..1ffc651698
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis6xml.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<text xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0" its:annotatorsRef="text-analysis|http://enrycher.ijs.si">
+ <body>
+ <p><its:span taClassRef="http://nerd.eurecom.fr/ontology#Location" taIdentRef="http://dbpedia.org/resource/Dublin" taConfidence="0.7"
+>Dublin</its:span> is the <its:span taSource="Wordnet3.0" taIdent="301467919" taConfidence="0.5">capital</its:span> of Ireland.</p>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis7xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis7xml.xml
new file mode 100644
index 0000000000..f69754392f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis7xml.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<text>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:textAnalysisRule selector="/text/body/p/*[@id='dublin']"
+ taClassRefPointer="@classref"
+ taIdentRefPointer="@identref"/>
+ <its:textAnalysisRule selector="/text/body/p/*[@id='capital']"
+ taSourcePointer="@source"
+ taIdentPointer="@ident"/>
+ </its:rules>
+ <body>
+ <p><span classref="http://nerd.eurecom.fr/ontology#Location" identref="http://dbpedia.org/resource/Dublin" id="dublin">Dublin</span> is the <span source="Wordnet3.0" ident="301467919" id="capital">capital</span> of Ireland.</p>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis8xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis8xml.xml
new file mode 100644
index 0000000000..563d4fac05
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis8xml.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0"?>
+<text>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="textanalysis8xmlrules.xml"/>
+ <body>
+ <p><span classref="http://nerd.eurecom.fr/ontology#Location" identref="http://dbpedia.org/resource/Dublin" id="dublin">Dublin</span> is the <span source="Wordnet3.0" ident="301467919" id="capital">capital</span> of Ireland.</p>
+ </body>
+</text>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis8xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis8xmlrules.xml
new file mode 100644
index 0000000000..05894fcaaf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/textanalysis/xml/textanalysis8xmlrules.xml
@@ -0,0 +1,8 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:textAnalysisRule selector="/text/body/p/*[@id='dublin']"
+ taClassRefPointer="@classref"
+ taIdentRefPointer="@identref"/>
+ <its:textAnalysisRule selector="/text/body/p/*[@id='capital']"
+ taSourcePointer="@source"
+ taIdentPointer="@ident"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate1html.html b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate1html.html
new file mode 100644
index 0000000000..d57b6e7416
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate1html.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>HTML Link Example</title>
+ <link href="translate1htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <img src="smiley.gif" alt="Smiley face" width="42" height="42">
+ <p id="100" title="Text">
+ This is the first paragraph. It has some
+ <code>un-translatable code</code>
+ .
+ </p>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate1htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate1htmlrules.xml
new file mode 100644
index 0000000000..bd51763afd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate1htmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:translateRule selector="//h:code" translate="no"/>
+ <its:translateRule selector="//h:link" translate="no"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate2html.html b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate2html.html
new file mode 100644
index 0000000000..19e12d9404
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate2html.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+ <html lang="en">
+ <head>
+ <meta charset=utf-8>
+ <title>The Life of a Simple Man</title>
+ </head>
+ <body>
+ <p>
+ <img src="smiley.gif" alt="Smiley face" width="42" height="42">
+ Everything started when Zebulon discovered that he had a
+ <span translate="NO">doppelgänger</span>
+ who was a serious baseball
+ <span translate="nO">aficionado</span>
+ .
+ </p>
+ </body>
+</html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate3html.html b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate3html.html
new file mode 100644
index 0000000000..c14022fb8d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate3html.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <title>EXAMPLE</title>
+ <link href="translate3htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <span translate="yes">The Life of a Simple Man</span>
+ <!--
+ Note that the contents of <b> and <span> should end up *not* translatable with these settings
+ -->
+ <section title="section one">
+ <h2>section one</h2>
+ <p>
+ Everything started when Zebulon discovered that he had a
+ <span>doppelgänger</span>
+ who was a serious baseball
+ <span>aficionado</span>
+ .
+ </p>
+ </section>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate3htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate3htmlrules.xml
new file mode 100644
index 0000000000..6193ec01dd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate3htmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:translateRule selector="//h:*" translate="no"/>
+<its:translateRule selector="//h:p" translate="yes"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate4html.html b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate4html.html
new file mode 100644
index 0000000000..f6a92c027a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate4html.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <title>EXAMPLE</title>
+ <link href="translate4htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <span translate="yes">The Life of a Simple Man</span>
+ <!--
+ Note that the contents of <b> and <span> should end up *not* translatable with these settings
+ -->
+ <section>
+ <h2>section</h2>
+ <p>
+ Everything started when Zebulon discovered that he had a
+ <span>doppelgänger</span>
+ who was a serious baseball
+ <span>aficionado</span>
+ .
+ </p>
+ </section>
+ </body>
+ </html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate4htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate4htmlrules.xml
new file mode 100644
index 0000000000..c252a2de85
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate4htmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:translateRule selector="/h:html" translate="no"/>
+<its:translateRule selector="//h:p" translate="yes"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate5html.html b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate5html.html
new file mode 100644
index 0000000000..8ce3e5b126
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate5html.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <title>The ITS Topic</title>
+ <link href="translate5htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <section>
+ <h2>Data category</h2>
+ <span id="tDataCat">
+ <b>Data category</b>
+ <cite>
+ ITS defines
+ <i>data category</i>
+ as an abstract concept for a particular type of information for internationalization and localization of XML schemas and documents.
+ </cite>
+ </span>
+ </section>
+ <p>
+ For the implementation of ITS, apply the rules in the order:
+ </p>
+ <ul>
+ <li>Default</li>
+ <li>Rules in the schema</li>
+ <li>Rules in the document instance</li>
+ <li>Local attributes</li>
+ </ul>
+ <p>
+ <span lang="fr">Et voila !</span>
+ The last rule wins.
+ </p>
+ </body>
+ </html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate5htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate5htmlrules.xml
new file mode 100644
index 0000000000..6193ec01dd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate5htmlrules.xml
@@ -0,0 +1,4 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:translateRule selector="//h:*" translate="no"/>
+<its:translateRule selector="//h:p" translate="yes"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate6html.html b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate6html.html
new file mode 100644
index 0000000000..7531fbd535
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate6html.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+ <html>
+ <head>
+ <meta charset=utf-8>
+ <title>The ITS Topic</title>
+ <link href="translate6htmlrules.xml" rel="its-rules">
+ </head>
+ <body>
+ <section>
+ <h2>Data category</h2>
+ <span id="tDataCat">
+ <b>Data category</b>
+ <cite>
+ ITS defines
+ <i>data category</i>
+ as an abstract concept for a particular type of information for internationalization and localization of XML schemas and documents.
+ </cite>
+ </span>
+ </section>
+ <p>
+ For the implementation of ITS, apply the rules in the order:
+ </p>
+ <ul>
+ <li>Default</li>
+ <li>Rules in the schema</li>
+ <li>Rules in the document instance</li>
+ <li>Local attributes</li>
+ </ul>
+ <p>
+ <span lang="fr">Et voila !</span>
+ The last rule wins.
+ </p>
+ </body>
+ </html>
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate6htmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate6htmlrules.xml
new file mode 100644
index 0000000000..dadbad1675
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate6htmlrules.xml
@@ -0,0 +1,6 @@
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+<its:param name="tDataCatParam">tDataCat</its:param>
+<its:translateRule selector="//h:*" translate="no"/>
+<its:translateRule selector="//h:p" translate="yes"/>
+<its:translateRule selector="//h:span[@id=$tDataCatParam]" translate="yes"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate7html.html b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate7html.html
new file mode 100644
index 0000000000..eb82ff3214
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/html/translate7html.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html lang=en>
+ <head>
+<script type="application/its+xml">
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:h="http://www.w3.org/1999/xhtml" version="2.0">
+ <its:param name="translateparam">name</its:param>
+ <its:translateRule selector="//h:*[@id=$translateparam]" translate="no"/>
+ </its:rules>
+</script>
+ <meta charset="utf-8">
+ <title>Example</title>
+ </head>
+ <body title="login details">
+<p style="color:green">Login names can only use letters from A to Z (upper or lowercase)
+ For example: <code id="name">Huck_Finn</code>.</p>
+ </body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate10xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate10xml.xml
new file mode 100644
index 0000000000..0559c51c95
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate10xml.xml
@@ -0,0 +1,7 @@
+<doc>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" xmlns:xlink="http://www.w3.org/1999/xlink" version="2.0" xlink:type="simple" xlink:href="translate10xmlrules.xml"/>
+ <msg lcid="409" num="1">Create a folder</msg>
+ <msg lcid="411" num="1">フォルダーを作成する</msg>
+ <msg lcid="407" num="1">Erstellen Sie einen Ordner</msg>
+ <msg lcid="408" num="1">Créer un dossier</msg>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate10xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate10xmlrules.xml
new file mode 100644
index 0000000000..5b32c69059
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate10xmlrules.xml
@@ -0,0 +1,5 @@
+ <its:rules version="2.0" xmlns:its="http://www.w3.org/2005/11/its">
+ <its:param name="LCID">409</its:param>
+ <its:translateRule selector="/doc" translate="no"/>
+ <its:translateRule selector="//msg[@lcid=$LCID]" translate="yes"/>
+ </its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate1xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate1xml.xml
new file mode 100644
index 0000000000..5649d70af4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate1xml.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0"?>
+<myMetaDoc
+ xmlns:cml="myChineseMakupLanguage">
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:translateRule selector="//img/@alt" translate="yes"/>
+ <its:translateRule selector="//*/@title" translate="yes"/>
+ <its:translateRule selector="//verbatim" translate="no"/>
+ <its:translateRule selector="//verbatim/@*" translate="no"/>
+ <its:translateRule selector="//verbatim//*/@*" translate="no"/>
+ <its:withinTextRule selector="//img|//verbatim" withinText="yes"/>
+ </its:rules>
+ </head>
+ <body>
+ <par>Text with an image: <img alt="Image description" src="img.png"/>.</par>
+ <par id="100" title="Text">This is the first paragraph. It has some <verbatim>un-translatable
+ code with an image: <img src="test.png" alt="Image description"/></verbatim>.</par>
+ <insert xmlns:z="myChineseMakupLanguage" xmlns:i="http://www.w3.org/2005/11/its">
+ <z:书籍>
+ <z:封面>
+ <z:汇集>The Lord of the Rings</z:汇集>
+ <z:标题>The Return of the King</z:标题>
+ <z:作者>J.R.R. Tolkein</z:作者>
+ </z:封面>
+ <z:章节 数="1">
+ <z:头注>Minas Tirith</z:头注>
+ <z:段落识别 id="A34B"><z:姓名>Pippin</z:姓名> looked out from the shelter of <z:姓名>Gandalf</z:姓名>'s cloak.</z:段落识别>
+ </z:章节>
+ <z:躯>
+ <i:rules version="2.0" xmlns:cml="myChineseMakupLanguage">
+ <i:translateRule selector="//cml:作者" translate="no"/>
+ <i:translateRule selector="//cml:姓名" translate="no"/>
+ <i:withinTextRule selector="//cml:姓名" withinText="yes"/>
+ </i:rules>
+ </z:躯>
+ </z:书籍>
+ </insert>
+ </body>
+</myMetaDoc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate2xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate2xml.xml
new file mode 100644
index 0000000000..68bfd3f28a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate2xml.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<myDoc>
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="translate2xmlrules.xml"/>
+ </head>
+ <body>
+ <par id="100" title="Text">This is the first paragraph. It has some <code>un-translatable code</code>.</par>
+ </body>
+</myDoc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate2xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate2xmlrules.xml
new file mode 100644
index 0000000000..69de855fc3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate2xmlrules.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:translateRule selector="//code" translate="no"/>
+ <its:translateRule selector="//*/@title" translate="yes"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate3xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate3xml.xml
new file mode 100644
index 0000000000..fcccc69841
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate3xml.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+<myDoc>
+ <head>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="translate3xmlrules.xml">
+ <its:translateRule selector="//par[@id='101']/@title" translate="no"/>
+ </its:rules>
+ </head>
+ <body>
+ <par id="100" title="Text">This is the first paragraph. It has some <code>un-translatable code</code>.</par>
+ <par id="101" title="Not extractable text">Some additional text.</par>
+ </body>
+</myDoc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate3xmlrules.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate3xmlrules.xml
new file mode 100644
index 0000000000..0a45c97553
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate3xmlrules.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0"?>
+<its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:translateRule selector="//head" translate="no"/>
+ <its:translateRule selector="//code" translate="no"/>
+ <its:translateRule selector="//*/@title" translate="yes"/>
+</its:rules>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate4xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate4xml.xml
new file mode 100644
index 0000000000..bc1ee7d64f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate4xml.xml
@@ -0,0 +1,11 @@
+<book xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <head>
+ <title>The Life of a Simple Man</title>
+ </head>
+ <body>
+ <img src="smiley.gif" alt="Smiley face" width="42" height="42"/>
+ <p>Everything started when Zebulon discovered that he had
+ a <fexp its:translate="no">doppelgänger</fexp> who was a
+ serious baseball <fexp its:translate="no">aficionado</fexp>.</p>
+ </body>
+</book>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate5xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate5xml.xml
new file mode 100644
index 0000000000..9dceba576a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate5xml.xml
@@ -0,0 +1,13 @@
+<book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="EX-ways-to-use-its-5.xsd"
+ xmlns:its="http://www.w3.org/2005/11/its"
+ its:version="2.0">
+ <head>
+ <title>The Life of a Simple Man</title>
+ </head>
+ <body>
+ <p>Everything started when Zebulon discovered that he had
+ a <its:span translate="no">doppelgänger</its:span> who was a
+ serious baseball <its:span translate="no">aficionado</its:span>.</p>
+ </body>
+</book>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate6xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate6xml.xml
new file mode 100644
index 0000000000..28bbea14d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate6xml.xml
@@ -0,0 +1,19 @@
+<doc xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <head>
+ <its:rules version="2.0">
+ <its:translateRule selector="//*" translate="no"/>
+ <its:translateRule selector="//p" translate="yes"/>
+ </its:rules>
+ </head>
+ <info>
+ <item type="title" its:translate="yes">The Life of a <b>Simple Man</b></item>
+ <!-- Note that the contents of <b> and <span> should end up
+ *not* translatable with these settings -->
+ <item type="date-main">Dec-05-2006</item>
+ </info>
+ <content>
+ <p>Everything started when Zebulon discovered that he had
+ a <span>doppelgänger</span> who was a
+ serious baseball <span>aficionado</span>.</p>
+ </content>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate7xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate7xml.xml
new file mode 100644
index 0000000000..20e9ea70b3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate7xml.xml
@@ -0,0 +1,19 @@
+<doc xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0">
+ <head>
+ <its:rules version="2.0">
+ <its:translateRule selector="/doc" translate="no"/>
+ <its:translateRule selector="//p" translate="yes"/>
+ </its:rules>
+ </head>
+ <info>
+ <item type="title" its:translate="yes">The Life of a <b>Simple Man</b></item>
+ <!-- Note that the contents of <b> and <span> should end up
+ translatable with these settings -->
+ <item type="date-main">Dec-05-2006</item>
+ </info>
+ <content>
+ <p>Everything started when Zebulon discovered that he had
+ a <span>doppelgänger</span> who was a
+ serious baseball <span>aficionado</span>.</p>
+ </content>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate8xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate8xml.xml
new file mode 100644
index 0000000000..4692cdb087
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate8xml.xml
@@ -0,0 +1,28 @@
+<topic id="myTopic">
+ <title>The ITS Topic</title>
+ <prolog>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:translateRule selector="//*" translate="no"/>
+ <its:translateRule selector="//p" translate="yes"/>
+ <!-- With these rules only the text "For the implementation of ITS, apply the rules in the order:"
+ and " The last rule wins." should end up translatable -->
+ </its:rules>
+ </prolog>
+ <body>
+ <dl>
+ <dlentry id="tDataCat">
+ <dt>Data category</dt>
+ <dd>ITS defines <term>data category</term> as an abstract concept for a particular
+ type of information for internationalization and localization of XML schemas and documents.</dd>
+ </dlentry>
+ </dl>
+ <p>For the implementation of ITS, apply the rules in the order:</p>
+ <ul>
+ <li>Default</li>
+ <li>Rules in the schema</li>
+ <li>Rules in the document instance</li>
+ <li>Local attributes</li>
+ </ul>
+ <p><ph xml:lang="fr">Et voilà !</ph> The last rule wins.</p>
+ </body>
+</topic>
diff --git a/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate9xml.xml b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate9xml.xml
new file mode 100644
index 0000000000..f8606b68ff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-its/translate/xml/translate9xml.xml
@@ -0,0 +1,11 @@
+<doc>
+ <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="2.0">
+ <its:param name="LCID">409</its:param>
+ <its:translateRule selector="/doc" translate="no"/>
+ <its:translateRule selector="//msg[@lcid=$LCID]" translate="yes"/>
+ </its:rules>
+ <msg lcid="409" num="1">Create a folder</msg>
+ <msg lcid="411" num="1">フォルダーを作成する</msg>
+ <msg lcid="407" num="1">Erstellen Sie einen Ordner</msg>
+ <msg lcid="40c" num="1">Créer un dossier</msg>
+</doc>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0001-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0001-isvalid.html
new file mode 100644
index 0000000000..c7c2d8b33d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0001-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0001</title>
+</head>
+<body>
+ <p>This photo was taken by <span class="author" about="photo1.jpg" property="dc:creator">Mark Birbeck</span>.</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0006-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0006-isvalid.html
new file mode 100644
index 0000000000..6c5e168cfa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0006-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/ foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0006</title>
+ </head>
+ <body>
+ <p>
+ This photo was taken by
+ <a about="photo1.jpg" rel="dc:creator" rev="foaf:img"
+ href="http://www.blogger.com/profile/1109404">Mark Birbeck</a>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0007-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0007-isvalid.html
new file mode 100644
index 0000000000..1e6df222ac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0007-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/ foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0007</title>
+ </head>
+ <body>
+ <p>This photo was taken by
+ <a about="photo1.jpg" property="dc:title"
+ content="Portrait of Mark" rel="dc:creator"
+ rev="foaf:img" href="http://www.blogger.com/profile/1109404">Mark Birbeck</a>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0008-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0008-isvalid.html
new file mode 100644
index 0000000000..d01fcb497c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0008-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html prefix="cc: http://creativecommons.org/ns#">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0008</title>
+ </head>
+ <body>
+ <p>This document is licensed under a
+ <a about="" rel="cc:license"
+ href="http://creativecommons.org/licenses/by-nc-nd/2.5/">
+ Creative Commons
+ </a>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0009-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0009-isvalid.html
new file mode 100644
index 0000000000..1c50864a36
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0009-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0009</title>
+ <link about="http://example.org/people#Person1" rel=""
+ rev="foaf:knows" href="http://example.org/people#Person2">
+
+ </head>
+ <body>
+ <p></p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0010-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0010-isvalid.html
new file mode 100644
index 0000000000..dd0d49dbf6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0010-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0010</title>
+ <link about="http://example.org/people#Person1"
+ rel="foaf:knows" rev="foaf:knows" href="http://example.org/people#Person2">
+ </head>
+ <body>
+ <p></p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0014-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0014-isvalid.html
new file mode 100644
index 0000000000..6902a4aee7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0014-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="ex: http://example.org/ xsd: http://www.w3.org/2001/XMLSchema#">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0014</title>
+ </head>
+ <body>
+ <p>
+ <span about="http://example.org/foo"
+ property="ex:bar" content="10" datatype="xsd:integer">ten</span>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0015-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0015-isvalid.html
new file mode 100644
index 0000000000..edcbe3108b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0015-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0015</title>
+ <link rel="dc:source" href="urn:isbn:0140449132">
+ <meta property="dc:creator" content="Fyodor Dostoevsky">
+ </head>
+ <body>
+ <p></p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0017-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0017-isvalid.html
new file mode 100644
index 0000000000..a0fe474532
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0017-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0017</title>
+ </head>
+ <body>
+ <p>
+ <span about="[_:a]" property="foaf:name">Manu Sporny</span>
+ <span about="[_:a]" rel="foaf:knows"
+resource="[_:b]">knows</span>
+ <span about="[_:b]" property="foaf:name">Ralph Swick</span>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0018-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0018-isvalid.html
new file mode 100644
index 0000000000..89130ca044
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0018-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0018</title>
+ </head>
+ <body>
+ <p>
+ This photo was taken by
+ <a about="photo1.jpg" rel="dc:creator"
+ href="http://www.blogger.com/profile/1109404">Mark Birbeck</a>.
+ </p>
+ </body>
+
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0019-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0019-novalid.html
new file mode 100644
index 0000000000..a2ea7a0eb5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0019-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0019</title>
+ </head>
+ <body>
+ <div about="mailto:manu.sporny@digitalbazaar.com"
+ rel="foaf:knows" href="mailto:michael.hausenblas@joanneum.at"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0020-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0020-isvalid.html
new file mode 100644
index 0000000000..26740993bd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0020-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0020</title>
+ </head>
+ <body>
+ <div about="photo1.jpg">
+ <span class="attribution-line">this photo was taken by
+ <span property="dc:creator">Mark Birbeck</span>
+ </span>
+ </div>
+ </body>
+
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0021-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0021-isvalid.html
new file mode 100644
index 0000000000..21b9f42112
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0021-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0021</title>
+</head>
+<body>
+ <div>
+ <span class="attribution-line">this photo was taken by
+ <span property="dc:creator">Mark Birbeck</span>
+ </span>
+ </div>
+</body>
+
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0023-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0023-isvalid.html
new file mode 100644
index 0000000000..5859d45788
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0023-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0023</title>
+ </head>
+ <body>
+ <div id="photo1">
+ This photo was taken by
+ <span property="dc:creator">Mark Birbeck</span>
+ </div>
+ </body>
+
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0025-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0025-isvalid.html
new file mode 100644
index 0000000000..dd7f91f338
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0025-isvalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/ foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0025</title>
+ </head>
+ <body>
+ <p>
+ This paper was written by
+ <span rel="dc:creator" resource="#me">
+ <span property="foaf:name">Ben Adida</span>.
+ </span>
+ </p>
+ </body>
+
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0026-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0026-isvalid.html
new file mode 100644
index 0000000000..42bbb1b38c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0026-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0026</title>
+ </head>
+ <body>
+ <p>
+ <span about="http://internet-apps.blogspot.com/"
+ property="dc:creator" content="Mark Birbeck"></span>
+ </p>
+ </body>
+
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0027-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0027-isvalid.html
new file mode 100644
index 0000000000..31c2c97fd5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0027-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0027</title>
+ </head>
+ <body>
+ <p>
+ <span about="http://internet-apps.blogspot.com/"
+ property="dc:creator" content="Mark Birbeck">Mark B.
+ </span>
+ </p>
+ </body>
+
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0029-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0029-isvalid.html
new file mode 100644
index 0000000000..cccb4b277f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0029-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/ xsd: http://www.w3.org/2001/XMLSchema#">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0029</title>
+ </head>
+ <body>
+ <p>
+ <span about="http://example.org/foo"
+ property="dc:creator" datatype="xsd:string"><b>M</b>ark <b>B</b>irbeck</span>.
+ </p>
+ </body>
+
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0030-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0030-isvalid.html
new file mode 100644
index 0000000000..7fd1a85ec7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0030-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html prefix="cc: http://creativecommons.org/ns#">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0030</title>
+ </head>
+ <body>
+ <p>This document is licensed under a
+ <a rel="cc:license"
+ href="http://creativecommons.org/licenses/by-nc-nd/2.5/">
+ Creative Commons License
+ </a>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0031-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0031-isvalid.html
new file mode 100644
index 0000000000..29f2e68fe6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0031-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0031</title>
+ </head>
+ <body>
+ <p about="#wtw">
+ The book <b>Weaving the Web</b> (hardcover) has the ISBN
+ <span rel="dc:identifier" resource="urn:ISBN:0752820907">0752820907</span>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0032-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0032-isvalid.html
new file mode 100644
index 0000000000..6a2cf7c193
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0032-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0032</title>
+ </head>
+ <body>
+ <p about="#wtw">
+ The book <b>Weaving the Web</b> (hardcover) has the ISBN
+ <a rel="dc:identifier" resource="urn:ISBN:0752820907"
+ href="http://www.amazon.com/Weaving-Web-Tim-Berners-Lee/dp/0752820907">0752820907</a>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0033-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0033-isvalid.html
new file mode 100644
index 0000000000..20201d54db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0033-isvalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/ foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0033</title>
+ </head>
+ <body>
+ <p>
+ This paper was written by
+ <span rel="dc:creator">
+ <span property="foaf:name">Ben Adida</span>.
+ </span>
+ </p>
+ </body>
+
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0034-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0034-isvalid.html
new file mode 100644
index 0000000000..77deb9aea5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0034-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0034</title>
+ </head>
+ <body>
+ <div about="http://sw-app.org/mic.xhtml#i" rel="foaf:img">
+ <img src="http://sw-app.org/img/mic_2007_01.jpg"
+ alt="A photo depicting Michael">
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0035-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0035-novalid.html
new file mode 100644
index 0000000000..395dc61b4d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0035-novalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0035</title>
+ </head>
+ <body>
+ <div>
+ <img about="http://sw-app.org/mic.xhtml#i"
+ rel="foaf:img"
+ src="http://sw-app.org/img/mic_2007_01.jpg"
+ href="http://sw-app.org/img/mic_2006_03.jpg"
+ alt="A photo depicting Michael">
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0036-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0036-isvalid.html
new file mode 100644
index 0000000000..56ec187cdc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0036-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0036</title>
+ </head>
+ <body>
+ <div>
+ <img about="http://sw-app.org/mic.xhtml#i"
+ rel="foaf:img"
+ src="http://sw-app.org/img/mic_2007_01.jpg"
+ resource="http://sw-app.org/img/mic_2006_03.jpg"
+ alt="A photo depicting Michael">
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0037-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0037-novalid.html
new file mode 100644
index 0000000000..33718ca08f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0037-novalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0037</title>
+ </head>
+ <body>
+ <div>
+ <img about="http://sw-app.org/mic.xhtml#i"
+ rel="foaf:img"
+ src="http://sw-app.org/img/mic_2007_01.jpg"
+ href="http://sw-app.org/img/mic_2006_03.jpg"
+ resource="http://sw-app.org/mic.xhtml#photo"
+ alt="A photo depicting Michael">
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0038-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0038-isvalid.html
new file mode 100644
index 0000000000..ae62733079
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0038-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0038</title>
+ </head>
+ <body>
+ <div about="http://sw-app.org/mic.xhtml#i" rev="foaf:depicts">
+ <img src="http://sw-app.org/img/mic_2007_01.jpg"
+ alt="A photo depicting Michael">
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0039-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0039-novalid.html
new file mode 100644
index 0000000000..092ab0a21e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0039-novalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0039</title>
+ </head>
+ <body>
+ <div>
+ <img about="http://sw-app.org/mic.xhtml#i"
+ rev="foaf:depicts"
+ src="http://sw-app.org/img/mic_2007_01.jpg"
+ href="http://sw-app.org/img/mic_2006_03.jpg"
+ alt="A photo depicting Michael">
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0041-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0041-novalid.html
new file mode 100644
index 0000000000..ca611f0f14
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0041-novalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0041</title>
+ </head>
+ <body>
+ <div>
+ <img about="http://sw-app.org/mic.xhtml#i"
+ rev="foaf:depicts"
+ src="http://sw-app.org/img/mic_2007_01.jpg"
+ href="http://sw-app.org/img/mic_2006_03.jpg"
+ resource="http://sw-app.org/mic.xhtml#photo"
+ alt="A photo depicting Michael">
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0048-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0048-isvalid.html
new file mode 100644
index 0000000000..b11a63dba3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0048-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0048</title>
+ </head>
+ <body>
+ <div about="http://www.example.org/#me" rel="foaf:knows" typeof="foaf:Person">
+ <p property="foaf:name">John Doe</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0049-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0049-isvalid.html
new file mode 100644
index 0000000000..f26ef8878d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0049-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0049</title>
+ </head>
+ <body>
+ <div about="http://www.example.org/#me" typeof="foaf:Person">
+ <p property="foaf:name">John Doe</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0050-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0050-isvalid.html
new file mode 100644
index 0000000000..94e28c88b6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0050-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0050</title>
+ </head>
+ <body>
+ <div typeof="foaf:Person">
+ <p property="foaf:name">John Doe</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0051-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0051-isvalid.html
new file mode 100644
index 0000000000..c132724b08
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0051-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0051</title>
+ </head>
+ <body>
+ <p about="" typeof="foaf:Document" property="foaf:topic">John Doe</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0052-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0052-isvalid.html
new file mode 100644
index 0000000000..8e4d02f7bf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0052-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0052</title>
+ </head>
+ <body>
+ <p typeof="foaf:Person" resource="http://www.example.org/#me">
+ John Doe
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0053-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0053-isvalid.html
new file mode 100644
index 0000000000..f5d2172923
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0053-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0053</title>
+ </head>
+ <body>
+ <p typeof="foaf:Person" resource="http://www.example.org/#me">
+ <span property="foaf:name">John Doe</span>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0054-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0054-isvalid.html
new file mode 100644
index 0000000000..e689de8aaf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0054-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0054</title>
+ </head>
+ <body>
+ <p>
+ This document was authored and published by
+ <span about="" property="dc:creator dc:publisher">Fabien Gandon</span>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0055-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0055-isvalid.html
new file mode 100644
index 0000000000..db2748fd1e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0055-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0055</title>
+ </head>
+ <body>
+ <p>
+ This document was authored and published by
+ <a about="" rel="dc:creator dc:publisher" href="http://www-sop.inria.fr/acacia/fabien/">Fabien Gandon</a>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0056-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0056-isvalid.html
new file mode 100644
index 0000000000..aa80de4568
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0056-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0056</title>
+ </head>
+ <body>
+ <div about="http://www.example.org/#ben" typeof="foaf:Person" rel="foaf:knows">
+ <p about="http://www.example.org/#mark" property="foaf:name">Mark Birbeck</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0057-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0057-isvalid.html
new file mode 100644
index 0000000000..41974cbedd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0057-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0057</title>
+ </head>
+ <body>
+ <div about="http://www.example.org/#ben" rel="foaf:knows">
+ <p about="http://www.example.org/#mark" property="foaf:name">Mark Birbeck</p>
+ <p about="http://www.example.org/#ivan" property="foaf:name">Ivan Herman</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0059-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0059-isvalid.html
new file mode 100644
index 0000000000..95fbc278a7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0059-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/ foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0059</title>
+ </head>
+ <body>
+ <p>This document was authored and published by:</p>
+ <ul rel="dc:creator dc:publisher">
+ <li about="http://www.example.org/#manu" property="foaf:name">Manu Sporny</li>
+ <li about="http://www.example.org/#fabien" property="foaf:name">Fabien Gandon</li>
+ </ul>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0060-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0060-isvalid.html
new file mode 100644
index 0000000000..1563ffa73b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0060-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0060</title>
+ </head>
+ <body>
+ <div about="http://www.example.org/#matsumoto-kimiko"
+ typeof="foaf:Person">
+ <p property="foaf:name">松本 后子</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0063-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0063-isvalid.html
new file mode 100644
index 0000000000..d22b3900fe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0063-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0063</title>
+ <link rel=":next" href="http://rdfa.info/test-suite/test-cases/rdfa1.1/html5/0064.html">
+ </head>
+ <body>
+ <p>This is the 63<sup>rd</sup> test. The next test is #64.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0064-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0064-isvalid.html
new file mode 100644
index 0000000000..0fc82f94d6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0064-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0064</title>
+ </head>
+ <body>
+ <p about="[_:michael]">Michael knows
+ <a rel="foaf:knows" href="http://digitalbazaar.com/people/manu">Manu</a>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0065-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0065-isvalid.html
new file mode 100644
index 0000000000..843c6d3c39
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0065-isvalid.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0065</title>
+ </head>
+ <body>
+ <div about="[_:manu]">
+ Manu Sporny can be reached via
+ <a rel="foaf:mbox" href="mailto:manu.sporny@digitalbazaar.com">email</a>.
+ <span rel="foaf:knows" resource="[_:michael]">He knows Michael.</span>
+ </div>
+
+ <div about="[_:michael]">
+ Michael can be reached via
+ <a rel="foaf:mbox" href="mailto:michael.hausenblas@joanneum.at">email</a>.
+ </div>
+ </body>
+
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0066-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0066-isvalid.html
new file mode 100644
index 0000000000..dc8642ac73
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0066-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head typeof="foaf:Document">
+ <meta charset=utf-8>
+ <title>Test 0066</title>
+ </head>
+ <body>
+ <p>This is test #66.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0067-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0067-isvalid.html
new file mode 100644
index 0000000000..e60e30e04d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0067-isvalid.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <title property="foaf:topic">Test 0067</title>
+ </head>
+ <body>
+ <p>This is test #67.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0068-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0068-isvalid.html
new file mode 100644
index 0000000000..cfd0548222
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0068-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0068</title>
+ </head>
+ <body>
+ <p about="0067.html">
+ The previous test was
+ <span property="dc:title">Test 0067</span>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0069-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0069-isvalid.html
new file mode 100644
index 0000000000..bc166fb75e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0069-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="xhv: http://www.w3.org/1999/xhtml/vocab#">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0069</title>
+ </head>
+ <body>
+ <p>The next test will be
+ <a about="" rel="xhv:next" href="0070.html">Test 0070</a>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0070-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0070-isvalid.html
new file mode 100644
index 0000000000..e2efe67daa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0070-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="xhv: http://www.w3.org/1999/xhtml/vocab#">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0070</title>
+ </head>
+ <body>
+ <p>The previous test was
+ <span about="" rel="xhv:prev" resource="0069.html">Test 0069</span>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0071-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0071-isvalid.html
new file mode 100644
index 0000000000..511e0b7107
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0071-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="cc: http://creativecommons.org/ns#">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0071</title>
+ </head>
+ <body>
+ <p>This page is under a Creative Commons
+ <a rel="cc:license"
+ href="http://creativecommons.org/licenses/by-nd/3.0/">
+ Attribution-No Derivatives 3.0 license</a>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0072-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0072-isvalid.html
new file mode 100644
index 0000000000..7b3c5a9f8b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0072-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <base href="http://www.example.org/">
+ <meta charset=utf-8>
+ <title>Test 0072</title>
+ </head>
+ <body>
+ <p about="faq">
+ Learn more by reading the example.org
+ <span property="dc:title">Example FAQ</span>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0073-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0073-isvalid.html
new file mode 100644
index 0000000000..93051e8011
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0073-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <base href="http://www.example.org/">
+ <meta charset=utf-8>
+ <title>Test 0073</title>
+ </head>
+ <body>
+ <p>
+ This article was written by
+ <span rel="dc:creator" resource="jane">Jane</span>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0074-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0074-isvalid.html
new file mode 100644
index 0000000000..e7e7456c06
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0074-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <base href="http://www.example.org/">
+ <meta charset=utf-8>
+ <title>Test 0074</title>
+ </head>
+ <body>
+ <p>
+ This article was written by
+ <a rel="dc:creator" href="jane">Jane</a>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0075-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0075-isvalid.html
new file mode 100644
index 0000000000..1d4074d991
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0075-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <base href="http://www.example.org/">
+ <meta charset=utf-8>
+ <title>Test 0075</title>
+ </head>
+ <body>
+ <p>
+ This page is under a Creative Commons
+ <a rel="license" href="http://creativecommons.org/licenses/by-nd/3.0/">Attribution-No Derivatives 3.0 license</a>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0079-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0079-novalid.html
new file mode 100644
index 0000000000..0946e189f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0079-novalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0079</title>
+ </head>
+ <body>
+ <div about ="http://www.example.org/#somebody" rel="foaf:knows">
+ <p resource="http://www.ivan-herman.org/Ivan_Herman">Ivan Herman</p>
+ <p href="http://www.w3.org/People/Berners-Lee/card#i">Tim Berners Lee</p>
+ <p resource="http://danbri.org/foaf.rdf#danbri" href="http://www.leobard.net/rdf/foaf.xml#me">Dan Brickley</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0080-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0080-isvalid.html
new file mode 100644
index 0000000000..543e474d3a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0080-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0080</title>
+ </head>
+ <body>
+ <div about ="http://www.example.org/#somebody" rel="foaf:knows">
+ <p about="http://danbri.org/foaf.rdf#danbri" resource="http://www.leobard.net/rdf/foaf.xml#me">Dan Brickley</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0083-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0083-isvalid.html
new file mode 100644
index 0000000000..049f0f741f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0083-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0083</title>
+ </head>
+ <body>
+ <div about="http://www.example.org/#somebody" rel="foaf:knows">
+ <p property="foaf:name">Ivan Herman</p>
+ <p rel="foaf:mailbox" resource="mailto:ivan@w3.org">mailto:ivan@w3.org</p>
+ <p about="http://danbri.org/foaf.rdf#danbri" typeof="foaf:Person" property="foaf:name">Dan Brickley</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0084-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0084-isvalid.html
new file mode 100644
index 0000000000..c61f1051bb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0084-isvalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0084</title>
+ </head>
+ <body>
+ <div about ="http://www.example.org/#somebody" rev="foaf:knows" rel="foaf:knows">
+ <div>
+ <p property="foaf:name">Ivan Herman</p>
+ <p rel="foaf:mailbox" resource="mailto:ivan@w3.org">mailto:ivan@w3.org</p>
+ <p about="http://danbri.org/foaf.rdf#danbri" typeof="foaf:Person" property="foaf:name">Dan Brickley</p>
+
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0085-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0085-novalid.html
new file mode 100644
index 0000000000..a910e1e907
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0085-novalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0085</title>
+ </head>
+ <body>
+ <div about ="http://www.example.org/#somebody" rel="foaf:knows">
+ <div rel="foaf:knows">
+ <p resource="http://www.ivan-herman.org/Ivan_Herman">Ivan Herman</p>
+ <p href="http://www.w3.org/People/Berners-Lee/card#i">Tim Berners Lee</p>
+ <p resource="http://danbri.org/foaf.rdf#danbri" href="http://www.leobard.net/rdf/foaf.xml#me">Dan Brickley</p>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0087-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0087-isvalid.html
new file mode 100644
index 0000000000..269e193f96
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0087-isvalid.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0087</title>
+ </head>
+ <body>
+ <p>
+ <a rel=":alternate" href="http://example.org/alternate">alternate</a>
+ <a rel=":appendix" href="http://example.org/appendix">appendix</a>
+ <a rel=":bookmark" href="http://example.org/bookmark">bookmark</a>
+ <a rel=":cite" href="http://example.org/cite">cite</a>
+ <a rel=":chapter" href="http://example.org/chapter">chapter</a>
+ <a rel=":contents" href="http://example.org/contents">contents</a>
+ <a rel=":copyright" href="http://example.org/copyright">copyright</a>
+ <a rel=":glossary" href="http://example.org/glossary">glossary</a>
+ <a rel=":help" href="http://example.org/help">help</a>
+ <a rel=":icon" href="http://example.org/icon">icon</a>
+ <a rel=":index" href="http://example.org/index">index</a>
+ <a rel=":first" href="http://example.org/first">first</a>
+ <a rel=":last" href="http://example.org/last">last</a>
+ <a rel=":license" href="http://example.org/license">license</a>
+ <a rel=":meta" href="http://example.org/meta">meta</a>
+ <a rel=":next" href="http://example.org/next">next</a>
+ <a rel=":p3pv1" href="http://example.org/p3pv1">p3pv1</a>
+ <a rel=":prev" href="http://example.org/prev">prev</a>
+ <a rel=":role" href="http://example.org/role">role</a>
+ <a rel=":section" href="http://example.org/section">section</a>
+ <a rel=":subsection" href="http://example.org/subsection">subsection</a>
+ <a rel=":start" href="http://example.org/start">start</a>
+ <a rel=":stylesheet" href="http://example.org/stylesheet">stylesheet</a>
+ <a rel=":up" href="http://example.org/up">up</a>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0088-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0088-isvalid.html
new file mode 100644
index 0000000000..b43ca20f34
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0088-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0088</title>
+ </head>
+ <body>
+ <div about ="http://www.example.org/#somebody" rel="foaf:knows">
+ <p about="[_:]" property="foaf:name">Dan Brickley</p>
+ <p about="[_:]" typeof="foaf:Person">Dan Brickley again:-)</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0089-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0089-isvalid.html
new file mode 100644
index 0000000000..21354e155e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0089-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0089</title>
+ </head>
+ <body>
+ <div>
+ <img src="http://example.org/example.png" typeof="foaf:Image" alt="example image">
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0091-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0091-isvalid.html
new file mode 100644
index 0000000000..67badc59da
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0091-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0091</title>
+ </head>
+ <body>
+ <p about="[_:human]">
+ A human is
+ <span property=":definition">a bi-pedal primate</span>.
+ They are quite possibly one of the most
+ <span property=":note">confused animal</span>s residing in the
+ <span property=":foo">Milky Way</span>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0093-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0093-isvalid.html
new file mode 100644
index 0000000000..682c65669e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0093-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/ ex: http://www.example.org/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0093</title>
+ </head>
+ <body>
+ <div about="">
+ Author: <span property="dc:creator">Albert Einstein</span>
+ <h2 property="dc:title" datatype="ex:XMLLiteral">E = mc<sup>2</sup>: The Most Urgent Problem of Our Time</h2>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0099-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0099-isvalid.html
new file mode 100644
index 0000000000..4c33702182
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0099-isvalid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html prefix="example: http://www.example.org/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0099</title>
+ </head>
+ <body>
+ <p about="http://www.cwi.nl/~steven/" property="example:likes">
+ We put thirty spokes together and call it a wheel;
+ But it is on the space where there is nothing that the usefulness of the wheel depends.
+ We turn clay to make a vessel;
+ But it is on the space where there is nothing that the usefulness of the vessel depends.
+ We pierce doors and windows to make a house;
+ And it is on these spaces where there is nothing that the usefulness of the house depends.
+ Therefore just as we take advantage of what is, we should recognize the usefulness of what is not.
+
+ Lao Tzu: Tao Te Ching</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0104-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0104-isvalid.html
new file mode 100644
index 0000000000..03e0dd192c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0104-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html prefix="rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns# example: http://www.example.org/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0104</title>
+ </head>
+ <body>
+ <p>
+ The word "interfenestration" has
+ <span about="#interfenestration" rel="example:size">
+ <span property="rdf:value">17</span>
+ <span property="example:unit">character</span>s.
+ </span>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0106-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0106-isvalid.html
new file mode 100644
index 0000000000..9c04bab32a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0106-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0106</title>
+ </head>
+ <body>
+ <div about="" rel="dc:creator">
+ <a rel="" href="manu.html">Manu</a> created this page.
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0107-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0107-isvalid.html
new file mode 100644
index 0000000000..75d30d72e9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0107-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html prefix="ex: http://example.org/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0107</title>
+ </head>
+ <body>
+ <div rel="next"></div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0109-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0109-novalid.html
new file mode 100644
index 0000000000..7ca6adb3e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0109-novalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/" xml:base="http://example.org/invalid/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0109</title>
+ </head>
+ <body>
+ <!-- This a NOT a valid XHTML document (due to @xml:base) -->
+ <div xml:base="http://example.org/invalid/">
+ <p about="">This is <span property="dc:title">Test 0109</span>.</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0110-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0110-isvalid.html
new file mode 100644
index 0000000000..39287ec298
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0110-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="xhv: http://www.w3.org/1999/xhtml/vocab#">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0110</title>
+ </head>
+ <body>
+ <div rel="xhv:next">
+ <div rel="xhv:next"></div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0111-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0111-isvalid.html
new file mode 100644
index 0000000000..195aa7a376
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0111-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="xhv: http://www.w3.org/1999/xhtml/vocab#">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0111</title>
+ </head>
+ <body>
+ <div rel="xhv:next">
+ <div rel="xhv:next">
+ <div rel="xhv:next"></div>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0112-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0112-isvalid.html
new file mode 100644
index 0000000000..f28691f89c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0112-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html prefix="ex: http://example.org/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0112</title>
+ </head>
+ <body>
+ <p>
+ <span about="http://example.org/node" property="ex:property"
+ datatype="">not an XML Literal,
+whitespace preserved
+</span>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0114-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0114-isvalid.html
new file mode 100644
index 0000000000..363cc1b040
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0114-isvalid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html prefix="cc: http://creativecommons.org/ns# xhv: http://www.w3.org/1999/xhtml/vocab# rdfatest: http://rdfa.info/vocabs/rdfa-test#">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0114</title>
+ </head>
+ <body>
+ <div>
+ <a rel="xhv:index" href="../../.././#">Test Suite</a>
+ <a rel="xhv:next" href="0115.html">Test Case 0115</a>
+ <a rel="xhv:up" href="./">Test Case 0114</a>
+ <a rel="cc:attributionURL" href="../../../../">RDFa Website</a>
+ <a rel="rdfatest:cornerCase1" href=".">Corner Case #1</a>
+ <a rel="rdfatest:cornerCase3" href="...">Corner Case #3</a>
+ <a rel="rdfatest:cornerCase4" href="?foo=bar../baz">Corner Case #4</a>
+ <a rel="rdfatest:cornerCase5" href="../..../../../.../.htaccess">Corner Case #5</a>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0115-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0115-isvalid.html
new file mode 100644
index 0000000000..cde9b6e40d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0115-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html prefix="ex: http://www.example.com/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0115</title>
+ </head>
+ <body>
+ <p>Description: XML entities in the RDFa content</p>
+ <p>
+ <span property="ex:entity1">&gt;</span>
+ <span property="ex:entity2">Ben &amp; Co.</span>
+ <span property="ex:entity3">&#x40;</span>
+ <span property="ex:entity4">&#64;</span>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0117-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0117-isvalid.html
new file mode 100644
index 0000000000..ed34d0ead6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0117-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <base href="http://www.example.org/tc117.xhtml#fragment">
+ <title property="dc:title">Test 0117</title>
+ </head>
+ <body>
+ <p>
+ <span property="dc:contributor">Mark Birbeck</span>
+ added this triple test.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0118-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0118-isvalid.html
new file mode 100644
index 0000000000..2af4127f26
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0118-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0118</title>
+ </head>
+ <body>
+ <p>
+ Check to see if parsers get confused when "" is
+ interpreted as NULL in some chaining cases.
+ <a href="http://example.org/ben.html"><span
+ about="" property="dc:creator">Ben</span></a>
+ </p>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0119-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0119-isvalid.html
new file mode 100644
index 0000000000..187a42ea18
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0119-isvalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/ example: http://example.org/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0119</title>
+ </head>
+ <body>
+ <div>
+ <p about="[example:]">
+ The
+ <span property="dc:title">Example Website</span>
+ is used in many W3C tutorials.
+ </p>
+ </div>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0120-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0120-isvalid.html
new file mode 100644
index 0000000000..fc44b1e2c0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0120-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/ example: http://example.org/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0120</title>
+ </head>
+ <body>
+ <p about="[:]">
+ The
+ <span property="dc:title">The XHTML Vocabulary Document</span>
+ is the default prefix for XHTML+RDFa 1.0.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0122-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0122-isvalid.html
new file mode 100644
index 0000000000..e3472f5414
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0122-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0122</title>
+ </head>
+ <body>
+ <p about="http://example.org/section1.html">
+ This section is contained below <span rel="up" resource="[]">the main site</span>.
+ </p>
+ </body>
+
+
+
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0126-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0126-isvalid.html
new file mode 100644
index 0000000000..419edd91e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0126-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="dct: http://purl.org/dc/terms/ sioc: http://rdfs.org/sioc/ns# foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0126</title>
+ </head>
+ <body>
+ <div about="http://www.example.org/#article" typeof="foaf:Document sioc:Post">
+ <h1 property="dct:title">My article</h1>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0131-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0131-novalid.html
new file mode 100644
index 0000000000..aa3a82c60e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0131-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html prefix="xhv: http://www.w3.org/1999/xhtml/vocab#">
+<head>
+ <meta charset=utf-8>
+ <title>Test</title>
+ <link rel="xhv:next&#x20;xhv:prev&#x09;xhv:first&#x0a;xhv:last&#x0d;xhv:subsection" href="http://example.org/test.css">
+</head>
+<body>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0134-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0134-isvalid.html
new file mode 100644
index 0000000000..ced8d6c899
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0134-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test</title>
+ <link rel="LICENSE" href="http://example.org/test.css">
+</head>
+<body>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0140-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0140-isvalid.html
new file mode 100644
index 0000000000..d2a7123929
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0140-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Blank-node as Predicate Test</title>
+</head>
+<body>
+<p>Blank Nodes are not allowed to be predicate identifiers in RDF:</p>
+<p property="_:invalid">Test</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0147-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0147-novalid.html
new file mode 100644
index 0000000000..23adadedf1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0147-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test</title>
+</head>
+<body>
+<p xmlns:xmlzzz="http://example.org/" property="xmlzzz:test">Test</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0174-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0174-isvalid.html
new file mode 100644
index 0000000000..a7564eb763
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0174-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html prefix="v: http://www.w3.org/2006/vcard/ns#">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0174</title>
+</head>
+<body>
+ <p>
+ This test ensures that single-character prefixes are allowed.
+ My name is:
+ <span about="http://example.org/jd" property="v:fn">John Doe</span>
+ </p>
+</body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0175-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0175-isvalid.html
new file mode 100644
index 0000000000..b02fab0b3c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0175-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0175</title>
+ </head>
+ <body>
+ <p about="_:gregg">My name is
+ <em property="http://xmlns.com/foaf/0.1/name">Gregg Kellogg</em>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0176-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0176-isvalid.html
new file mode 100644
index 0000000000..2983e2e038
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0176-isvalid.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0176</title>
+ </head>
+ <body>
+ <div about="_:manu">
+ Manu can be reached via
+ <a rel="http://xmlns.com/foaf/0.1/mbox" href="mailto:manu.sporny@digitalbazaar.com">email</a>.
+ <span rel="http://xmlns.com/foaf/0.1/knows" resource="_:gregg">He knows Gregg.</span>
+ <span rev="http://xmlns.com/foaf/0.1/knows" resource="_:gregg">Who knows Manu.</span>
+ </div>
+
+ <div about="_:gregg">
+ Gregg can be reached via
+ <a rel="http://xmlns.com/foaf/0.1/mbox" href="mailto:gregg@kellogg-assoc.com">email</a>.
+ </div>
+ </body>
+
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0177-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0177-isvalid.html
new file mode 100644
index 0000000000..4b2978fb00
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0177-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0177</title>
+ <base href="http://example.org/">
+ </head>
+ <body>
+ <div about ="#me" prefix="foaf: http://xmlns.com/foaf/0.1/" >
+ <p property="foaf:name">Ivan Herman</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0178-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0178-isvalid.html
new file mode 100644
index 0000000000..c6f09ffd81
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0178-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0178</title>
+ <base href="http://example.org/">
+ </head>
+ <body>
+ <div about ="#this" prefix="foaf: http://xmlns.com/foaf/0.1/ dc: http://purl.org/dc/terms/" typeof="dc:Agent">
+ <p property="foaf:name">A particular agent</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0179-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0179-novalid.html
new file mode 100644
index 0000000000..fafe0fed3f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0179-novalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0179</title>
+ <base href="http://example.org/">
+ </head>
+ <body>
+ <!-- prefix has a higher priority than xmlns -->
+ <div about ="#me" xmlns:foaf="http://www.example.com/wrong/foaf/uri" prefix="foaf: http://xmlns.com/foaf/0.1/" >
+ <p property="foaf:name">Ivan Herman</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0180-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0180-novalid.html
new file mode 100644
index 0000000000..79127fc321
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0180-novalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0180</title>
+ <base href="http://example.org/">
+ </head>
+ <body>
+ <div about ="#me" prefix=": http://xmlns.com/foaf/0.1/" >
+ <p property=":name">Ivan Herman</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0181-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0181-isvalid.html
new file mode 100644
index 0000000000..66950be448
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0181-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0181</title>
+ </head>
+ <body>
+ <div about ="http://www.example.org/software">
+ <p rel=":license" resource="http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231">Ivan Herman</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0182-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0182-isvalid.html
new file mode 100644
index 0000000000..25e2b11e5f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0182-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0182</title>
+ <base href="http://example.org/">
+ </head>
+ <body>
+ <div prefix="foaf: http://example.org/wrong/foaf/uri/ dc: http://purl.org/dc/terms/" >
+ <div about ="#this" typeof="dc:Agent" prefix="foaf: http://xmlns.com/foaf/0.1/" >
+ <p property="foaf:name">A particular agent</p>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0183-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0183-novalid.html
new file mode 100644
index 0000000000..8d99e03486
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0183-novalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0183</title>
+ <base href="http://example.org/">
+</head>
+<body>
+ <div prefix="foaf: http://example.org/wrong/foaf/uri/ dc: http://purl.org/dc/terms/" >
+ <div about ="#this" typeof="dc:Agent" xmlns:foaf="http://xmlns.com/foaf/0.1/" >
+ <p property="foaf:name">A particular agent</p>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0186-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0186-isvalid.html
new file mode 100644
index 0000000000..de61ca7a7b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0186-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0186</title>
+ <base href="http://example.org/">
+</head>
+<body>
+ <div about ="#me" vocab="http://xmlns.com/foaf/0.1/" >
+ <p property="name">Ivan Herman</p>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0187-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0187-isvalid.html
new file mode 100644
index 0000000000..f3811ad17a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0187-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0187</title>
+ <base href="http://example.org/">
+ </head>
+ <body>
+ <div vocab="http://example.org/wrong/foaf/uri/">
+ <div about ="#me" vocab="http://xmlns.com/foaf/0.1/" >
+ <p property="name">Ivan Herman</p>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0188-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0188-isvalid.html
new file mode 100644
index 0000000000..fbe17f33d2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0188-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0188</title>
+ <base href="http://example.org/">
+ </head>
+ <body>
+ <div vocab="http://xmlns.com/foaf/0.1/">
+ <div about ="#me">
+ <p property="name">Ivan Herman</p>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0189-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0189-isvalid.html
new file mode 100644
index 0000000000..ff7804d24c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0189-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0189</title>
+ </head>
+ <body>
+ <div about ="http://www.example.org/software" vocab="http://www.example.org/vocab#">
+ <p rel="license" resource="http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231">Ivan Herman</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0190-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0190-isvalid.html
new file mode 100644
index 0000000000..d8f0f98b9e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0190-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0190</title>
+ </head>
+ <body>
+ <div about ="http://www.example.org/software">
+ <p rel="liCeNse" resource="http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231">Ivan Herman</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0196-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0196-isvalid.html
new file mode 100644
index 0000000000..6b764dbd55
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0196-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="ex: http://example.org/rdf/ rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0196</title>
+</head>
+<body>
+ <div about="http://www.example.org">
+ <p property="ex:xmllit" datatype="rdf:XMLLiteral">This is an XMLLiteral</p>
+ <p property="ex:plainlit">This is a <em>plain</em> literal</p>
+</div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0197-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0197-isvalid.html
new file mode 100644
index 0000000000..c5dc92ba4c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0197-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/terms/">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0197</title>
+ <base href="http://www.example.org/me">
+</head>
+<body>
+ <p about="" typeof="class/Person" property="pred/name">Gregg Kellogg</p>
+ <p property="dc:language" datatype="pred/lang">Ruby</p>
+ <p rel="pred/rel" resource="http://kellogg-assoc.com/">Kellogg Associates</p>
+ <p rev="pred/rev" resource="http://github.org/gkellogg/rdf_context">Ruby Gem</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0206-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0206-isvalid.html
new file mode 100644
index 0000000000..cdcf64a4b1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0206-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Default context test 0206</title>
+</head>
+<body>
+ <p about ="xsd:maxExclusive" rel="rdf:type" resource="owl:DatatypeProperty">
+ An OWL Axiom: "xsd:maxExclusive" is a Datatype Property in OWL.
+ </p>
+</body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0207-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0207-isvalid.html
new file mode 100644
index 0000000000..db3c87de8f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0207-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html prefix="cal: http://www.w3.org/2002/12/cal/icaltzd# xsd: http://www.w3.org/2001/XMLSchema#">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0207</title>
+</head>
+ <body>
+ <p about="#event1" typeof="cal:Vevent">
+ <b property="cal:summary">Weekend off in Iona</b>:
+ <span property="cal:dtstart" content="2006-10-21" datatype="xsd:date">Oct 21st</span>
+ to <span property="cal:dtend" content="2006-10-23" datatype="xsd:date">Oct 23rd</span>.
+ See <a rel="cal:url" href="http://freetime.example.org/">FreeTime.Example.org</a> for
+ info on <span property="cal:location">Iona, UK</span>.
+ </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0213-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0213-isvalid.html
new file mode 100644
index 0000000000..b07bab2066
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0213-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0213</title>
+ </head>
+ <body>
+ <!-- In RDFa 1.1, by default a plain literal is generated even if it contains XML elements -->
+ <div about="http://www.example.org/">
+ <h2 property="dc:title">E = mc<sup>2</sup>: The Most Urgent Problem of Our Time</h2>
+ </div>
+ </body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0214-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0214-isvalid.html
new file mode 100644
index 0000000000..395e645fb8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0214-isvalid.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html typeof="foaf:Document">
+<head>
+ <title property="dc:title">Test 0214</title>
+</head>
+<body>
+ <p>This document has a title.</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0216-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0216-isvalid.html
new file mode 100644
index 0000000000..2e03fbcea5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0216-isvalid.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html prefix = "
+air: http://www.daml.org/2001/10/html/airport-ont#
+bio: http://vocab.org/bio/0.1/
+contact: http://www.w3.org/2000/10/swap/pim/contact#
+dc: http://purl.org/dc/terms/
+foaf: http://xmlns.com/foaf/0.1/
+ical: http://www.w3.org/2002/12/cal/icaltzd#
+owl: http://www.w3.org/2002/07/owl#
+rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#
+rdfs: http://www.w3.org/2000/01/rdf-schema#
+rel: http://vocab.org/relationship/
+openid: http://xmlns.openid.net/auth#
+rss: http://web.resource.org/rss/1.0/
+sioc: http://rdfs.org/sioc/ns#
+xsd: http://www.w3.org/2001/XMLSchema#
+google: http://rdf.data-vocabulary.org/#
+rsa: http://www.w3.org/ns/auth/rsa#
+cert: http://www.w3.org/ns/auth/cert#
+wot: http://xmlns.com/wot/0.1/
+">
+<head>
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+ <title>Test 0216</title>
+</head>
+<body>
+ <!-- Tests whether the Unicode (UTF-8 encoded) characters are properly handled even with a large set of properties
+ in the html element, ie, when the content sniffing to find out the character encoding may not work -->
+ <p about="http://www.ivan-herman.net/foaf#me" property="foaf:name">Iván</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0217-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0217-isvalid.html
new file mode 100644
index 0000000000..7cb7082aca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0217-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0217</title>
+ <base href="http://example.org/">
+</head>
+<body>
+ <div about="#me" vocab="http://xmlns.com/foaf/0.1/" >
+ <p property="name">Gregg Kellogg</p>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0218-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0218-isvalid.html
new file mode 100644
index 0000000000..f8bb147def
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0218-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0218</title>
+</head>
+<body>
+ <div about ="">
+ <p rel="rdf:value" inlist=""></p>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0219-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0219-isvalid.html
new file mode 100644
index 0000000000..3865401f39
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0219-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0219</title>
+</head>
+<body>
+ <div about="">
+ <p property="rdf:value" inlist="">Foo</p>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0220-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0220-isvalid.html
new file mode 100644
index 0000000000..a171f2d472
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0220-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0220</title>
+</head>
+<body>
+ <div about="">
+ <a rel="rdf:value" inlist="" href="foo">Foo</a>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0221-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0221-isvalid.html
new file mode 100644
index 0000000000..b01b83ae9b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0221-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0221</title>
+</head>
+<body>
+ <div about="">
+ <p property="rdf:value" inlist="">Foo</p>
+ <a rel="rdf:value" inlist="" href="foo">Foo</a>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0222-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0222-novalid.html
new file mode 100644
index 0000000000..09bc1b56e2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0222-novalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0222</title>
+</head>
+<body>
+ <div about="">
+ <p property="rdf:value" inlist="">Foo</p>
+ <strong><p property="rdf:value" inlist="">Bar</p></strong>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0223-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0223-novalid.html
new file mode 100644
index 0000000000..662fe5124a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0223-novalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0223</title>
+</head>
+<body>
+ <div about="">
+ <p property="rdf:value" inlist="">Foo</p>
+ <strong><p property="rdf:value" inlist="">Bar</p></strong>
+ <p property="rdf:value">Baz</p>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0224-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0224-isvalid.html
new file mode 100644
index 0000000000..08b39cf2cd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0224-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0224</title>
+</head>
+<body>
+ <div about="">
+ <ol rel="rdf:value" inlist="">
+ <li><a href="foo">Foo</a></li>
+ <li><a href="bar">Bar</a></li>
+ </ol>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0225-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0225-isvalid.html
new file mode 100644
index 0000000000..f513aabb66
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0225-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0225</title>
+</head>
+<body>
+ <div about="foo">
+ <p property="rdf:value" inlist="">Foo</p>
+ </div>
+ <div about="foo">
+ <p property="rdf:value" inlist="">Bar</p>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0226-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0226-novalid.html
new file mode 100644
index 0000000000..bf6103ea9b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0226-novalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0226</title>
+</head>
+<body prefix="ex: http://www.example.org/">
+ <div about="">
+ <p property="rdf:value" inlist="">Foo</p>
+ <span rel="ex:inlist" resource="res">
+ <p property="rdf:value" inlist="">Bar</p>
+ </span>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0227-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0227-novalid.html
new file mode 100644
index 0000000000..a0a961fd57
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0227-novalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0227</title>
+</head>
+<body prefix="ex: http://www.example.org/">
+ <div about="">
+ <p property="rdf:value" inlist="">Foo</p>
+ <span rel="ex:inlist">
+ <p about="res" property="rdf:value" inlist="">Bar</p>
+ </span>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0228-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0228-isvalid.html
new file mode 100644
index 0000000000..84f4eb0626
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0228-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0228</title>
+ <!-- Based on 1.1 semantics for 0040 -->
+ </head>
+ <body>
+ <div>
+ <img src="http://sw-app.org/img/mic_2007_01.jpg"
+ rev="xhv:alternate"
+ resource="http://sw-app.org/img/mic_2006_03.jpg"
+ alt="A photo depicting Michael">
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0229-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0229-isvalid.html
new file mode 100644
index 0000000000..540d8c5a4a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0229-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0042</title>
+ </head>
+ <body>
+ <div>
+ <img rel="foaf:img"
+ src="http://sw-app.org/img/mic_2007_01.jpg"
+ alt="A photo depicting Michael">
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0230-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0230-novalid.html
new file mode 100644
index 0000000000..c2c1203f23
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0230-novalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0230</title>
+</head>
+<body>
+ <div>
+ <img
+ src="http://example.org/example.png"
+ rel="license"
+ href="http://creativecommons.org/licenses/by-nc-sa/2.0/"
+ alt="example image">
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0231-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0231-isvalid.html
new file mode 100644
index 0000000000..a609e7326d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0231-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0231</title>
+</head>
+<body>
+ <div about="http://creativecommons.org/licenses/by-nc-sa/2.0/" rev="license">
+ <img src="http://example.org/example.png" alt="example image">
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0232-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0232-isvalid.html
new file mode 100644
index 0000000000..6a3eac2194
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0232-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0232</title>
+ </head>
+ <body>
+ <div rel="foaf:maker" typeof="foaf:Person">
+ <p property="foaf:name">John Doe</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0233-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0233-isvalid.html
new file mode 100644
index 0000000000..586778ecf3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0233-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0233</title>
+ </head>
+ <body>
+ <div rel="foaf:maker" typeof="foaf:Person" resource="http://www.example.org/#me">
+ <p property="foaf:name">John Doe</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0234-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0234-isvalid.html
new file mode 100644
index 0000000000..3dfbdaa03d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0234-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0234</title>
+ </head>
+ <body>
+ <p>
+ <a rel="describedby" href="http://example.org/describedby">describedby</a>
+ <a rel="license" href="http://example.org/license">license</a>
+ <a rel="role" href="http://example.org/role">role</a>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0235-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0235-isvalid.html
new file mode 100644
index 0000000000..183956137e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0235-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0235</title>
+ </head>
+ <body>
+ <p>
+ The <span property="dc:title">rdfagraph</span> should not generate triples when
+ looking only at the processor graph.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0237-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0237-novalid.html
new file mode 100644
index 0000000000..cf5b022224
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0237-novalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0237</title>
+</head>
+<body prefix="$malformed http://example.com"
+ property="rdf:value"
+ resource="[$malformed:curie]">
+ Malformed Prefix
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0238-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0238-isvalid.html
new file mode 100644
index 0000000000..92feca27ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0238-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0238</title>
+</head>
+<body property="undefined_term">
+ Undefined Term
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0239-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0239-isvalid.html
new file mode 100644
index 0000000000..a28850ee58
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0239-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0239</title>
+</head>
+<body property="rdf:value"
+ resource="[undefined:curie]">
+ Undefined Prefix
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0240-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0240-isvalid.html
new file mode 100644
index 0000000000..9938beaa8f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0240-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0240</title>
+</head>
+<body prefix="rdfatest: http://rdfa.info/vocabs/rdfa-test#" vocab="http://rdfa.info/vocabs/rdfa-test#">
+ Using the property <code property="subProp" resource="rdfatest:subProp">subProp</code>
+ should cause a triple with <code>baseProp</code> to be added.
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0241-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0241-isvalid.html
new file mode 100644
index 0000000000..eb6b77a98d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0241-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0241</title>
+</head>
+<body prefix="rdfatest: http://rdfa.info/vocabs/rdfa-test#" vocab="http://rdfa.info/vocabs/rdfa-test#">
+ Using the property <code property="eqProp" resource="rdfatest:eqProp">eqProp</code>
+ should cause a triple with <code>baseProp</code> to be added.
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0242-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0242-isvalid.html
new file mode 100644
index 0000000000..7b6a59078d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0242-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0242</title>
+</head>
+<body prefix="rdfatest: http://rdfa.info/vocabs/rdfa-test#" vocab="http://rdfa.info/vocabs/rdfa-test#">
+ Using the property <code property="baseProp" resource="rdfatest:eqProp">eqProp</code>
+ should cause a triple with <code>eqProp</code> to be added.
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0243-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0243-isvalid.html
new file mode 100644
index 0000000000..7a21da4135
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0243-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0243</title>
+</head>
+<body prefix="rdfatest: http://rdfa.info/vocabs/rdfa-test#" vocab="http://rdfa.info/vocabs/rdfa-test#">
+ Using the type <code about="_:a" typeof="SubClass">SubClass</code>
+ should cause a triple with <code>BaseClass</code> to be added.
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0244-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0244-isvalid.html
new file mode 100644
index 0000000000..654009bb4b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0244-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0244</title>
+</head>
+<body prefix="rdfatest: http://rdfa.info/vocabs/rdfa-test#" vocab="http://rdfa.info/vocabs/rdfa-test#">
+ Using the type <code about="_:a" typeof="EqClass">EqClass</code>
+ should cause a triple with <code>BaseClass</code> to be added.
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0245-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0245-isvalid.html
new file mode 100644
index 0000000000..513d80060c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0245-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0245</title>
+</head>
+<body prefix="rdfatest: http://rdfa.info/vocabs/rdfa-test#" vocab="http://rdfa.info/vocabs/rdfa-test#">
+ Using the type <code about="_:a" typeof="BaseClass">BaseClass</code>
+ should cause a triple with <code>EqClass</code> to be added.
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0246-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0246-isvalid.html
new file mode 100644
index 0000000000..fd59c141cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0246-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0246</title>
+ </head>
+ <body prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <div about="http://www.example.org/#ben" rel="foaf:knows">
+ <p typeof="foaf:Person"><span property="foaf:name">Mark Birbeck</span></p>
+ <p typeof="foaf:Person"><span property="foaf:name">Ivan Herman</span></p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0247-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0247-isvalid.html
new file mode 100644
index 0000000000..b0b8ca0711
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0247-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0247</title>
+ </head>
+ <body prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <div about ="http://www.example.org/#somebody" rel="foaf:knows">
+ <p property="foaf:name">Ivan Herman</p>
+ <p rel="foaf:mailbox" resource="mailto:ivan@w3.org">mailto:ivan@w3.org</p>
+ <p typeof="foaf:Person"><span property="foaf:name">Mark Birbeck</span></p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0248-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0248-isvalid.html
new file mode 100644
index 0000000000..b2a3e3f6ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0248-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0248</title>
+ </head>
+ <body prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <div about ="http://www.example.org/#somebody" rev="foaf:knows">
+ <p property="foaf:name">Ivan Herman</p>
+ <p rel="foaf:mailbox" resource="mailto:ivan@w3.org">mailto:ivan@w3.org</p>
+ <p typeof="foaf:Person"><span property="foaf:name">Mark Birbeck</span></p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0249-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0249-isvalid.html
new file mode 100644
index 0000000000..f84895c29c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0249-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0249</title>
+ </head>
+ <body prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <div about ="http://www.example.org/#somebody" rev="foaf:knows" rel="foaf:knows">
+ <p property="foaf:name">Ivan Herman</p>
+ <p rel="foaf:mailbox" resource="mailto:ivan@w3.org">mailto:ivan@w3.org</p>
+ <p typeof="foaf:Person"><span property="foaf:name">Mark Birbeck</span></p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0250-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0250-isvalid.html
new file mode 100644
index 0000000000..61b8dbe7a9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0250-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0250</title>
+ </head>
+ <body prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <p about ="http://www.ivan-herman.net/foaf#me" typeof="foaf:Person" property="foaf:name">Ivan Herman</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0251-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0251-isvalid.html
new file mode 100644
index 0000000000..2a5182c403
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0251-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html prefix="ex: http://example.org/">
+ <head about="">
+ <meta charset=utf-8>
+ <title>Test 251</title>
+ <meta about="http://example.org/node" property="ex:property" lang="fr" content="chat">
+ </head>
+ <body>
+ <p></p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0252-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0252-isvalid.html
new file mode 100644
index 0000000000..efc449123e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0252-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html prefix="ex: http://example.org/">
+ <head about="" lang="fr">
+ <title lang="en">Test 0252</title>
+ <meta about="http://example.org/node" property="ex:property" content="chat">
+ </head>
+ <body>
+ <p></p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0253-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0253-isvalid.html
new file mode 100644
index 0000000000..858aed8b24
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0253-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="ex: http://example.org/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0108</title>
+ </head>
+ <body>
+ <p about="http://example.org/node" property="ex:property"
+ datatype="" lang="el">ελληνικό
+άσπρο διάστημα
+</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0254-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0254-isvalid.html
new file mode 100644
index 0000000000..5c963f557a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0254-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html prefix="ex: http://example.org/terms#">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0254</title>
+ <base href="http://example.org/">
+</head>
+<body lang="en">
+ <p property="ex:prop" datatype="">A <strong>plain literal</strong> with a lang tag.</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0255-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0255-isvalid.html
new file mode 100644
index 0000000000..7b1d284b4d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0255-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html prefix="ex: http://example.org/terms#">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0255</title>
+ <base href="http://example.org/">
+</head>
+<body lang="en">
+ <p property="ex:prop" lang="">Just a plain literal.</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0257-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0257-isvalid.html
new file mode 100644
index 0000000000..01e194240c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0257-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0257</title>
+ </head>
+ <body>
+ <span about="#a" property="dc:title"></span>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0258-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0258-novalid.html
new file mode 100644
index 0000000000..9f9a48c3d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0258-novalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Undescore Prefix is Ignored Test</title>
+</head>
+<body>
+<p>Ensure that the "_" prefix is ignored.</p>
+<p xmlns:_="http://example.org/"
+ prefix="_: http://example.org/"
+ xmlns:earl="http://www.w3.org/ns/earl#"
+ rel="earl:testcase" resource="_:test">Test</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0259-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0259-isvalid.html
new file mode 100644
index 0000000000..e2c8e5d600
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0259-isvalid.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0259</title>
+</head>
+<body>
+ <div>
+ Vocabulary Prefixes
+ <span property="grddl:">GRDDL</span>
+ <span property="ma:">MA</span>
+ <span property="owl:">OWL</span>
+ <span property="rdf:">RDF</span>
+ <span property="rdfa:">RDFa</span>
+ <span property="rdfs:">RDFS</span>
+ <span property="rif:">RIF</span>
+ <span property="skos:">SKOS</span>
+ <span property="skosxl:">SKOS-XL</span>
+ <span property="wdr:">WDR</span>
+ <span property="void:">VOID</span>
+ <span property="wdrs:">WDRS</span>
+ <span property="xhv:">XHV</span>
+ <span property="xml:">XML</span>
+ <span property="xsd:">XSD</span>
+ </div>
+ <div>
+ Widely Used prefixes
+ <span property="cc:">CC</span>
+ <span property="ctag:">CTAG</span>
+ <span property="dc:">DC</span>
+ <span property="dcterms:">DCTERMS</span>
+ <span property="foaf:">FOAF</span>
+ <span property="gr:">GR</span>
+ <span property="ical:">ICAL</span>
+ <span property="og:">OG</span>
+ <span property="rev:">REV</span>
+ <span property="sioc:">SIOC</span>
+ <span property="v:">V</span>
+ <span property="vcard:">VCARD</span>
+ <span property="schema:">Schema</span>
+ </div>
+ <div>
+ Vocabulary Terms
+ <span property="describedby">DescribedBy</span>
+ <span property="license">License</span>
+ <span property="role">Role</span>
+ </div>
+</body></html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0261-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0261-isvalid.html
new file mode 100644
index 0000000000..6f887d1b62
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0261-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="ex: http://example.org/rdf/ rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0261</title>
+</head>
+<body>
+ <div about="http://www.example.org">
+ <p property="ex:xmllit" datatype="rdf:XMLLiteral">This is
+an XMLLiteral</p>
+</div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0262-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0262-isvalid.html
new file mode 100644
index 0000000000..5293ec2916
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0262-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0262</title>
+</head>
+<body>
+ <p>This photo was taken by <span class="author" about="photo1.jpg" property=" dc:creator
+">Mark Birbeck</span>.</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0263-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0263-isvalid.html
new file mode 100644
index 0000000000..d8ef4b0b27
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0263-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html property="rdfs:seeAlso" resource="http://www.example.org">
+<head >
+ <meta charset=utf-8>
+ <title>Test 0263</title>
+</head>
+<body>
+ <p> </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0264-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0264-isvalid.html
new file mode 100644
index 0000000000..62cefe5013
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0264-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head property="rdfs:seeAlso" resource="http://www.example.org">
+ <meta charset=utf-8>
+ <title>Test 0264</title>
+</head>
+<body>
+ <p> </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0265-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0265-isvalid.html
new file mode 100644
index 0000000000..b4bcf8057a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0265-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html about="http://www.example.com">
+<head property="rdfs:seeAlso" resource="http://www.example.org">
+ <meta charset=utf-8>
+ <title>Test 0265</title>
+</head>
+<body>
+ <p> </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0266-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0266-isvalid.html
new file mode 100644
index 0000000000..5f30516f23
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0266-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0266</title>
+</head>
+<body>
+ <div about="http://www.w3.org/Person/Ivan#me">
+ <a href="http://www.ivan-herman.net/foaf#me" typeof="foaf:Person" property="owl:sameAs">Ivan Herman</a>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0267-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0267-isvalid.html
new file mode 100644
index 0000000000..291dad06ca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0267-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0267</title>
+</head>
+<body>
+ <div about="http://www.w3.org/Person/Ivan#me">
+ <p resource="http://www.ivan-herman.net/foaf#me" typeof="foaf:Person" property="owl:sameAs">Ivan Herman</p>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0268-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0268-isvalid.html
new file mode 100644
index 0000000000..03292c7d91
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0268-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0268</title>
+</head>
+<body>
+ <div about="http://www.ivan-herman.net/foaf#me">
+ <img src="http://www.ivan-herman.net/Images/me2003-small.png" typeof="foaf:Image" property="foaf:depiction" alt="Ivan Herman">
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0269-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0269-isvalid.html
new file mode 100644
index 0000000000..3ff53585f1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0269-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html property="rdfs:comment" content="This is an RDFa test">
+<head >
+ <meta charset=utf-8>
+ <title>Test 0269</title>
+</head>
+<body>
+ <p> </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0271-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0271-isvalid.html
new file mode 100644
index 0000000000..50a8e8a84e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0271-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html about="http://www.example.org/">
+<head property="rdfs:comment" content="This is an RDFa test">
+ <meta charset=utf-8>
+ <title>Test 0269</title>
+</head>
+<body>
+ <p> </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0272-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0272-isvalid.html
new file mode 100644
index 0000000000..ddd86e6b6d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0272-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0272</title>
+</head>
+<body>
+ <time property="rdf:value" datetime="2012-03-18">18 March 2012</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0273-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0273-isvalid.html
new file mode 100644
index 0000000000..3bbf607f8a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0273-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0273</title>
+</head>
+<body>
+ <time property="rdf:value" datetime="00:00:00">midnight</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0274-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0274-isvalid.html
new file mode 100644
index 0000000000..faf6d451ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0274-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0274</title>
+</head>
+<body>
+ <time property="rdf:value" datetime="2012-03-18T00:00:00Z">18 March 2012 at midnight</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0275-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0275-isvalid.html
new file mode 100644
index 0000000000..c53311b645
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0275-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0275</title>
+</head>
+<body>
+ <time property="rdf:value">2012-03-18</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0276-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0276-isvalid.html
new file mode 100644
index 0000000000..6ca34862b6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0276-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0275</title>
+</head>
+<body>
+ <time property="rdf:value">00:00:00</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0277-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0277-isvalid.html
new file mode 100644
index 0000000000..61922bf18f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0277-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0277</title>
+</head>
+<body>
+ <time property="rdf:value">2012-03-18T00:00:00Z</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0278-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0278-isvalid.html
new file mode 100644
index 0000000000..7490cf0f18
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0278-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0278</title>
+</head>
+<body>
+ <p>The value of @content has a higher priority than @datetime</p>
+ <time property="rdf:value" datetime="2012-03-18" content="this should be the value">18 March 2012</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0279-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0279-isvalid.html
new file mode 100644
index 0000000000..da3798d085
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0279-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0279</title>
+</head>
+<body>
+ <time property="rdf:value" datetime="2012-03-18T00:00:00Z" datatype="xsd:date">18 March 2012 at midnight</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0280-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0280-novalid.html
new file mode 100644
index 0000000000..dbe94dfd0a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0280-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0280</title>
+</head>
+<body>
+ <time property="rdf:value" datetime="P2011Y06M28DT00H00M00S">2011 years 6 months 28 days</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0281-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0281-isvalid.html
new file mode 100644
index 0000000000..1158dc9361
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0281-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0281</title>
+</head>
+<body>
+ <time property="rdf:value" datetime="2012">Two Thousand Twelve</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0282-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0282-isvalid.html
new file mode 100644
index 0000000000..1fd9cb1a1f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0282-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0282</title>
+</head>
+<body>
+ <time property="rdf:value" datetime="2012-03">March, Two Thousand Twelve</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0283-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0283-isvalid.html
new file mode 100644
index 0000000000..3be86a46f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0283-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0283</title>
+</head>
+<body>
+ <time property="rdf:value"> 2012-03-18</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0284-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0284-isvalid.html
new file mode 100644
index 0000000000..e2b0254b9a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0284-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0284</title>
+</head>
+<body>
+ <time property="rdf:value" datatype="xsd:dateTime"> 2012-03-18</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0285-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0285-novalid.html
new file mode 100644
index 0000000000..58d276f28b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0285-novalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0285</title>
+</head>
+<body>
+ <time property="rdf:value" lang="en" datetime="D-Day">
+ Non matching lexical value with language.
+ </time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0287-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0287-isvalid.html
new file mode 100644
index 0000000000..17aa300748
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0287-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0287</title>
+</head>
+<body>
+ <time property="rdf:value" datetime="2012-03-18T00:00:00-08:00">18 March 2012 at midnight in San Francisco</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0289-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0289-isvalid.html
new file mode 100644
index 0000000000..09af29ea57
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0289-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0289</title>
+</head>
+<body>
+ <h1>@href becomes subject when @property and @content are present</h1>
+ <a href="http://example.org/" property="rdf:value" content="value">ignored</a>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0290-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0290-isvalid.html
new file mode 100644
index 0000000000..12ac353b2d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0290-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0290</title>
+</head>
+<body>
+ <h1>@href becomes subject when @property and @datatype are present</h1>
+ <a href="http://example.org/" property="rdf:value" datatype="">value</a>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0291-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0291-isvalid.html
new file mode 100644
index 0000000000..dddb87e2b6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0291-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html prefix="rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0291</title>
+</head>
+<body>
+ <h1>@href as subject overridden by @about</h1>
+ <a about="http://example.net/" href="http://example.org/" property="rdf:value" content="value">ignored</a>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0292-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0292-isvalid.html
new file mode 100644
index 0000000000..1a9e85b467
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0292-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="rdf: http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0292</title>
+</head>
+<body>
+ <h1>@about overriding @href as subject is used as parent resource</h1>
+ <a about="http://example.net/" href="http://example.org/" property="rdf:value" content="value one">
+ <span property="rdf:value">value two</span>
+ </a>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0293-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0293-isvalid.html
new file mode 100644
index 0000000000..2202603d77
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0293-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0293</title>
+</head>
+<body>
+ <h1>Testing the ':' character usage in a CURIE</h1>
+ <div prefix="ex: http://www.example.org/">
+ <p about="http://www.example.org" property="ex:column:test">Test</p>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0296-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0296-isvalid.html
new file mode 100644
index 0000000000..bdf56c40ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0296-isvalid.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0296</title>
+</head>
+<body>
+ <div vocab="http://xmlns.com/foaf/0.1/" resource="http://example.com/gregg/#me" typeof="Person">
+ <a property="homepage" href="http://example.com/gregg/"><span property="name">Gregg</span></a>
+ Knows
+ <ul>
+ <li property="knows" resource="http://example.com/niklas/#me" typeof="Person">
+ <a property="homepage" href="http://example.com/niklas/"><span property="name">Niklas</span></a>
+ </li>
+ <li property="knows" resource="http://example.com/stéphane/#me" typeof="Person">
+ <a property="homepage" href="http://example.com/stéphane/"><span property="name">Stéphane</span></a>
+ </li>
+ <li property="knows" resource="http://example.com/ivan/#me" typeof="Person">
+ <a property="homepage" href="http://example.com/ivan/"><span property="name">Ivan</span></a>
+ </li>
+ <li property="knows" resource="http://example.com/manu/#me" typeof="Person">
+ <a property="homepage" href="http://example.com/manu/"><span property="name">Manu</span></a>
+ </li>
+ </ul>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0297-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0297-isvalid.html
new file mode 100644
index 0000000000..5832089565
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0297-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0297: Testing @typeof and @about=[]</title>
+</head>
+<body>
+ <div about="[]" typeof="foaf:Person" property="foaf:name">Alex Milowski</div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0298-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0298-isvalid.html
new file mode 100644
index 0000000000..54ab6d91d4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0298-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0298: Testing @typeof and @about=[]</title>
+</head>
+<body>
+ <div about="[]" typeof="foaf:Person">
+ <span property="foaf:name">Alex Milowski</span>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0299-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0299-isvalid.html
new file mode 100644
index 0000000000..c529090d72
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0299-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0299: Testing @resource=[]</title>
+</head>
+<body about="http://www.example.org/">
+ <a href="http://www.example.org/license.xhtml" rel="xhv:license" resource="[]">The Foo Document</a>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0300-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0300-isvalid.html
new file mode 100644
index 0000000000..38741f14bc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0300-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0300: Testing @resource=[]</title>
+</head>
+<body about="http://www.example.org/">
+ <a href="http://www.example.org/license.xhtml" property="xhv:license" resource="[]">The Foo Document</a>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0301-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0301-isvalid.html
new file mode 100644
index 0000000000..f6dce1da96
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0301-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0301: Typed Property</title>
+</head>
+<body>
+ <p vocab="http://www.milowski.com/V/" property="bit" typeof="thing">
+ <span property="name">Fizzbit</span>
+ </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0302-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0302-isvalid.html
new file mode 100644
index 0000000000..21020d0fc4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0302-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0302: various types of tokens in @typeof</title>
+</head>
+<body>
+ <div vocab="http://schema.org/" resource="http://openspring.net/scor#me" typeof="Person foaf:Person http://purl.org/dc/terms/Agent">
+ <a property="homepage" href="http://openspring.net/"><span property="name">Stéphane Corlosquet</span></a>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0303-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0303-isvalid.html
new file mode 100644
index 0000000000..6444209590
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0303-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0303: @rel/@rev terms removed if @property exists</title>
+</head>
+<body>
+ <div vocab="http://schema.org/" resource="http://example.org/base">
+ <a property="uri" rel="license" href="http://example.orb/val1">Not This</a>
+ <a property="name" rel="homepage foaf:homepage" href="http://greggkellogg.net/">Gregg Kellogg</a>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0305-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0305-isvalid.html
new file mode 100644
index 0000000000..3ee7f48603
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0305-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0305</title>
+ </head>
+ <body>
+ <div id="heading1" role="heading">
+ <p>Some contents that are a header</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0306-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0306-isvalid.html
new file mode 100644
index 0000000000..6b720f0348
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0306-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0306</title>
+ <base href="http://www.example.com/tests/0306">
+ </head>
+ <body>
+ <div id="heading1" role="heading">
+ <p>Some contents that are a header</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0307-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0307-isvalid.html
new file mode 100644
index 0000000000..c9b99557ab
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0307-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0307</title>
+ </head>
+ <body>
+ <div role="heading">
+ <p>Some contents that are a header</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0308-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0308-novalid.html
new file mode 100644
index 0000000000..56f9a3930d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0308-novalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0308</title>
+ </head>
+ <body>
+ <div id="therole" role="http://www.example.com/roles/somerole">
+ <p>Some contents that are a header</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0309-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0309-novalid.html
new file mode 100644
index 0000000000..e9ca319beb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0309-novalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0309</title>
+ </head>
+ <body>
+ <div prefix="ex: http://www.example.com/roles/" id="therole" role="ex:somerole">
+ <p>Some contents that are a header</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0310-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0310-novalid.html
new file mode 100644
index 0000000000..89793d797a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0310-novalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0310</title>
+ </head>
+ <body>
+ <div prefix="ex: http://www.example.com/roles/" id="therole" role="ex:somerole someOtherRole http://www.example.com/alternate/role">
+ <p>Some contents that are a header</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0311-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0311-isvalid.html
new file mode 100644
index 0000000000..e8991e4aed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0311-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0311</title>
+</head>
+<body>
+ <div>
+ <span class="attribution-line">this photo was taken by
+ <span property="">Stéphane Corlosquet</span>
+ </span>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0312-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0312-isvalid.html
new file mode 100644
index 0000000000..af489fe88b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0312-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0312</title>
+</head>
+<body>
+ <p vocab="http://schema.org/" typeof="Person">
+ The homepage of <a href="http://example.org/" property="homepage" rel="nofollow">Some Body</a>.
+ </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0313-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0313-isvalid.html
new file mode 100644
index 0000000000..e4b4b760da
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0313-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0313</title>
+</head>
+<body prefix="rdfa: http://www.example.org/" resource="http://www.example.com">
+ <p property="rdfa:erronouslyRedefinedProperty">Foo</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0314-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0314-novalid.html
new file mode 100644
index 0000000000..a8e1c16084
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0314-novalid.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0314</title>
+ </head>
+ <body>
+ <div id="b" role="banner">
+ <p>Here is a banner for this page.</p>
+ </div>
+ <div id="toc" role="contentinfo">
+ <p>Here is some information about the page's contents:</p>
+ <ul id="contents" role="list">
+ <li role="listitem"><a href="#s1">Section 1</a></li>
+ <li role="listitem"><a href="#s2">Section 2</a></li>
+ <li role="listitem"><a href="#a1">Appendix 1</a></li>
+ </ul>
+ </div>
+ <div id="main" role="main">
+ <p>This is the primary content of this page. It has some sections.</p>
+ <div id="s1" role="section">
+ <h1 role="heading">Some contents that are a header</h1>
+ <p>Section 1 needs some content!</p>
+ </div>
+ <div id="s2" role="section">
+ <h1 role="heading">This is Section 2</h1>
+ <p>Section 2 is pretty boring.</p>
+ </div>
+ <div id="a1" role="appendix">
+ <h1 role="heading">This is Appendix 1</h1>
+ <p role="note">It is a note about the document - not a primary content
+ item.</p>
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0315-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0315-isvalid.html
new file mode 100644
index 0000000000..79bf76a023
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0315-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0315</title>
+</head>
+<body prefix="po: http://example.org/">
+ <dl>
+ <dt rel="po:role" class="role">
+ <span typeof="po:Role" property="rdfs:label">Director</span>
+ </dt>
+ <dd></dd>
+ </dl>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0316-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0316-isvalid.html
new file mode 100644
index 0000000000..7063dd3aa6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0316-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0316</title>
+</head>
+<body prefix="po: http://example.org/">
+ <dl>
+ <dt rel="po:role" class="role">
+ <a typeof="po:Role" property="rdfs:label" href="http://example.org/profiles/director.html">Director</a>
+ </dt>
+ <dd></dd>
+ </dl>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0317-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0317-isvalid.html
new file mode 100644
index 0000000000..a8d0f89500
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0317-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0316</title>
+</head>
+<body prefix="po: http://purl.org/ontology/po/">
+ <dl>
+ <dt rel="po:role" class="role">
+ <a typeof="po:Role" property="rdfs:label" datatype="" href="http://example.org/profiles/director.html">Director</a>
+ </dt>
+ <dd></dd>
+ </dl>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0318-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0318-isvalid.html
new file mode 100644
index 0000000000..b11d8dfbb9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0318-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0318</title>
+ </head>
+ <body>
+ <div vocab="http://xmlns.com/foaf/0.1/">
+ <div about ="#me">
+ <p property="name">Ivan Herman</p>
+ <meta vocab="" property="prop" content="value">
+ </div>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0319-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0319-novalid.html
new file mode 100644
index 0000000000..5397314f25
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0319-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <base href="http://example.com/">
+ <meta charset=utf-8>
+ <title>Test 0319</title>
+</head>
+<body prefix="pr: relative/iri#" xmlns:xpr="relative/uri#">
+ <p property="pr:prop xpr:prop">value</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0320-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0320-novalid.html
new file mode 100644
index 0000000000..19816e4c84
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0320-novalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0320</title>
+</head>
+<body>
+ <div vocab="http://xmlns.com/foaf/0.1/" resource="http://example.com/gregg/#me" typeof="Person">
+ <a property="homepage" href="http://example.com/gregg/" src="http://example.net/gregg">
+ <span property="name">Gregg</span>
+ </a>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0321-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0321-isvalid.html
new file mode 100644
index 0000000000..ee9159d0ba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0321-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0321</title>
+</head>
+<body vocab="http://schema.org/">
+ <div typeof="Person">
+ <link property="rdfa:copy" resource="_:a">
+ </div>
+ <p resource="_:a" typeof="rdfa:Pattern">Name: <span property="name">Amanda</span></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0322-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0322-isvalid.html
new file mode 100644
index 0000000000..f10dd51cad
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0322-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0322</title>
+</head>
+<body vocab="http://schema.org/">
+ <div typeof="Person">
+ <p>My name is <span property="name">Gregg</span></p>
+ <link property="rdfa:copy" resource="_:surname">
+ </div>
+ <p resource="_:surname" typeof="rdfa:Pattern">My name is <span property="name">Kellogg</span></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0323-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0323-isvalid.html
new file mode 100644
index 0000000000..6e8d034b46
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0323-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0323</title>
+</head>
+<body>
+ <div typeof="schema:Person">
+ <link property="rdfa:copy" resource="_:a">
+ </div>
+ <div typeof="foaf:Person">
+ <link property="rdfa:copy" resource="_:a">
+ </div>
+ <p resource="_:a" typeof="rdfa:Pattern">Name: <span property="schema:name foaf:name">Amanda</span></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0324-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0324-isvalid.html
new file mode 100644
index 0000000000..20d6529d4a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0324-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0324</title>
+</head>
+<body>
+ <div typeof="schema:Person">
+ <link property="rdfa:copy" resource="_:a">
+ <link property="rdfa:copy" resource="_:b">
+ </div>
+ <p resource="_:a" typeof="rdfa:Pattern">Name: <span property="schema:name">Amanda</span></p>
+ <p resource="_:b" typeof="rdfa:Pattern"><span property="schema:band">Jazz Band</span></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0325-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0325-isvalid.html
new file mode 100644
index 0000000000..549844fd79
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0325-isvalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <base href="http://example.org/">
+ <meta charset=utf-8>
+ <title>Test 0325</title>
+</head>
+<body vocab="http://schema.org/">
+ <div resource="#foo" typeof=""><link property="rdfa:copy" resource="_:a"></div>
+ <div resource="#bar" typeof=""><link property="rdfa:copy" resource="_:a"></div>
+ <div resource="_:a" typeof="rdfa:Pattern">
+ <div property="schema:refers-to" typeof="">
+ <span property="schema:name">Amanda</span>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0326-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0326-isvalid.html
new file mode 100644
index 0000000000..5791c1c38f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0326-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <base href="http://example.com/">
+ <meta charset=utf-8>
+ <title>Test 0326</title>
+</head>
+<body vocab="http://schema.org/">
+ <div resource="#referencing" typeof="Person">
+ <link property="rdfa:copy" resource="#referenced">
+ </div>
+ <p resource="#referenced" typeof="rdfa:Pattern">Name: <span property="name">Bella</span></p>
+ <p resource="#unreferenced" typeof="rdfa:Pattern">Name: <span property="name">Lola</span></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0327-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0327-isvalid.html
new file mode 100644
index 0000000000..7228f861ce
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0327-isvalid.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <base href="http://example.com/">
+ <meta charset=utf-8>
+ <title>Test 0327</title>
+</head>
+<body>
+ <div typeof="schema:Person">
+ <link property="rdfa:copy" resource="_:a">
+ <link property="rdfa:copy" resource="_:b">
+ </div>
+ <p resource="_:a" typeof="rdfa:Pattern">Name: <span property="schema:name">Amanda</span></p>
+ <div resource="_:b" typeof="rdfa:Pattern">
+ <div property="schema:band" typeof=" schema:MusicGroup">
+ <link property="rdfa:copy" resource="_:c">
+ </div>
+ </div>
+ <div resource="_:c" typeof="rdfa:Pattern">
+ <p>Band: <span property="schema:name">Jazz Band</span></p>
+ <p>Size: <span property="schema:size">12</span> players</p>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0328-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0328-isvalid.html
new file mode 100644
index 0000000000..11fdf077bd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0328-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0328</title>
+</head>
+<body>
+ <p>The value of @content has a higher priority than the content of the element</p>
+ <time property="rdf:value" content="this should be the value">2012-03-18</time>
+</body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0329-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0329-isvalid.html
new file mode 100644
index 0000000000..996183c848
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0329-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0329</title>
+</head>
+<body>
+ <div about="http://example.org/foaf#me" property="foaf:name">
+ <span property="foaf:givenName">John</span>
+ <span property="foaf:familyName">Doe</span>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0330-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0330-isvalid.html
new file mode 100644
index 0000000000..2ce3e07ede
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0330-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html prefix="dcterms: http://purl.org/dc/terms/ xsd: http://www.w3.org/2001/XMLSchema#">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0330</title>
+</head>
+<body lang="en">
+ <div property="dc:date" datatype="xsd:date">2010-11-12</div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfa/0331-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfa/0331-isvalid.html
new file mode 100644
index 0000000000..f54979398d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfa/0331-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html prefix="dcterms: http://purl.org/dc/terms/">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0331</title>
+</head>
+<body lang="en">
+ <div property="dcterms:language" datatype="dcterms:RFC5646" content="af">Afrikaans</div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0015-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0015-isvalid.html
new file mode 100644
index 0000000000..edcbe3108b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0015-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0015</title>
+ <link rel="dc:source" href="urn:isbn:0140449132">
+ <meta property="dc:creator" content="Fyodor Dostoevsky">
+ </head>
+ <body>
+ <p></p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0021-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0021-isvalid.html
new file mode 100644
index 0000000000..21b9f42112
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0021-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0021</title>
+</head>
+<body>
+ <div>
+ <span class="attribution-line">this photo was taken by
+ <span property="dc:creator">Mark Birbeck</span>
+ </span>
+ </div>
+</body>
+
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0023-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0023-isvalid.html
new file mode 100644
index 0000000000..5859d45788
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0023-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0023</title>
+ </head>
+ <body>
+ <div id="photo1">
+ This photo was taken by
+ <span property="dc:creator">Mark Birbeck</span>
+ </div>
+ </body>
+
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0030-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0030-isvalid.html
new file mode 100644
index 0000000000..7fd1a85ec7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0030-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html prefix="cc: http://creativecommons.org/ns#">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0030</title>
+ </head>
+ <body>
+ <p>This document is licensed under a
+ <a rel="cc:license"
+ href="http://creativecommons.org/licenses/by-nc-nd/2.5/">
+ Creative Commons License
+ </a>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0050-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0050-isvalid.html
new file mode 100644
index 0000000000..94e28c88b6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0050-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0050</title>
+ </head>
+ <body>
+ <div typeof="foaf:Person">
+ <p property="foaf:name">John Doe</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0052-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0052-isvalid.html
new file mode 100644
index 0000000000..8e4d02f7bf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0052-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0052</title>
+ </head>
+ <body>
+ <p typeof="foaf:Person" resource="http://www.example.org/#me">
+ John Doe
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0053-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0053-isvalid.html
new file mode 100644
index 0000000000..f5d2172923
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0053-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0053</title>
+ </head>
+ <body>
+ <p typeof="foaf:Person" resource="http://www.example.org/#me">
+ <span property="foaf:name">John Doe</span>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0066-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0066-isvalid.html
new file mode 100644
index 0000000000..dc8642ac73
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0066-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head typeof="foaf:Document">
+ <meta charset=utf-8>
+ <title>Test 0066</title>
+ </head>
+ <body>
+ <p>This is test #66.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0067-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0067-isvalid.html
new file mode 100644
index 0000000000..e60e30e04d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0067-isvalid.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <title property="foaf:topic">Test 0067</title>
+ </head>
+ <body>
+ <p>This is test #67.</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0071-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0071-isvalid.html
new file mode 100644
index 0000000000..511e0b7107
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0071-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="cc: http://creativecommons.org/ns#">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0071</title>
+ </head>
+ <body>
+ <p>This page is under a Creative Commons
+ <a rel="cc:license"
+ href="http://creativecommons.org/licenses/by-nd/3.0/">
+ Attribution-No Derivatives 3.0 license</a>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0074-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0074-isvalid.html
new file mode 100644
index 0000000000..e7e7456c06
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0074-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <base href="http://www.example.org/">
+ <meta charset=utf-8>
+ <title>Test 0074</title>
+ </head>
+ <body>
+ <p>
+ This article was written by
+ <a rel="dc:creator" href="jane">Jane</a>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0075-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0075-isvalid.html
new file mode 100644
index 0000000000..1d4074d991
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0075-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <base href="http://www.example.org/">
+ <meta charset=utf-8>
+ <title>Test 0075</title>
+ </head>
+ <body>
+ <p>
+ This page is under a Creative Commons
+ <a rel="license" href="http://creativecommons.org/licenses/by-nd/3.0/">Attribution-No Derivatives 3.0 license</a>.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0089-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0089-isvalid.html
new file mode 100644
index 0000000000..21354e155e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0089-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html prefix="foaf: http://xmlns.com/foaf/0.1/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0089</title>
+ </head>
+ <body>
+ <div>
+ <img src="http://example.org/example.png" typeof="foaf:Image" alt="example image">
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0115-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0115-isvalid.html
new file mode 100644
index 0000000000..cde9b6e40d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0115-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html prefix="ex: http://www.example.com/">
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0115</title>
+ </head>
+ <body>
+ <p>Description: XML entities in the RDFa content</p>
+ <p>
+ <span property="ex:entity1">&gt;</span>
+ <span property="ex:entity2">Ben &amp; Co.</span>
+ <span property="ex:entity3">&#x40;</span>
+ <span property="ex:entity4">&#64;</span>
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0117-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0117-isvalid.html
new file mode 100644
index 0000000000..ed34d0ead6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0117-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html prefix="dc: http://purl.org/dc/elements/1.1/">
+ <head>
+ <base href="http://www.example.org/tc117.xhtml#fragment">
+ <title property="dc:title">Test 0117</title>
+ </head>
+ <body>
+ <p>
+ <span property="dc:contributor">Mark Birbeck</span>
+ added this triple test.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0134-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0134-isvalid.html
new file mode 100644
index 0000000000..ced8d6c899
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0134-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test</title>
+ <link rel="LICENSE" href="http://example.org/test.css">
+</head>
+<body>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0140-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0140-isvalid.html
new file mode 100644
index 0000000000..d2a7123929
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0140-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Blank-node as Predicate Test</title>
+</head>
+<body>
+<p>Blank Nodes are not allowed to be predicate identifiers in RDF:</p>
+<p property="_:invalid">Test</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0147.novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0147.novalid.html
new file mode 100644
index 0000000000..23adadedf1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0147.novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test</title>
+</head>
+<body>
+<p xmlns:xmlzzz="http://example.org/" property="xmlzzz:test">Test</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0214-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0214-isvalid.html
new file mode 100644
index 0000000000..395e645fb8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0214-isvalid.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html typeof="foaf:Document">
+<head>
+ <title property="dc:title">Test 0214</title>
+</head>
+<body>
+ <p>This document has a title.</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0235-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0235-isvalid.html
new file mode 100644
index 0000000000..183956137e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0235-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0235</title>
+ </head>
+ <body>
+ <p>
+ The <span property="dc:title">rdfagraph</span> should not generate triples when
+ looking only at the processor graph.
+ </p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0238-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0238-isvalid.html
new file mode 100644
index 0000000000..92feca27ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0238-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0238</title>
+</head>
+<body property="undefined_term">
+ Undefined Term
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0239-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0239-isvalid.html
new file mode 100644
index 0000000000..a28850ee58
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0239-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0239</title>
+</head>
+<body property="rdf:value"
+ resource="[undefined:curie]">
+ Undefined Prefix
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0240-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0240-isvalid.html
new file mode 100644
index 0000000000..9938beaa8f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0240-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0240</title>
+</head>
+<body prefix="rdfatest: http://rdfa.info/vocabs/rdfa-test#" vocab="http://rdfa.info/vocabs/rdfa-test#">
+ Using the property <code property="subProp" resource="rdfatest:subProp">subProp</code>
+ should cause a triple with <code>baseProp</code> to be added.
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0241-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0241-isvalid.html
new file mode 100644
index 0000000000..eb6b77a98d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0241-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0241</title>
+</head>
+<body prefix="rdfatest: http://rdfa.info/vocabs/rdfa-test#" vocab="http://rdfa.info/vocabs/rdfa-test#">
+ Using the property <code property="eqProp" resource="rdfatest:eqProp">eqProp</code>
+ should cause a triple with <code>baseProp</code> to be added.
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0242-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0242-isvalid.html
new file mode 100644
index 0000000000..7b6a59078d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0242-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0242</title>
+</head>
+<body prefix="rdfatest: http://rdfa.info/vocabs/rdfa-test#" vocab="http://rdfa.info/vocabs/rdfa-test#">
+ Using the property <code property="baseProp" resource="rdfatest:eqProp">eqProp</code>
+ should cause a triple with <code>eqProp</code> to be added.
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0255-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0255-isvalid.html
new file mode 100644
index 0000000000..7b1d284b4d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0255-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html prefix="ex: http://example.org/terms#">
+<head>
+ <meta charset=utf-8>
+ <title>Test 0255</title>
+ <base href="http://example.org/">
+</head>
+<body lang="en">
+ <p property="ex:prop" lang="">Just a plain literal.</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0259-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0259-isvalid.html
new file mode 100644
index 0000000000..e2c8e5d600
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0259-isvalid.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0259</title>
+</head>
+<body>
+ <div>
+ Vocabulary Prefixes
+ <span property="grddl:">GRDDL</span>
+ <span property="ma:">MA</span>
+ <span property="owl:">OWL</span>
+ <span property="rdf:">RDF</span>
+ <span property="rdfa:">RDFa</span>
+ <span property="rdfs:">RDFS</span>
+ <span property="rif:">RIF</span>
+ <span property="skos:">SKOS</span>
+ <span property="skosxl:">SKOS-XL</span>
+ <span property="wdr:">WDR</span>
+ <span property="void:">VOID</span>
+ <span property="wdrs:">WDRS</span>
+ <span property="xhv:">XHV</span>
+ <span property="xml:">XML</span>
+ <span property="xsd:">XSD</span>
+ </div>
+ <div>
+ Widely Used prefixes
+ <span property="cc:">CC</span>
+ <span property="ctag:">CTAG</span>
+ <span property="dc:">DC</span>
+ <span property="dcterms:">DCTERMS</span>
+ <span property="foaf:">FOAF</span>
+ <span property="gr:">GR</span>
+ <span property="ical:">ICAL</span>
+ <span property="og:">OG</span>
+ <span property="rev:">REV</span>
+ <span property="sioc:">SIOC</span>
+ <span property="v:">V</span>
+ <span property="vcard:">VCARD</span>
+ <span property="schema:">Schema</span>
+ </div>
+ <div>
+ Vocabulary Terms
+ <span property="describedby">DescribedBy</span>
+ <span property="license">License</span>
+ <span property="role">Role</span>
+ </div>
+</body></html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0263-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0263-isvalid.html
new file mode 100644
index 0000000000..d8ef4b0b27
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0263-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html property="rdfs:seeAlso" resource="http://www.example.org">
+<head >
+ <meta charset=utf-8>
+ <title>Test 0263</title>
+</head>
+<body>
+ <p> </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0264-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0264-isvalid.html
new file mode 100644
index 0000000000..62cefe5013
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0264-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head property="rdfs:seeAlso" resource="http://www.example.org">
+ <meta charset=utf-8>
+ <title>Test 0264</title>
+</head>
+<body>
+ <p> </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0272-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0272-isvalid.html
new file mode 100644
index 0000000000..ddd86e6b6d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0272-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0272</title>
+</head>
+<body>
+ <time property="rdf:value" datetime="2012-03-18">18 March 2012</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0273-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0273-isvalid.html
new file mode 100644
index 0000000000..3bbf607f8a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0273-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0273</title>
+</head>
+<body>
+ <time property="rdf:value" datetime="00:00:00">midnight</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0274-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0274-isvalid.html
new file mode 100644
index 0000000000..faf6d451ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0274-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0274</title>
+</head>
+<body>
+ <time property="rdf:value" datetime="2012-03-18T00:00:00Z">18 March 2012 at midnight</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0275-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0275-isvalid.html
new file mode 100644
index 0000000000..c53311b645
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0275-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0275</title>
+</head>
+<body>
+ <time property="rdf:value">2012-03-18</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0276-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0276-isvalid.html
new file mode 100644
index 0000000000..6ca34862b6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0276-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0275</title>
+</head>
+<body>
+ <time property="rdf:value">00:00:00</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0277-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0277-isvalid.html
new file mode 100644
index 0000000000..61922bf18f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0277-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0277</title>
+</head>
+<body>
+ <time property="rdf:value">2012-03-18T00:00:00Z</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0281-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0281-isvalid.html
new file mode 100644
index 0000000000..1158dc9361
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0281-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0281</title>
+</head>
+<body>
+ <time property="rdf:value" datetime="2012">Two Thousand Twelve</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0282-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0282-isvalid.html
new file mode 100644
index 0000000000..1fd9cb1a1f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0282-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0282</title>
+</head>
+<body>
+ <time property="rdf:value" datetime="2012-03">March, Two Thousand Twelve</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0283-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0283-isvalid.html
new file mode 100644
index 0000000000..3be86a46f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0283-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0283</title>
+</head>
+<body>
+ <time property="rdf:value"> 2012-03-18</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0287-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0287-isvalid.html
new file mode 100644
index 0000000000..17aa300748
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0287-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0287</title>
+</head>
+<body>
+ <time property="rdf:value" datetime="2012-03-18T00:00:00-08:00">18 March 2012 at midnight in San Francisco</time>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0296-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0296-isvalid.html
new file mode 100644
index 0000000000..bdf56c40ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0296-isvalid.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0296</title>
+</head>
+<body>
+ <div vocab="http://xmlns.com/foaf/0.1/" resource="http://example.com/gregg/#me" typeof="Person">
+ <a property="homepage" href="http://example.com/gregg/"><span property="name">Gregg</span></a>
+ Knows
+ <ul>
+ <li property="knows" resource="http://example.com/niklas/#me" typeof="Person">
+ <a property="homepage" href="http://example.com/niklas/"><span property="name">Niklas</span></a>
+ </li>
+ <li property="knows" resource="http://example.com/stéphane/#me" typeof="Person">
+ <a property="homepage" href="http://example.com/stéphane/"><span property="name">Stéphane</span></a>
+ </li>
+ <li property="knows" resource="http://example.com/ivan/#me" typeof="Person">
+ <a property="homepage" href="http://example.com/ivan/"><span property="name">Ivan</span></a>
+ </li>
+ <li property="knows" resource="http://example.com/manu/#me" typeof="Person">
+ <a property="homepage" href="http://example.com/manu/"><span property="name">Manu</span></a>
+ </li>
+ </ul>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0301-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0301-isvalid.html
new file mode 100644
index 0000000000..f6dce1da96
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0301-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0301: Typed Property</title>
+</head>
+<body>
+ <p vocab="http://www.milowski.com/V/" property="bit" typeof="thing">
+ <span property="name">Fizzbit</span>
+ </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0302-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0302-isvalid.html
new file mode 100644
index 0000000000..21020d0fc4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0302-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0302: various types of tokens in @typeof</title>
+</head>
+<body>
+ <div vocab="http://schema.org/" resource="http://openspring.net/scor#me" typeof="Person foaf:Person http://purl.org/dc/terms/Agent">
+ <a property="homepage" href="http://openspring.net/"><span property="name">Stéphane Corlosquet</span></a>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0305-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0305-isvalid.html
new file mode 100644
index 0000000000..3ee7f48603
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0305-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0305</title>
+ </head>
+ <body>
+ <div id="heading1" role="heading">
+ <p>Some contents that are a header</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0306-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0306-isvalid.html
new file mode 100644
index 0000000000..6b720f0348
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0306-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0306</title>
+ <base href="http://www.example.com/tests/0306">
+ </head>
+ <body>
+ <div id="heading1" role="heading">
+ <p>Some contents that are a header</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0307-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0307-isvalid.html
new file mode 100644
index 0000000000..c9b99557ab
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0307-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>Test 0307</title>
+ </head>
+ <body>
+ <div role="heading">
+ <p>Some contents that are a header</p>
+ </div>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0311-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0311-isvalid.html
new file mode 100644
index 0000000000..e8991e4aed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0311-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0311</title>
+</head>
+<body>
+ <div>
+ <span class="attribution-line">this photo was taken by
+ <span property="">Stéphane Corlosquet</span>
+ </span>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0312-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0312-isvalid.html
new file mode 100644
index 0000000000..af489fe88b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0312-isvalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0312</title>
+</head>
+<body>
+ <p vocab="http://schema.org/" typeof="Person">
+ The homepage of <a href="http://example.org/" property="homepage" rel="nofollow">Some Body</a>.
+ </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0313-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0313-isvalid.html
new file mode 100644
index 0000000000..e4b4b760da
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0313-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0313</title>
+</head>
+<body prefix="rdfa: http://www.example.org/" resource="http://www.example.com">
+ <p property="rdfa:erronouslyRedefinedProperty">Foo</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0319-novalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0319-novalid.html
new file mode 100644
index 0000000000..5397314f25
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0319-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <base href="http://example.com/">
+ <meta charset=utf-8>
+ <title>Test 0319</title>
+</head>
+<body prefix="pr: relative/iri#" xmlns:xpr="relative/uri#">
+ <p property="pr:prop xpr:prop">value</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0321-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0321-isvalid.html
new file mode 100644
index 0000000000..ee9159d0ba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0321-isvalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0321</title>
+</head>
+<body vocab="http://schema.org/">
+ <div typeof="Person">
+ <link property="rdfa:copy" resource="_:a">
+ </div>
+ <p resource="_:a" typeof="rdfa:Pattern">Name: <span property="name">Amanda</span></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0322-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0322-isvalid.html
new file mode 100644
index 0000000000..f10dd51cad
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0322-isvalid.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0322</title>
+</head>
+<body vocab="http://schema.org/">
+ <div typeof="Person">
+ <p>My name is <span property="name">Gregg</span></p>
+ <link property="rdfa:copy" resource="_:surname">
+ </div>
+ <p resource="_:surname" typeof="rdfa:Pattern">My name is <span property="name">Kellogg</span></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0323-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0323-isvalid.html
new file mode 100644
index 0000000000..6e8d034b46
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0323-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0323</title>
+</head>
+<body>
+ <div typeof="schema:Person">
+ <link property="rdfa:copy" resource="_:a">
+ </div>
+ <div typeof="foaf:Person">
+ <link property="rdfa:copy" resource="_:a">
+ </div>
+ <p resource="_:a" typeof="rdfa:Pattern">Name: <span property="schema:name foaf:name">Amanda</span></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0324-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0324-isvalid.html
new file mode 100644
index 0000000000..20d6529d4a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0324-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test 0324</title>
+</head>
+<body>
+ <div typeof="schema:Person">
+ <link property="rdfa:copy" resource="_:a">
+ <link property="rdfa:copy" resource="_:b">
+ </div>
+ <p resource="_:a" typeof="rdfa:Pattern">Name: <span property="schema:name">Amanda</span></p>
+ <p resource="_:b" typeof="rdfa:Pattern"><span property="schema:band">Jazz Band</span></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0325-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0325-isvalid.html
new file mode 100644
index 0000000000..549844fd79
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0325-isvalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <base href="http://example.org/">
+ <meta charset=utf-8>
+ <title>Test 0325</title>
+</head>
+<body vocab="http://schema.org/">
+ <div resource="#foo" typeof=""><link property="rdfa:copy" resource="_:a"></div>
+ <div resource="#bar" typeof=""><link property="rdfa:copy" resource="_:a"></div>
+ <div resource="_:a" typeof="rdfa:Pattern">
+ <div property="schema:refers-to" typeof="">
+ <span property="schema:name">Amanda</span>
+ </div>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0326-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0326-isvalid.html
new file mode 100644
index 0000000000..5791c1c38f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0326-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <base href="http://example.com/">
+ <meta charset=utf-8>
+ <title>Test 0326</title>
+</head>
+<body vocab="http://schema.org/">
+ <div resource="#referencing" typeof="Person">
+ <link property="rdfa:copy" resource="#referenced">
+ </div>
+ <p resource="#referenced" typeof="rdfa:Pattern">Name: <span property="name">Bella</span></p>
+ <p resource="#unreferenced" typeof="rdfa:Pattern">Name: <span property="name">Lola</span></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-rdfalite/0327-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0327-isvalid.html
new file mode 100644
index 0000000000..7228f861ce
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-rdfalite/0327-isvalid.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <base href="http://example.com/">
+ <meta charset=utf-8>
+ <title>Test 0327</title>
+</head>
+<body>
+ <div typeof="schema:Person">
+ <link property="rdfa:copy" resource="_:a">
+ <link property="rdfa:copy" resource="_:b">
+ </div>
+ <p resource="_:a" typeof="rdfa:Pattern">Name: <span property="schema:name">Amanda</span></p>
+ <div resource="_:b" typeof="rdfa:Pattern">
+ <div property="schema:band" typeof=" schema:MusicGroup">
+ <link property="rdfa:copy" resource="_:c">
+ </div>
+ </div>
+ <div resource="_:c" typeof="rdfa:Pattern">
+ <p>Band: <span property="schema:name">Jazz Band</span></p>
+ <p>Size: <span property="schema:size">12</span> players</p>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/0001isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/0001isvalid.html
new file mode 100644
index 0000000000..0894bd7180
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/0001isvalid.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset=utf-8>
+ <title>&lt;svg&gt;'s HTML integration points</title>
+ </head>
+ <body>
+ <!-- self-closed elements -->
+ <svg>
+ <title/>
+ <desc/>
+ <foreignObject height=0 width=0 />
+ </svg>
+
+ <!-- null-content elements -->
+ <svg>
+ <title></title>
+ <desc></desc>
+ <foreignObject height=0 width=0></foreignObject>
+ </svg>
+
+ <!-- just white space -->
+ <svg>
+ <title>
+
+ </title>
+ <desc>
+
+ </desc>
+ <foreignObject height=0 width=0>
+
+
+ </foreignObject>
+ </svg>
+
+ <!-- plain text -->
+ <svg>
+ <title>foo</title>
+ <desc>foo</desc>
+ <foreignObject height=0 width=0>foo</foreignObject>
+ </svg>
+
+ <!-- phrasing content -->
+ <svg>
+ <title>
+ fee
+ <a href="//example.com/">fi</a>
+ <em>fo</em>
+ <svg>
+ <title>fum</title>
+ </svg>
+ <svg>
+ <title>
+ <svg>
+ <title>
+ <svg>
+ <title>Yes, this is somehow totally valid.</title>
+ </svg>
+ </title>
+ </svg>
+ </title>
+ </svg>
+ </title>
+
+ <desc>
+ fee
+ <a href="//example.com/">fi</a>
+ <em>fo</em>
+ <svg>
+ <title>fum</title>
+ </svg>
+ <svg>
+ <title>
+ <svg>
+ <title>
+ <svg>
+ <title>Yes, this is somehow totally valid.</title>
+ </svg>
+ </title>
+ </svg>
+ </title>
+ </svg>
+ </desc>
+
+ <foreignObject height=0 width=0>
+ fee
+ <a href="//example.com/">fi</a>
+ <em>fo</em>
+ <svg>
+ <title>fum</title>
+ </svg>
+ <svg>
+ <title>
+ <svg>
+ <title>
+ <svg>
+ <title>Yes, this is somehow totally valid.</title>
+ </svg>
+ </title>
+ </svg>
+ </title>
+ </svg>
+ </foreignObject>
+ </svg>
+
+ <!-- flow content (<title> cannot have it, it only allows phrasing) -->
+ <svg>
+ <desc>
+ <section>
+ <h1>Heading</h1>
+ </section>
+ </desc>
+
+ <foreignObject height=0 width=0>
+ <section>
+ <h1>Heading</h1>
+ </section>
+ </foreignObject>
+ </svg>
+
+ <!-- metadata content not allowable in flow content (<title> and <foreignObject> cannot have this, only <desc>) -->
+ <svg>
+ <desc>
+ <style> /* */ </style>
+ <link href="/whatever" rel="stylesheet">
+ <title>I'm an HTML &lt;title&gt;!</title>
+ </desc>
+ </svg>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-dom-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-dom-01-f-isvalid.html
new file mode 100644
index 0000000000..a8b0dc56ac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-dom-01-f-isvalid.html
@@ -0,0 +1,176 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-dom-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-dom-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-dom-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='30' y='30'>Testing SVGAnimationElement.getStartTime()</text>
+
+ <text x='340' y='340' display='none'>Test running...
+ <set attributeName='display' to='inline' begin='0s' dur='2.5s'/>
+ </text>
+
+ <g id='g' display='none'/>
+
+ <animate id='a1' attributeName='display' values='inline; inline'
+ calcMode='discrete' begin='1s' dur='1s'/>
+ <animate id='a2' attributeName='display' values='inline; inline'
+ calcMode='discrete' begin='1s' dur='1s' fill='freeze'/>
+ <animate id='a3' attributeName='display' values='inline; inline'
+ calcMode='discrete' begin='indefinite' dur='1s'/>
+ <animate id='a4' attributeName='display' values='inline; inline'
+ calcMode='discrete' begin='indefinite; 100s; g.click; 1s; indefinite' dur='1s'/>
+ <animate id='a5' attributeName='display' values='inline; inline'
+ calcMode='discrete' begin='100s; 1s' dur='1s'/>
+ <animate id='a6dep' attributeName='display' values='inline; inline'
+ calcMode='discrete' begin='5s' dur='1s'/>
+ <animate id='a6' attributeName='display' values='inline; inline'
+ calcMode='discrete' begin='a6dep.begin+2s' dur='1s'/>
+
+ <animate attributeName='display' values='inline; inline'
+ calcMode='discrete' begin='0.5s' dur='1s' onbegin='before()'/>
+ <animate attributeName='display' values='inline; inline'
+ calcMode='discrete' begin='1.5s' dur='1s' onbegin='during()'/>
+ <animate attributeName='display' values='inline; inline'
+ calcMode='discrete' begin='2.5s' dur='1s' onbegin='after()'/>
+
+ <g transform='translate(30,-10)'>
+ <rect id='r1' y='50' width='25' height='25'/>
+ <rect id='r2' y='80' width='25' height='25'/>
+ <rect id='r3' y='110' width='25' height='25'/>
+ <rect id='r4' y='140' width='25' height='25'/>
+ <rect id='r5' y='170' width='25' height='25'/>
+ <rect id='r6' y='200' width='25' height='25'/>
+ <rect id='r7' y='230' width='25' height='25'/>
+ <rect id='r8' y='260' width='25' height='25'/>
+ </g>
+
+ <g font-size='14' transform='translate(70,-15)'>
+ <text y='72'>Called before a lone interval starts</text>
+ <text y='102'>Called on an animation with no intervals</text>
+ <text y='132'>Called during an interval</text>
+ <text y='162'>Called after a lone interval ends, fill="remove"</text>
+ <text y='192'>Called after a lone interval ends, fill="freeze"</text>
+ <text y='222'>Called with multiple begin values</text>
+ <text y='252'>Called with multiple begin values including "indefinite"</text>
+ <text y='282'>Called with syncbase begin value</text>
+ </g>
+ <script><![CDATA[
+ var i, ids = 'a1 a2 a3 a4 a5 a6 r1 r2 r3 r4 r5 r6 r7 r8'.split(' ');
+ for (i in ids) {
+ this[ids[i]] = document.getElementById(ids[i]);
+ }
+
+ function before() {
+ try {
+ if (a1.getStartTime() == 1) {
+ r1.setAttributeNS(null, 'fill', 'lime');
+ }
+ } catch (e) {
+ r1.setAttributeNS(null, 'fill', 'red');
+ }
+
+ r2.setAttributeNS(null, 'fill', 'red');
+ try {
+ a3.getStartTime();
+ } catch (e) {
+ if (e.code == DOMException.INVALID_STATE_ERR) {
+ r2.setAttributeNS(null, 'fill', 'lime');
+ }
+ }
+
+ try {
+ if (a4.getStartTime() == 1) {
+ r6.setAttributeNS(null, 'fill', 'lime');
+ }
+ } catch (e) {
+ r6.setAttributeNS(null, 'fill', 'red');
+ }
+
+ try {
+ if (a5.getStartTime() == 1) {
+ r7.setAttributeNS(null, 'fill', 'lime');
+ }
+ } catch (e) {
+ r7.setAttributeNS(null, 'fill', 'red');
+ }
+
+ try {
+ if (a6.getStartTime() == 7) {
+ r8.setAttributeNS(null, 'fill', 'lime');
+ }
+ } catch (e) {
+ r8.setAttributeNS(null, 'fill', 'red');
+ }
+ }
+
+ function during() {
+ try {
+ if (a1.getStartTime() == 1) {
+ r3.setAttributeNS(null, 'fill', 'lime');
+ }
+ } catch (e) {
+ r3.setAttributeNS(null, 'fill', 'red');
+ }
+ }
+
+ function after() {
+ r4.setAttributeNS(null, 'fill', 'red');
+ try {
+ a1.getStartTime();
+ } catch (e) {
+ if (e.code == DOMException.INVALID_STATE_ERR) {
+ r4.setAttributeNS(null, 'fill', 'lime');
+ }
+ }
+
+ r5.setAttributeNS(null, 'fill', 'red');
+ try {
+ a2.getStartTime();
+ } catch (e) {
+ if (e.code == DOMException.INVALID_STATE_ERR) {
+ r5.setAttributeNS(null, 'fill', 'lime');
+ }
+ }
+ }
+ ]]></script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.11 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-dom-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-dom-02-f-isvalid.html
new file mode 100644
index 0000000000..024044443a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-dom-02-f-isvalid.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-dom-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-dom-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-dom-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='30'>Testing ElementTimeControl method return values</text>
+
+ <rect id='r' x='10' y='50' width='50' height='50'/>
+ <animate id='a' attributeName='display' values='inline; inline' dur='10s'/>
+ <animate attributeName='display' values='inline; inline' onbegin='f()' dur='10s'/>
+
+ <script><![CDATA[
+ function f() {
+ var a = document.getElementById('a');
+ var b = false;
+ try {
+ b = typeof a.beginElement() == 'undefined'
+ && typeof a.beginElementAt(100) == 'undefined'
+ && typeof a.endElement() == 'undefined'
+ && typeof a.endElementAt(200) == 'undefined';
+ } catch (e) {
+ }
+ document.getElementById('r').setAttribute('fill', b ? 'green' : 'red');
+ }
+ ]]></script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-02-t-isvalid.html
new file mode 100644
index 0000000000..2fa739b965
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-02-t-isvalid.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial" font-size="30">
+ <g transform="translate(0, 0)">
+ <rect x="60" y="20" width="50" height="200" fill="#dfdfdf" stroke="#dfdfdf" stroke-width="4"/>
+ <line x1="40" x2="100" y1="220" y2="220" fill="none" stroke="#880000" stroke-width="4"/>
+ <line x1="40" x2="100" y1="120" y2="120" fill="none" stroke="#880000" stroke-width="4"/>
+ <rect x="60" y="20" width="50" height="20" fill="#0f5" stroke="#085" stroke-width="4">
+ <animate id="an5" attributeName="height" calcMode="discrete" additive="replace" accumulate="none" repeatCount="2" from="200" to="20" begin="0s" dur="4s" fill="freeze"/>
+ </rect>
+ <text x="30" y="285" fill="navy">anim.5</text>
+ </g>
+ <g transform="translate(110, 0)">
+ <rect x="60" y="20" width="50" height="200" fill="#dfdfdf" stroke="#dfdfdf" stroke-width="4"/>
+ <line x1="40" x2="100" y1="220" y2="220" fill="none" stroke="#880000" stroke-width="4"/>
+ <line x1="40" x2="100" y1="120" y2="120" fill="none" stroke="#880000" stroke-width="4"/>
+ <rect x="60" y="20" width="50" height="20" fill="#0f5" stroke="#085" stroke-width="4">
+ <animate id="an6" attributeName="height" calcMode="discrete" additive="sum" accumulate="none" repeatCount="2" from="200" to="20" begin="0s" dur="4s" fill="freeze"/>
+ </rect>
+ <text x="30" y="285" fill="navy">anim.6</text>
+ </g>
+ <g transform="translate(220, 0)">
+ <rect x="60" y="20" width="50" height="200" fill="#dfdfdf" stroke="#dfdfdf" stroke-width="4"/>
+ <line x1="40" x2="100" y1="220" y2="220" fill="none" stroke="#880000" stroke-width="4"/>
+ <line x1="40" x2="100" y1="120" y2="120" fill="none" stroke="#880000" stroke-width="4"/>
+ <rect x="60" y="20" width="50" height="20" fill="#0f5" stroke="#085" stroke-width="4">
+ <animate id="an7" attributeName="height" calcMode="discrete" additive="replace" accumulate="sum" repeatCount="2" from="200" to="20" begin="0s" dur="4s" fill="freeze"/>
+ </rect>
+ <text x="30" y="285" fill="navy">anim.7</text>
+ </g>
+ <g transform="translate(330, 0)">
+ <rect x="60" y="20" width="50" height="200" fill="#dfdfdf" stroke="#dfdfdf" stroke-width="4"/>
+ <line x1="40" x2="100" y1="220" y2="220" fill="none" stroke="#880000" stroke-width="4"/>
+ <line x1="40" x2="100" y1="120" y2="120" fill="none" stroke="#880000" stroke-width="4"/>
+ <rect x="60" y="20" width="50" height="20" fill="#0f5" stroke="#085" stroke-width="4">
+ <animate id="an8" attributeName="height" calcMode="discrete" additive="sum" accumulate="sum" repeatCount="2" from="200" to="20" begin="0s" dur="4s" fill="freeze"/>
+ </rect>
+ <text x="30" y="285" fill="navy">anim.8</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-03-t-isvalid.html
new file mode 100644
index 0000000000..42a8cba625
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-03-t-isvalid.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-03-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <font id="MyDecFont" horiz-adv-x="466">
+ <font-face font-family="MyDecFont"/>
+ <missing-glyph horiz-adv-x="233" d="M 50 0 L50 700 200 700 200 0 z"/>
+ <glyph unicode=" " glyph-name="space" horiz-adv-x="233"/>
+ <glyph unicode="1" glyph-name="one" horiz-adv-x="558" d="M458 716L100 534V428L357 552V97H241V380L140 328V0H458V716Z"/>
+ <glyph unicode="2" glyph-name="two" horiz-adv-x="585" d="M69 509Q82 523 102 541T147 575T203 603T268 614Q311 614 342 599T392 560T421 505T430 443Q430 420 423 398T405 352L343 201H444L492 309Q508 345 519 379T531 448Q531 504 511 552T454 635T369 691T262 711Q231 711 204 704T152 684T106 655T69 623V509ZM535 97H187L309 422Q316 441 315 457T306 483T287 500T265 506Q261 506 254 505T239 499T224 485T211 461L50 0H535V97Z"/>
+ <glyph unicode="3" glyph-name="three" horiz-adv-x="542" d="M58 553Q109 588 148 601T220 614Q255 614 282 604T328 575T356 535T366 488Q366 475 364 460T355 429T336 397T302 368Q311 363 325 353T352 326T376 286T386 232Q386 203 376 177T345 130T295 98T227 86Q179 86 134 104T50 153V45Q59 38 74 29T111 10T163 -5T231 -11Q296 -11 345 8T426 58T475 131T492 218Q492 251 486 276T469 320T446 354T421 378Q438 396 454 425T470 503Q470 546 454 584T406 650T332 695T233 711Q179 711 137 696T58 655V553ZM156 255Q156
+ 229 173 212T217 194Q243 194 260 211T278 255Q278 281 261 298T217 316Q191 316 174 299T156 255ZM161 467Q161 444 177 428T216 412Q225 412 234 415T252 425T265 442T271 467Q271 491 256 506T216 522Q202 522 192 517T174 503T164 486T161 467Z"/>
+ <glyph unicode="S" glyph-name="S" horiz-adv-x="629" d="M523 658Q479 681 426 696T317 711Q251 711 200 690T113 634T59 551T40 452Q40 404 59 356T114 270T198 210T304 194Q310 195 319 197T336 204T351 219T357 246Q357 261 351 270T337 285T320 291T305 294Q251 300 220 319T172 363T151 411T146 454Q146 478 154 506T183 558T237 598T322 614Q375 614 426 598T523 548V658ZM96 42Q140 19 193 4T302 -11Q368 -11 419 10T506 66T560 149T579 248Q579 296 560 344T505 431T421 490T315 506Q309 505 300 503T282 496T268 480T262
+ 454Q262 439 268 430T282 415T299 409T314 406Q368 399 399 380T447 336T468 288T473 246Q473 222 465 194T436 142T382 102T297 86Q244 86 193 102T96 152V42Z"/>
+ <glyph unicode="a" glyph-name="a" horiz-adv-x="578" d="M450 0H548V198Q548 288 522 344T458 433T375 477T292 489Q240 489 194 470T114 418T60 339T40 240Q40 180 63 134T122 55T202 6T291 -11Q311 -11 325 -9T352 -1V96Q341 89 331 86T305 83Q265 83 234 96T182 132T149 183T138 242Q138 275 150 303T183 351T232 383T294 395Q306 395 332 391T384 368T430 311T450 203V0ZM236 239Q236 215 253 198T294 181Q318 181 335 198T352 239Q352 263 335 280T294 297Q270 297 253 280T236 239Z"/>
+ <glyph unicode="m" glyph-name="m" horiz-adv-x="774" d="M40 0H138V231Q138 280 150 312T181 362T223 388T269 395Q294 395 314 388T349 370T374 346T392 318Q407 353 440 374T515 395Q531 395 553 390T596 368T631 319T646 231V0H744V231Q744 248 743 273T735 327T715 385T678 437T619 474T532 489Q504 489 482 484T443 470T412 451T390 431Q358 464 321 476T252 489Q222 489 185 481T116 445T62 367T40 231V0ZM242 0H542V246Q542 275 526 286T493 297Q473 297 459 283T444 246V94H340V246Q340 269 326 283T291 297Q275
+ 297 259 286T242 246V0Z"/>
+ <glyph unicode="p" glyph-name="p" horiz-adv-x="552" d="M40 -184H138V192H267Q284 192 300 204T316 239Q316 259 303 272T267 286H40V-184ZM40 384H261Q297 384 325 372T373 340T403 294T414 238Q414 209 403 183T373 137T326 106T264 94H236V0H264Q318 0 363 18T442 69T493 144T512 238Q512 288 494 332T442 408T363 459T263 478H40V384Z"/>
+ <glyph unicode="l" glyph-name="l" horiz-adv-x="380" d="M340 662H40V0H340V94H138V568H242V192H340V662Z"/>
+ <glyph unicode="e" glyph-name="e" horiz-adv-x="530" d="M500 192V227Q500 296 480 346T428 427T354 474T271 489Q221 489 178 470T101 418T49 340T30 243Q30 204 43 161T87 83T171 24T303 0H482V94H298Q250 94 217 108T165 144T137 192T128 244Q128 276 139 303T171 351T218 383T275 395Q301 395 322 386T360 362T386 327T402 286H277Q253 286 240 272T226 239Q226 223 237 208T277 192H500Z"/>
+ </font>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="MyDecFont" fill="#00f" stroke="none">
+ <g id="AnimationTarget">
+ <text x="20" y="80" font-size="40">Sample 123</text>
+ <text x="20" y="155" font-size="60" fill="#00f">Sample 123</text>
+ <text x="20" y="250">Sample 123</text>
+ <animate attributeName="font-size" attributeType="CSS" begin="0s" dur="6s" fill="freeze" from="40" to="80"/>
+ <animate attributeName="fill" attributeType="CSS" begin="0s" dur="6s" fill="freeze" from="#00f" to="#070"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-04-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-04-t-isvalid.html
new file mode 100644
index 0000000000..74a11744ef
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-04-t-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-04-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-04-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="36">
+ <text x="48" y="48">Test a motion path</text>
+ <text x="48" y="95">'from'/'to' attribute.</text>
+ <path d="M90,258 L390,180" fill="none" stroke="black" stroke-width="6"/>
+ <rect x="60" y="198" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6"/>
+ <text x="90" y="300" text-anchor="middle">0 sec.</text>
+ <rect x="360" y="120" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6"/>
+ <text x="390" y="230" text-anchor="middle">3+ sec.</text>
+ <path d="M-30,0 L0,-60 L30,0 z" fill="blue" stroke="green" stroke-width="6">
+ <animateMotion from="90,258" to="390,180" begin="0s" dur="3s" fill="freeze"/>
+ </path>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-05-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-05-t-isvalid.html
new file mode 100644
index 0000000000..424d9cdff8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-05-t-isvalid.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-05-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-05-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="36">
+ <text x="48" y="48">Test a motion path</text>
+ <text x="48" y="95">'values' attribute.</text>
+ <path d="M90,258 L240,180 L390,180" fill="none" stroke="black" stroke-width="6"/>
+ <rect x="60" y="198" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6"/>
+ <text x="90" y="300" text-anchor="middle">0 sec.</text>
+ <rect x="210" y="120" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6"/>
+ <text x="240" y="222" text-anchor="middle">3+</text>
+ <rect x="360" y="120" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6"/>
+ <text x="390" y="222" text-anchor="middle">6+</text>
+ <path d="M-30,0 L0,-60 L30,0 z" fill="blue" stroke="green" stroke-width="6">
+ <animateMotion values="90,258;240,180;390,180" begin="0s" dur="6s" calcMode="linear" fill="freeze"/>
+ </path>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-06-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-06-t-isvalid.html
new file mode 100644
index 0000000000..1b6c7becd7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-06-t-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-06-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-06-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="36">
+ <text x="48" y="48">Test a motion path</text>
+ <text x="48" y="95">'path' attribute.</text>
+ <path d="M90,258 C90,258 216,120 390,198" fill="none" stroke="black" stroke-width="6"/>
+ <rect x="60" y="198" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6"/>
+ <text x="90" y="300" text-anchor="middle">0 sec.</text>
+ <rect x="360" y="138" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6"/>
+ <text x="390" y="240" text-anchor="middle">6+ sec.</text>
+ <path d="M-30,0 L0,-60 L30,0 z" fill="blue" stroke="green" stroke-width="6">
+ <animateMotion path="M90,258 C90,258 216,120 390,198" begin="0s" dur="6s" calcMode="linear" fill="freeze"/>
+ </path>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-07-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-07-t-isvalid.html
new file mode 100644
index 0000000000..df30825579
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-07-t-isvalid.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-07-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-07-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="36">
+ <text x="48" y="48">Test a motion path</text>
+ <text x="48" y="95">'mpath' element.</text>
+ <path id="mpathRef" d="M90,258 C90,258 216,120 390,198" fill="none" stroke="black" stroke-width="6"/>
+ <rect x="60" y="198" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6"/>
+ <text x="90" y="300" text-anchor="middle">0 sec.</text>
+ <rect x="360" y="138" width="60" height="60" fill="#FFCCCC" stroke="black" stroke-width="6"/>
+ <text x="390" y="240" text-anchor="middle">6+ sec.</text>
+ <path d="M-30,0 L0,-60 L30,0 z" fill="blue" stroke="green" stroke-width="6">
+ <animateMotion begin="0s" dur="6s" calcMode="linear" fill="freeze">
+ <mpath xlink:href="#mpathRef"/>
+ </animateMotion>
+ </path>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-08-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-08-t-isvalid.html
new file mode 100644
index 0000000000..7e2891dc8e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-08-t-isvalid.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-08-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-08-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-08-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="14" text-anchor="middle" x="225" y="25">Test rotate='auto' and rotate='auto-reverse'</text>
+ <g font-size="12" text-anchor="middle">
+ <path d="M25,225 C25,175 125,150 175,200" fill="none" stroke="black" stroke-width="2"/>
+ <rect x="10" y="195" width="30" height="30" fill="#FFCCCC" stroke="black" stroke-width="4"/>
+ <text x="25" y="240">0 sec.</text>
+ <rect x="160" y="170" width="30" height="30" fill="#FFCCCC" stroke="black" stroke-width="4"/>
+ <text x="175" y="215">6+ sec.</text>
+ <path d="M-15,0 L0,-30 L15,0 z" fill="blue" stroke="green" stroke-width="2">
+ <animateMotion path="M25,225 C25,175 125,150 175,200" rotate="auto" begin="0s" dur="6s" calcMode="linear" fill="freeze"/>
+ </path>
+ <text x="100" y="260" stroke="none" font-size="14">rotate='auto'</text>
+ <path d="M275,225 C275,175 375,150 425,200" fill="none" stroke="black" stroke-width="2"/>
+ <rect x="260" y="195" width="30" height="30" fill="#FFCCCC" stroke="black" stroke-width="4"/>
+ <text x="275" y="240">0 sec.</text>
+ <rect x="410" y="170" width="30" height="30" fill="#FFCCCC" stroke="black" stroke-width="4"/>
+ <text x="425" y="215">6+ sec.</text>
+ <path d="M-15,0 L0,-30 L15,0 z" fill="blue" stroke="green" stroke-width="2">
+ <animateMotion path="M275,225 C275,175 375,150 425,200" rotate="auto-reverse" begin="0s" dur="6s" calcMode="linear" fill="freeze"/>
+ </path>
+ <text x="350" y="260" stroke="none" font-size="14">rotate='auto-reverse'</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-09-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-09-t-isvalid.html
new file mode 100644
index 0000000000..fcdb741ff6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-09-t-isvalid.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-09-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-09-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-09-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g xml:space="preserve" font-family="Arial" font-size="30">
+ <g transform="translate(20,50)">
+ <text x="0" y="203">0-2 sec.</text>
+ <text x="0" y="170">2-4 sec. </text>
+ <text x="0" y="114">4-6 sec. </text>
+ <text x="3" y="3">6+ sec. </text>
+ <g stroke="#800" stroke-width="4">
+ <line x1="120" y1="200" x2="170" y2="200"/>
+ <line x1="120" y1="167" x2="170" y2="167"/>
+ <line x1="120" y1="111" x2="170" y2="111"/>
+ <line x1="120" y1="0" x2="170" y2="0"/>
+ </g>
+ <rect x="140" y="-10" width="60" height="210" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="height" calcMode="discrete" values="210;177;121;10" begin="0s" dur="8s" fill="freeze"/>
+ </rect>
+ </g>
+
+ <g transform="translate(250,50)">
+ <text x="0" y="203">0-2 sec.</text>
+ <text x="0" y="170">2-4 sec. </text>
+ <text x="0" y="114">4-6 sec. </text>
+ <text x="3" y="3">6+ sec. </text>
+ <g stroke="#800" stroke-width="4">
+ <line x1="120" y1="200" x2="170" y2="200"/>
+ <line x1="120" y1="167" x2="170" y2="167"/>
+ <line x1="120" y1="111" x2="170" y2="111"/>
+ <line x1="120" y1="0" x2="170" y2="0"/>
+ </g>
+ <rect x="140" y="-10" width="60" height="10" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animateMotion calcMode="discrete" values="0,200; 0,167; 0,111; 0,0" begin="0s" dur="8s" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-10-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-10-t-isvalid.html
new file mode 100644
index 0000000000..ebcbcb510a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-10-t-isvalid.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-10-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-10-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-10-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial" font-size="30">
+ <g transform="translate(20,50)">
+ <text x="0" y="203">at 0 sec.</text>
+ <text x="0" y="170">at 3 sec. </text>
+ <text x="0" y="114">at 6 sec. </text>
+ <text x="3" y="3">9+ sec. </text>
+ <g stroke="#800" stroke-width="4">
+ <line x1="120" y1="200" x2="170" y2="200"/>
+ <line x1="120" y1="167" x2="170" y2="167"/>
+ <line x1="120" y1="111" x2="170" y2="111"/>
+ <line x1="120" y1="0" x2="170" y2="0"/>
+ </g>
+ <rect x="140" y="-10" width="60" height="210" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <!-- Should use default of calcMode="linear" -->
+ <animate attributeName="height" values="210;177;121;10" begin="0s" dur="9s" fill="freeze"/>
+ </rect>
+ </g>
+
+ <g transform="translate(250,50)">
+ <text x="0" y="203">at 0 sec.</text>
+ <text x="0" y="170">at 3 sec. </text>
+ <text x="0" y="114">at 6 sec. </text>
+ <text x="3" y="3">9+ sec. </text>
+ <g stroke="#800" stroke-width="4">
+ <line x1="120" y1="200" x2="170" y2="200"/>
+ <line x1="120" y1="167" x2="170" y2="167"/>
+ <line x1="120" y1="111" x2="170" y2="111"/>
+ <line x1="120" y1="0" x2="170" y2="0"/>
+ </g>
+ <rect x="140" y="-10" width="60" height="10" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animateMotion calcMode="linear" values="0,200; 0,167; 0,111; 0,0" begin="0s" dur="9s" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-11-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-11-t-isvalid.html
new file mode 100644
index 0000000000..e357d45e19
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-11-t-isvalid.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-11-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-11-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-11-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial" font-size="30">
+ <g transform="translate(20,50)">
+ <text x="0" y="203">at 0 sec.</text>
+ <text x="0" y="136.33">at 3 sec. </text>
+ <text x="0" y="69.66">at 6 sec. </text>
+ <text x="3" y="3">9+ sec. </text>
+ <g stroke="#800" stroke-width="4">
+ <line x1="120" y1="200" x2="170" y2="200"/>
+ <line x1="120" y1="133.33" x2="170" y2="133.33"/>
+ <line x1="120" y1="66.66" x2="170" y2="66.66"/>
+ <line x1="120" y1="0" x2="170" y2="0"/>
+ </g>
+ <rect x="140" y="-10" width="60" height="210" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="height" calcMode="paced" values="210;177;121;10" begin="0s" dur="9s" fill="freeze"/>
+ </rect>
+ </g>
+
+ <g transform="translate(250,50)">
+ <text x="0" y="203">at 0 sec.</text>
+ <text x="0" y="136.33">at 3 sec. </text>
+ <text x="0" y="69.66">at 6 sec. </text>
+ <text x="3" y="3">9+ sec. </text>
+ <g stroke="#800" stroke-width="4">
+ <line x1="120" y1="200" x2="170" y2="200"/>
+ <line x1="120" y1="133.33" x2="170" y2="133.33"/>
+ <line x1="120" y1="66.66" x2="170" y2="66.66"/>
+ <line x1="120" y1="0" x2="170" y2="0"/>
+ </g>
+ <rect x="140" y="-10" width="60" height="10" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animateMotion calcMode="paced" values="0,200; 0,167; 0,111; 0,0" begin="0s" dur="9s" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-12-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-12-t-isvalid.html
new file mode 100644
index 0000000000..f5f459a761
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-12-t-isvalid.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-12-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-12-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-12-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial" font-size="30">
+ <g transform="translate(20,50)">
+ <text x="0" y="203">at 0 sec.</text>
+ <text x="0" y="170">at 3 sec. </text>
+ <text x="0" y="114">at 6 sec. </text>
+ <text x="3" y="3">9+ sec. </text>
+ <g stroke="#800" stroke-width="4">
+ <line x1="120" y1="200" x2="170" y2="200"/>
+ <line x1="120" y1="167" x2="170" y2="167"/>
+ <line x1="120" y1="111" x2="170" y2="111"/>
+ <line x1="120" y1="0" x2="170" y2="0"/>
+ </g>
+ <rect x="140" y="-10" width="60" height="210" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="height" calcMode="spline" keySplines="0,0,1,1;0,0,1,1;.75,0,0,.75" values="210;177;121;10" begin="0s" dur="9s" fill="freeze"/>
+ </rect>
+ </g>
+
+ <g transform="translate(250,50)">
+ <text x="0" y="203">at 0 sec.</text>
+ <text x="0" y="170">at 3 sec. </text>
+ <text x="0" y="114">at 6 sec. </text>
+ <text x="3" y="3">9+ sec. </text>
+ <g stroke="#800" stroke-width="4">
+ <line x1="120" y1="200" x2="170" y2="200"/>
+ <line x1="120" y1="167" x2="170" y2="167"/>
+ <line x1="120" y1="111" x2="170" y2="111"/>
+ <line x1="120" y1="0" x2="170" y2="0"/>
+ </g>
+ <rect x="140" y="-10" width="60" height="10" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animateMotion calcMode="spline" keySplines="0,0,1,1;0,0,1,1;.75,0,0,.75" values="0,200; 0,167; 0,111; 0,0" begin="0s" dur="9s" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-13-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-13-t-isvalid.html
new file mode 100644
index 0000000000..22891068bf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-13-t-isvalid.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-13-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-13-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-13-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="30">
+ <line x1="190" x2="190" y1="45" y2="300" stroke="#880000" stroke-width="4"/>
+ <line x1="460" x2="460" y1="45" y2="300" stroke="#880000" stroke-width="4"/>
+ <text x="156" y="32">0-2 sec.</text>
+ <text x="370" y="32">5+ sec.</text>
+ <g>
+ <rect x="160" y="60" width="30" height="30" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="width" from="30" to="300" begin="2s" dur="3s" fill="freeze"/>
+ </rect>
+ <text x="20" y="85">from to</text>
+ </g>
+ <g>
+ <rect x="160" y="100" width="30" height="30" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="width" from="30" by="270" begin="2s" dur="3s" fill="freeze"/>
+ </rect>
+ <text x="20" y="125">from by</text>
+ </g>
+ <g>
+ <rect x="160" y="140" width="30" height="30" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="width" by="270" begin="2s" dur="3s" fill="freeze"/>
+ </rect>
+ <text x="20" y="165">by</text>
+ </g>
+ <g>
+ <rect x="160" y="180" width="30" height="30" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="width" to="300" begin="2s" dur="3s" fill="freeze"/>
+ </rect>
+ <text x="20" y="205">to</text>
+ </g>
+ <g>
+ <rect x="160" y="220" width="30" height="30" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="width" values="30;300" begin="2s" dur="3s" fill="freeze"/>
+ </rect>
+ <text x="20" y="245">values</text>
+ </g>
+ <g>
+ <rect x="160" y="260" width="30" height="30" fill="#FFAA44" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="width" values="30;120;210;300" begin="2s" dur="3s" fill="freeze"/>
+ </rect>
+ <text x="20" y="285">values</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-14-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-14-t-isvalid.html
new file mode 100644
index 0000000000..da196799e3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-14-t-isvalid.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-14-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-14-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-14-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="40" x="3" y="45">calcMode="discrete"</text>
+ <text font-size="40" x="3" y="100">keyTimes="0;.2;.4;.6"</text>
+ <g xml:space="preserve" font-size="13.5" stroke-width="3">
+ <g transform="translate(150,140)">
+ <text font-size="36" x="-140" y="140">Time (s):</text>
+ <text font-size="36" x="290" y="140">0</text>
+ <line x1="300" y1="0" x2="300" y2="100" fill="none" stroke="#880000"/>
+ <text font-size="36" x="245" y="140">2</text>
+ <line x1="255" y1="0" x2="255" y2="100" fill="none" stroke="#880000"/>
+ <text font-size="36" x="170" y="140">4</text>
+ <line x1="180" y1="0" x2="180" y2="100" fill="none" stroke="#880000"/>
+ <text font-size="36" x="20" y="140">6</text>
+ <line x1="30" y1="0" x2="30" y2="100" fill="none" stroke="#880000"/>
+ <rect x="0" y="0" width="300" height="80" fill="#44AAFF" stroke="#880088" stroke-width="4">
+ <animate attributeName="width" calcMode="discrete" values="300;255;180;30" keyTimes="0;.2;.4;.6" begin="0s" dur="10s" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-15-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-15-t-isvalid.html
new file mode 100644
index 0000000000..047abbefa0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-15-t-isvalid.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-15-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-15-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-15-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="40" x="3" y="45">calcMode="paced"</text>
+ <text font-size="40" x="3" y="100">keyTimes="0;.25;.5;1"</text>
+ <g xml:space="preserve" font-size="13.5" stroke-width="3">
+ <g transform="translate(150,140)">
+ <text font-size="36" x="-140" y="140">Time (s):</text>
+ <text font-size="36" x="290" y="140">0</text>
+ <line x1="300" y1="0" x2="300" y2="100" fill="none" stroke="#880000"/>
+ <text font-size="36" x="230" y="140">1.5</text>
+ <line x1="255" y1="0" x2="255" y2="100" fill="none" stroke="#880000"/>
+ <text font-size="36" x="170" y="140">4</text>
+ <line x1="180" y1="0" x2="180" y2="100" fill="none" stroke="#880000"/>
+ <text font-size="36" x="20" y="140">9</text>
+ <line x1="30" y1="0" x2="30" y2="100" fill="none" stroke="#880000"/>
+ <rect x="0" y="0" width="300" height="80" fill="#44AAFF" stroke="#880088" stroke-width="4">
+ <animate attributeName="width" calcMode="paced" values="300;255;180;30" keyTimes="0;.25;.5;1" begin="0s" dur="9s" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-17-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-17-t-isvalid.html
new file mode 100644
index 0000000000..5148a5cfb6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-17-t-isvalid.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-17-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-17-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-17-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="40" x="3" y="45">calcMode="spline"</text>
+ <text font-size="40" x="3" y="100">keyTimes="0;.25;.5;1"</text>
+ <g xml:space="preserve" font-size="13.5" stroke-width="3">
+ <g transform="translate(150,140)">
+ <text font-size="36" x="-140" y="140">Time (s):</text>
+ <text font-size="36" x="290" y="140">0</text>
+ <line x1="300" y1="0" x2="300" y2="100" fill="none" stroke="#880000"/>
+ <text font-size="36" x="245" y="140">2</text>
+ <line x1="255" y1="0" x2="255" y2="100" fill="none" stroke="#880000"/>
+ <text font-size="36" x="170" y="140">4</text>
+ <line x1="180" y1="0" x2="180" y2="100" fill="none" stroke="#880000"/>
+ <text font-size="36" x="20" y="140">8</text>
+ <line x1="30" y1="0" x2="30" y2="100" fill="none" stroke="#880000"/>
+ <rect x="0" y="0" width="300" height="80" fill="#44AAFF" stroke="#880088" stroke-width="4">
+ <animate attributeName="width" calcMode="spline" values="300;255;180;30" keyTimes="0;.25;.5;1" keySplines="0,0,1,1;0,0,1,1;1,0,0,1" begin="0s" dur="8s" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-19-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-19-t-isvalid.html
new file mode 100644
index 0000000000..75f05ae329
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-19-t-isvalid.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-19-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-19-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-19-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="40" x="3" y="45">calcMode="linear"</text>
+ <text font-size="40" x="3" y="100">keyTimes="0;.5;.75;1"</text>
+ <g xml:space="preserve" font-size="13.5" stroke-width="3">
+ <g transform="translate(150,140)">
+ <text font-size="36" x="-140" y="140">Time (s):</text>
+ <text font-size="36" x="290" y="140">0</text>
+ <line x1="300" y1="0" x2="300" y2="100" fill="none" stroke="#880000"/>
+ <text font-size="36" x="245" y="140">4</text>
+ <line x1="255" y1="0" x2="255" y2="100" fill="none" stroke="#880000"/>
+ <text font-size="36" x="170" y="140">6</text>
+ <line x1="180" y1="0" x2="180" y2="100" fill="none" stroke="#880000"/>
+ <text font-size="36" x="20" y="140">8</text>
+ <line x1="30" y1="0" x2="30" y2="100" fill="none" stroke="#880000"/>
+ <rect x="0" y="0" width="300" height="80" fill="#44AAFF" stroke="#880088" stroke-width="4">
+ <animate attributeName="width" calcMode="linear" values="300;255;180;30" keyTimes="0;.5;.75;1" begin="0s" dur="8s" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-20-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-20-t-isvalid.html
new file mode 100644
index 0000000000..950c3568c6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-20-t-isvalid.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-20-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-20-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-20-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect id="pink" x="20" y="20" width="200" height="200" fill="#fff">
+ <animate id="fadein" attributeName="fill" attributeType="auto" from="#fff" to="blue" begin="indefinite" dur="3s" fill="freeze"/>
+ <animate id="fadeout" attributeName="fill" attributeType="auto" from="blue" to="#fff" begin="indefinite" dur="3s" fill="freeze"/>
+ </rect>
+ <!-- ok so this is testing dynamic compositing as well -->
+ <g id="buttons">
+ <a xlink:href="#fadein">
+ <rect x="320" y="0" width="160" height="180" fill="green"/>
+ <text fill="white" font-size="30" font-weight="bold" x="330" y="90">Fade in</text>
+ </a>
+ <a xlink:href="#fadeout">
+ <rect x="320" y="180" width="160" height="180" fill="maroon"/>
+ <text fill="white" font-size="30" font-weight="bold" x="330" y="280">Fade out</text>
+ </a>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-21-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-21-t-isvalid.html
new file mode 100644
index 0000000000..c4b1f5a5df
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-21-t-isvalid.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-21-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-21-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-21-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <circle stroke="white" stroke-width="30" fill="none" cx="100" cy="200" r="60">
+ <animate id="fadein" attributeName="stroke" attributeType="auto" from="white" to="#666" begin="indefinite" dur="3s" fill="freeze"/>
+ <animate id="fadeout" attributeName="stroke" attributeType="auto" from="#666" to="white" begin="indefinite" dur="3s" fill="freeze"/>
+ </circle>
+ <rect id="pink" x="20" y="20" width="180" height="180" fill="#fff">
+ <animate id="fadein2" attributeName="fill" attributeType="auto" from="#fff" to="blue" begin="fadein.begin" dur="3s" fill="freeze"/>
+ <animate id="fadeout2" attributeName="fill" attributeType="auto" from="blue" to="#fff" begin="fadeout.begin" dur="3s" fill="freeze"/>
+ </rect>
+ <circle stroke="white" stroke-width="20" fill="none" cx="200" cy="110" r="80">
+ <animate id="fadein3" attributeName="stroke" attributeType="auto" from="white" to="#666" begin="fadein.begin" dur="3s" fill="freeze"/>
+ <animate id="fadeout3" attributeName="stroke" attributeType="auto" from="#666" to="white" begin="fadeout.begin" dur="3s" fill="freeze"/>
+ </circle>
+ <!-- ok so this is testing dynamic compositing as well -->
+ <g id="buttons">
+ <a xlink:href="#fadein">
+ <rect x="320" y="0" width="160" height="180" fill="green"/>
+ <text fill="white" font-size="30" font-weight="bold" x="330" y="90">Fade in</text>
+ </a>
+ <a xlink:href="#fadeout">
+ <rect x="320" y="180" width="160" height="180" fill="maroon"/>
+ <text fill="white" font-size="30" font-weight="bold" x="330" y="280">Fade out</text>
+ </a>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-22-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-22-b-isvalid.html
new file mode 100644
index 0000000000..dfea322d40
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-22-b-isvalid.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-22-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-22-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-22-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Guide objects to show where the animation elements belong at which time -->
+ <g font-family="Verdana" font-size="12">
+ <text x="200" y="131">Yellow rect at time 0s</text>
+ <rect x="200" y="135" width="50" height="50" fill="none" stroke="black"/>
+ <text x="141.6666" y="102.6666">Yellow rect at time 3s</text>
+ <rect x="141.6666" y="106.6666" width="166.6666" height="111.6666" fill="none" stroke="rgb(0,0,255)"/>
+ <text x="25" y="46">Yellow rect at time 9s</text>
+ <rect x="25" y="50" width="400" height="240" fill="none" stroke="rgb(0,0,255)"/>
+ </g>
+ <rect id="RectElement" x="200" y="135" width="50" height="50" fill="rgb(255,255,0)" opacity=".5">
+ <animate attributeName="x" attributeType="XML" begin="0s" dur="9s" fill="freeze" from="200" to="25"/>
+ <animate attributeName="y" attributeType="XML" begin="0s" dur="9s" fill="freeze" from="135" to="50"/>
+ <animate attributeName="width" attributeType="XML" begin="0s" dur="9s" fill="freeze" from="50" to="400"/>
+ <animate attributeName="height" attributeType="XML" begin="0s" dur="9s" fill="freeze" from="50" to="240"/>
+ </rect>
+ <!-- Set up a new user coordinate system so that the text string's
+ origin is at (0,0), allowing rotation and scale relative to
+ the new origin
+ -->
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-23-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-23-t-isvalid.html
new file mode 100644
index 0000000000..a39fe76890
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-23-t-isvalid.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-23-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-23-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-23-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Guide objects to show where the animation elements belong at which time -->
+ <g font-size="12">
+ <text x="15" y="55">Color at 3s</text>
+ <rect x="15" y="60" width="30" height="30"/>
+ <circle cx="30" cy="75" r="10" fill="rgb(0,0,255)"/>
+ <text x="15" y="145">Color at 6s</text>
+ <rect x="15" y="150" width="30" height="30"/>
+ <circle cx="30" cy="165" r="10" fill="rgb(0,127,127)"/>
+ <text x="15" y="235">Color at 9s</text>
+ <rect x="15" y="240" width="30" height="30"/>
+ <circle cx="30" cy="255" r="10" fill="rgb(0,255,0)"/>
+ </g>
+
+ <g>
+ <rect x="150" y="50" width="240" height="240" stroke="black" fill="black"/>
+ <circle cx="270" cy="170" r="110" visibility="hidden">
+ <set attributeName="visibility" attributeType="CSS" to="visible" begin="3s" dur="6s" fill="freeze"/>
+ <animateColor attributeName="fill" attributeType="CSS" from="rgb(0,0,255)" to="rgb(0,255,0)" begin="3s" dur="6s" fill="freeze"/>
+ </circle>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-24-t-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-24-t-novalid.html
new file mode 100644
index 0000000000..922125adb9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-24-t-novalid.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-24-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-24-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-24-t.svg,v $</title>
+ <defs>
+ <font id="MyFont" horiz-adv-x="416">
+ <font-face font-family="MyFont" units-per-em="1000" panose-1="2 0 0 6 3 0 0 2 0 4" ascent="700" descent="-127" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="233"/>
+ <glyph unicode=" " glyph-name="space" horiz-adv-x="233"/>
+ <glyph unicode="I" glyph-name="I" horiz-adv-x="330" d="M30 700V550H90V150H30V0H300V150H240V550H300V700H30Z"/>
+ <glyph unicode="t" glyph-name="t" horiz-adv-x="417" d="M5 550V410H137V0H280V410H412V550H5Z"/>
+ <glyph unicode="s" glyph-name="s" horiz-adv-x="468" d="M34 550V410V218H291V120H34V0H434V338H177V430H434V550H34Z"/>
+ <glyph unicode="&apos;" glyph-name="quotesingle" horiz-adv-x="198" d="M35 700L73 483H125L163 700H35Z"/>
+ <glyph unicode="a" glyph-name="a" horiz-adv-x="435" d="M71 550L3 0H143L154 119H282L293 0H433L365 550H71ZM168 259L182 410H254L268 259H168Z"/>
+ <glyph unicode="l" glyph-name="l" horiz-adv-x="435" d="M37 0H425V130H180V550H37V410V0Z"/>
+ <glyph unicode="i" glyph-name="i" horiz-adv-x="217" d="M37 550V410V0H180V550H37Z"/>
+ <glyph unicode="v" glyph-name="v" horiz-adv-x="430" d="M73 0H357L430 550H282L235 140H195L148 550H0L19 410L73 0Z"/>
+ <glyph unicode="e" glyph-name="e" horiz-adv-x="442" d="M37 550V410V0H419V130H180V210H299V340H180V420H419V550H37Z"/>
+ <glyph unicode="!" glyph-name="exclam" horiz-adv-x="237" d="M46 145V0H191V145H46ZM58 220H179L194 700H43L58 220Z"/>
+ </font>
+ </defs>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <font id="MyFont" horiz-adv-x="416">
+ <font-face font-family="MyFont" units-per-em="1000" panose-1="2 0 0 6 3 0 0 2 0 4" ascent="700" descent="-127" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="233"/>
+ <glyph unicode=" " glyph-name="space" horiz-adv-x="233"/>
+ <glyph unicode="I" glyph-name="I" horiz-adv-x="330" d="M30 700V550H90V150H30V0H300V150H240V550H300V700H30Z"/>
+ <glyph unicode="t" glyph-name="t" horiz-adv-x="417" d="M5 550V410H137V0H280V410H412V550H5Z"/>
+ <glyph unicode="s" glyph-name="s" horiz-adv-x="468" d="M34 550V410V218H291V120H34V0H434V338H177V430H434V550H34Z"/>
+ <glyph unicode="&apos;" glyph-name="quotesingle" horiz-adv-x="198" d="M35 700L73 483H125L163 700H35Z"/>
+ <glyph unicode="a" glyph-name="a" horiz-adv-x="435" d="M71 550L3 0H143L154 119H282L293 0H433L365 550H71ZM168 259L182 410H254L268 259H168Z"/>
+ <glyph unicode="l" glyph-name="l" horiz-adv-x="435" d="M37 0H425V130H180V550H37V410V0Z"/>
+ <glyph unicode="i" glyph-name="i" horiz-adv-x="217" d="M37 550V410V0H180V550H37Z"/>
+ <glyph unicode="v" glyph-name="v" horiz-adv-x="430" d="M73 0H357L430 550H282L235 140H195L148 550H0L19 410L73 0Z"/>
+ <glyph unicode="e" glyph-name="e" horiz-adv-x="442" d="M37 550V410V0H419V130H180V210H299V340H180V420H419V550H37Z"/>
+ <glyph unicode="!" glyph-name="exclam" horiz-adv-x="237" d="M46 145V0H191V145H46ZM58 220H179L194 700H43L58 220Z"/>
+ </font>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="20">
+ <text x="70" y="110">Text from 0s to 3s</text>
+ <text x="100" y="185">Text at 6s</text>
+ <text x="100" y="220">Text at 9s</text>
+ </g>
+ <!-- Guide objects to show where the animation elements belong at which time -->
+ <g font-family="MyFont" stroke="none" fill="#bee">
+ <text transform="translate(50,90) rotate(-30)" font-size="20">It's alive!</text>
+ <text transform="translate(75,180) rotate(-15)" font-size="40">It's alive!</text>
+ <text x="100" y="270" font-size="60">It's alive!</text>
+ </g>
+ <!-- Set up a new user coordinate system so that the text string's
+ origin is at (0,0), allowing rotation and scale relative to
+ the new origin
+ -->
+ <g transform="translate(50,90)">
+ <!-- The following illustrates the use of the 'animateMotion',
+ and 'animateTransform' elements. At 3 seconds, the text:
+ * continuously moves diagonally across the viewport
+ * rotates from -30 to zero degrees
+ * scales by a factor of three.
+ -->
+ <text id="TextElement" x="0" y="0" font-family="MyFont" font-size="20" fill="#36e" transform="rotate(-30)">
+ It's alive!
+ <animateMotion path="M 0 0 L 50 180" begin="3s" dur="6s" fill="freeze"/>
+ <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="-30" to="0" begin="3s" dur="6s" fill="freeze"/>
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" from="1" to="3" additive="sum" begin="3s" dur="6s" fill="freeze"/>
+ </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-25-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-25-t-isvalid.html
new file mode 100644
index 0000000000..ffa132331d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-25-t-isvalid.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-25-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-25-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-25-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-family="Arial" font-size="14" x="30" y="40">Test animation options for specifying the target attribute/property.</text>
+ <g xml:space="preserve" font-family="Arial" font-size="14" stroke-width="3" transform="translate(0,50)">
+ <text x="20" y="164">0-3 sec. </text>
+ <line x1="80" y1="160" x2="200" y2="160" fill="none" stroke="green"/>
+ <text x="20" y="124">at 6 sec. </text>
+ <line x1="80" y1="120" x2="200" y2="120" fill="none" stroke="green"/>
+ <rect id="rect1" x="100" y="80" width="100" height="80" fill="#FFFF00" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="height" from="80" to="40" begin="3s" dur="3s" fill="freeze"/>
+ </rect>
+ <text x="240" y="164">0-6 sec. </text>
+ <line x1="305" y1="160" x2="425" y2="160" fill="none" stroke="green"/>
+ <text x="240" y="124">at 9 sec. </text>
+ <line x1="305" y1="120" x2="425" y2="120" fill="none" stroke="green"/>
+ <rect id="rect2" x="325" y="80" width="100" height="80" fill="#FFFF00" stroke="#FF00FF" stroke-width="4">
+ <animate attributeName="height" attributeType="XML" from="80" to="40" begin="6s" dur="3s" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-26-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-26-t-isvalid.html
new file mode 100644
index 0000000000..b5474f8912
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-26-t-isvalid.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-26-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-26-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-26-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="30">
+ <circle cx="120" cy="140" r="70" fill="none" stroke="#36e" stroke-width="1">
+ <animate attributeName="stroke-width" from="1" to="60" begin="1s" dur="4s" fill="freeze"/>
+ </circle>
+ <circle cx="120" cy="140" r="40" fill="none" stroke="black" stroke-width="1"/>
+ <circle cx="120" cy="140" r="70" fill="none" stroke="black" stroke-width="1"/>
+ <circle cx="120" cy="140" r="100" fill="none" stroke="black" stroke-width="1"/>
+ <text x="70" y="280">anim. 1</text>
+ </g>
+ <g font-size="30">
+ <circle cx="360" cy="140" r="70" fill="none" stroke="#e3a" stroke-width="1">
+ <animate attributeName="stroke-width" attributeType="CSS" from="1" to="60" begin="4s" dur="3s" fill="freeze"/>
+ </circle>
+ <circle cx="360" cy="140" r="40" fill="none" stroke="black" stroke-width="1"/>
+ <circle cx="360" cy="140" r="70" fill="none" stroke="black" stroke-width="1"/>
+ <circle cx="360" cy="140" r="100" fill="none" stroke="black" stroke-width="1"/>
+ <text x="310" y="280">anim. 2</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-27-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-27-t-isvalid.html
new file mode 100644
index 0000000000..2cd182740d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-27-t-isvalid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-27-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-27-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-27-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-family="Arial" font-size="16" text-anchor="middle" x="225" y="40">Test animation options for specifying the target element.</text>
+ <g xml:space="preserve" font-family="Arial" font-size="14" text-anchor="end" stroke-width="3">
+ <text x="80" y="244">0 to 3 sec. </text>
+ <line x1="80" y1="240" x2="200" y2="240" fill="none" stroke="green"/>
+ <text x="80" y="124">at 6 sec. </text>
+ <line x1="80" y1="120" x2="200" y2="120" fill="none" stroke="green"/>
+ <rect id="rect1" x="100" y="80" width="100" height="160" fill="blue" stroke="#36e" stroke-width="4"/>
+ <animate xlink:href="#rect1" attributeName="height" attributeType="XML" from="160" to="40" begin="3s" dur="3s" fill="freeze"/>
+ <text x="305" y="244">0 to 6 sec. </text>
+ <line x1="305" y1="240" x2="425" y2="240" fill="none" stroke="green"/>
+ <text x="305" y="124">at 9 sec. </text>
+ <line x1="305" y1="120" x2="425" y2="120" fill="none" stroke="green"/>
+ <rect id="rect2" x="325" y="80" width="100" height="160" fill="blue" stroke="#36e" stroke-width="4">
+ <animate attributeName="height" attributeType="XML" from="160" to="40" begin="6s" dur="3s" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-28-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-28-t-isvalid.html
new file mode 100644
index 0000000000..0dd94c7d19
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-28-t-isvalid.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-28-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-28-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-28-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g stroke="#F1E900" fill="#F1E900" stroke-width="5">
+ <circle cx="240" cy="180" r="150"/>
+ <!--circle cx="240" cy="180" r="150" stroke-opacity=".5"/-->
+ <g id="eyes" stroke="#000077">
+ <path d="M260 131c0,-15 12,-28 28,-28 15,0 27,13 27,28 0,15 -12,28 -27,28 -16,0 -28,-13 -28,-28z"/>
+ <path d="M165 131c0,-15 12,-28 28,-28 15,0 27,13 27,28 0,15 -12,28 -27,28 -16,0 -28,-13 -28,-28z"/>
+ </g>
+ <path d="M151 227c46,52 138,52 184,0"/>
+ <animate attributeName="stroke" attributeType="CSS" begin="0s" dur="4s" fill="freeze" from="#F1E900" to="#000000"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-29-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-29-b-isvalid.html
new file mode 100644
index 0000000000..761f538b25
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-29-b-isvalid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-29-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-29-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-29-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <circle stroke="#666" stroke-width="30" fill="none" cx="100" cy="200" r="60"/>
+ <rect id="pink" x="20" y="20" width="180" height="180" fill="#080" fill-opacity="0">
+ <animate id="fadein" attributeName="fill-opacity" attributeType="auto" from="0" to="1" begin="indefinite" dur="3s" fill="freeze"/>
+ <animate id="fadeout" attributeName="fill-opacity" attributeType="auto" from="1" to="0" begin="indefinite" dur="3s" fill="freeze"/>
+ </rect>
+ <circle stroke="#666" stroke-width="20" fill="none" cx="200" cy="110" r="80"/>
+ <g id="buttons">
+ <a xlink:href="#fadein">
+ <rect x="320" y="0" width="160" height="180" fill="green"/>
+ <text fill="white" font-size="30" font-weight="bold" x="330" y="90">Fade in</text>
+ </a>
+ <a xlink:href="#fadeout">
+ <rect x="320" y="180" width="160" height="180" fill="maroon"/>
+ <text fill="white" font-size="30" font-weight="bold" x="330" y="280">Fade out</text>
+ </a>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-30-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-30-t-isvalid.html
new file mode 100644
index 0000000000..554946432f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-30-t-isvalid.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-30-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-30-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-30-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform=" translate(20 0) scale(1.3 1.3)">
+ <!-- SILHOUETTES-->
+ <path d="M210 40 C210 40 210 100 170 190" fill="none" stroke="#b4b4b4"/>
+ <path d="M 171 188 l 10 -10 l -10 -4 z" fill="#b4b4b4" stroke="none"/>
+ <polyline fill="none" stroke="#b4b4b4" stroke-width="2" points="200,20 200,40 220,40 220,60"/>
+ <polyline transform="rotate(15)" fill="none" stroke="#b4b4b4" stroke-width="9" points="200,120 200,140 220,140 220,160"/>
+
+ <line x1="40" y1="50" x2="20" y2="10" stroke="#b4b4b4" stroke-width="3"/>
+ <line x1="160" y1="50" x2="80" y2="10" stroke="#b4b4b4" stroke-width="3"/>
+ <line x1="30" y1="30" x2="120" y2="30" stroke="#b4b4b4"/>
+ <path d="M 120 30 l -10 3 l 0 -6 z" fill="#b4b4b4" stroke="none"/>
+
+ <line x1="70" y1="70" x2="145" y2="70" stroke="#b4b4b4"/>
+ <rect x="10" y="60" width="60" height="20" fill="#b4b4b4" stroke="#b4b4b4" stroke-width="2"/>
+ <rect x="145" y="60" width="30" height="40" fill="#b4b4b4" stroke="#b4b4b4" stroke-width="2"/>
+ <path d="M 145 70 l -10 3 l 0 -6 z" fill="#b4b4b4" stroke="none"/>
+
+ <circle cx="30" cy="100" r="10" fill="#b4b4b4" stroke="#b4b4b4"/>
+ <circle cx="100" cy="195" r="15" fill="#b4b4b4" stroke="#b4b4b4"/>
+ <line x1="37" y1="107" x2="89" y2="184" stroke="#b4b4b4"/>
+ <path d="M 90 185 l -3 -12 l -6 5 z" fill="#b4b4b4" stroke="none"/>
+
+ <rect x="300" y="10" width="20" height="20" fill="#b4b4b4" stroke="#b4b4b4" stroke-width="2"/>
+ <rect x="300" y="170" width="20" height="40" fill="#b4b4b4" stroke="#b4b4b4" stroke-width="2"/>
+ <line x1="310" y1="30" x2="310" y2="170" stroke="#b4b4b4"/>
+ <path d="M 310 170 l -3 -10 l 6 0 z" fill="#b4b4b4" stroke="none"/>
+
+ <rect x="230" y="7.5" width="40" height="7.5" fill="#b4b4b4" stroke="none"/>
+ <rect x="230" y="170" width="40" height="30" fill="#b4b4b4" stroke="none"/>
+ <line x1="250" y1="10" x2="250" y2="170" stroke="#b4b4b4"/>
+ <path d="M 250 170 l -3 -10 l 6 0 z" fill="#b4b4b4" stroke="none"/>
+ <!-- END OF SILHOUETTES-->
+
+ <!-- DEFS-->
+ <defs>
+ <line id="lineID" x1="30" y1="50" x2="10" y2="10" stroke="rgb(16, 93, 140)" stroke-width="3">
+ <animate attributeName="x1" from="30" to="90" begin="0" dur="3" fill="freeze"/>
+ </line>
+ </defs>
+
+ <defs>
+ <rect id="rectID" x="10" y="60" width="60" height="20" fill="blue" stroke="black" stroke-width="2">
+ <animateColor attributeName="fill" from="white" to="rgb(16, 93, 140)" begin="0" dur="3" fill="freeze"/>
+ <animate attributeName="height" from="20" to="40" begin="0" dur="3" fill="freeze"/>
+ </rect>
+ </defs>
+
+ <defs>
+ <circle id="circleID" cx="20" cy="100" r="10" fill="rgb(16, 93, 140)" stroke="black">
+ <animate attributeName="cy" from="100" to="130" begin="0" dur="3" fill="freeze"/>
+ <animateTransform attributeName="transform" type="scale" from="1" to="1.5" additive="sum" begin="0" dur="3" fill="freeze"/>
+ </circle>
+ </defs>
+
+ <defs>
+ <polyline id="polylineID" fill="none" stroke="rgb(16, 93, 140)" stroke-width="2" points="200,20 200,40 220,40 220,60">
+ <animateMotion path="M 0 0 l 0 100" begin="0" dur="3" fill="freeze"/>
+ <animate attributeName="stroke-width" from="2" to="9" begin="0" dur="3" fill="freeze"/>
+ </polyline>
+ </defs>
+
+ <defs>
+ <polygon id="polygonID" fill="green" stroke="black" points="240,20 240,40 260,40 260,20" stroke-width="2">
+ <animate attributeName="fill" from="white" to="rgb(16, 93, 140)" begin="0" dur="3" fill="freeze"/>
+ </polygon>
+ </defs>
+
+ <defs>
+ <image id="imageID" x="230" y="20" width="40" height="80" xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEASABIAAD/4RX+RXhpZgAASUkqAAgAAAAJAA8BAgAGAAAAegAAABABAgAXAAAAgAAAABIBAwABAAAAAQAAABoBBQABAAAAoAAAABsBBQABAAAAqAAAACgBAwABAAAAAgAAADIBAgAUAAAAsAAAABMCAwABAAAAAQAAAGmHBAABAAAAxAAAAGYFAABDYW5vbgBDYW5vbiBESUdJVEFMIElYVVMgMzAwAAAAAAAAAAAAALQAAAABAAAAtAAAAAEAAAAyMDAyOjAxOjE1IDA0OjQyOjU4ABsAmoIFAAEAAABWAwAAnYIFAAEAAABeAwAAAJAHAAQAAAAwMjEwA5ACABQAAAAOAgAABJACABQAAAAiAgAAAZEHAAQAAAABAgMAApEFAAEAAAA+AwAAAZIKAAEAAABGAwAAApIFAAEAAABOAwAABJIKAAEAAABmAwAABZIFAAEAAABuAwAABpIFAAEAAAB2AwAAB5IDAAEAAAAFAAAACZIDAAEAAAAAAAAACpIFAAEAAAB+AwAAfJIHAJoBAACGAwAAhpIHAAgBAAA2AgAAAKAHAAQAAAAwMTAwAaADAAEAAAABAAAAAqADAAEAAABABgAAA6ADAAEAAACwBAAABaAEAAEAAAAwBQAADqIFAAEAAAAgBQAAD6IFAAEAAAAoBQAAEKIDAAEAAAACAAAAF6IDAAEAAAACAAAAAKMHAAEAAAADAAAAAAAAADIwMDI6MDE6MTUgMDQ6NDI6NTgAMjAwMjowMToxNSAwNDo0Mjo1OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAPUAAAAgAAAA1QAAACAAAAABAAAAyAAAAGQAAAAKAAAAAAAAAAMAAACs3QIAAAABAP//AADoAwAAMAEAACAAAAAMAAEAAwAmAAAAHAQAAAIAAwAEAAAAaAQAAAMAAwAEAAAAcAQAAAQAAwAaAAAAeAQAAAAAAwAGAAAArAQAAAAAAwAEAAAAuAQAAAYAAgAgAAAAwAQAAAcAAgAYAAAA4AQAAAgABAABAAAAcVYQAAkAAgAgAAAA+AQAABAABAABAAAAAAAEAQ0AAwAEAAAAGAUAAAAAAABMAAIAAAADAAEAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAwABAAEwAAD/////BgKtACAAdADVAP//AAAAAAAAAAAAAP//AABABkAGAgAwAdMAngAAAAAAAAAAADQAAACPAD8B1QD1AAAAAAAAAAEAAwAAAAAAAAAHMAAAAAAAAAAA//8AANUA+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAElNRzpESUdJVEFMIElYVVMgMzAwIEpQRUcAAAAAAAAARmlybXdhcmUgVmVyc2lvbiAxLjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAPQA9AD0AABqGADOAAAAgE8SAJsAAAAEAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAEQAwABAAAAQAYAAAIQAwABAAAAsAQAAAAAAAAGAAMBAwABAAAABgAAABoBBQABAAAAtAUAABsBBQABAAAAvAUAACgBAwABAAAAAgAAAAECBAABAAAA9AUAAAICBAABAAAA7g8AAAAAAAC0AAAAAQAAALQAAAABAAAA//////////////////////////////////////////////////9//////////////9j/2wCEAAkGBggGBQkIBwgKCQkLDRYPDQwMDRwTFRAWIR0jIiEcIB8kKTQsJCcxJx4fLT0tMTY3Ojo6Iio/RD44QjM3OTYBCQkJDAoMFAwMFA8KCgoPGhoKChoaTxoaGhoaT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT//AABEIAHgAoAMBIQACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AOxApcV7J5goUngDNIVweaBC80oYjvRYLseszAY60FjI3c1HLZ3L5r6DjG46jFRFjTVmJtoA5qW3j3vuIBAokuVNgnzOxpKVA5xUNyY3TB4Fc0b3Oh2sZbqAxx0pMV2pnG9xNtJincA20hWmBMBT1XJrJuxaLf7pU4wKqScuayp3vqaTtbQABjmnRJunQdiRVtuz8kQlsa0kUUg+ZFP4VVeyUNuiJB9DXn060oabx6o7Z0oy12l3I5pMDawwcVTIrupbX6PY46u9uq3ExT0kZBxWrV9DNOw4zue9MZi3U0lFIbm2NwKTFUIMUmKYgxSYoAmAFP2+9Z3NLCbaTbzRcmw9baR13KpIp8ETLcpuUjnvWcqsbNXXMk9DSNOV07aX3NInFNPTmvLO8iljWVcN19az2hZZNmMkniuzC1LXg9t0c2Ihe0lv1JZrGWEZIBX1FV8V1U6iqK6+aOacHB2fyYYorQkMUmKYgxSYoEGKTFAyYCnYrM0FCM33VJ+go8mQfwN+VS5xWjaTDlk9kzSRBHGq+gpoO6ZB6mvLk7tvuz0ErK3YlkIQVAz0hkZamhlWRXIztNCdtVuDV9zRDBlBGCCKz7uyO8NCuQeoHatqFTkld/C9zOrDnj5rYYunSn7xVfqaf/Zn/TTn/drpli4p6Lm89jnjhn1dvIo3TRWt5HbGQNNICwUdQB3NGK3pVPaR5tvIyqQ5HbfzDFJitDMMUYoAlxSgVmaGlAAkCjvjNKeTXlzd5N92ehFWSXZCHmoyQjBj2qGUMkn3GojJQA0yUKGf7ozQBbtd6x4fgZ4qxmhMGGcCsjxP4ktvDGiS39yQSPljjzy79hTEcN8P7y51mbUNd1KQGSZxGrHgDP8ACPyFdtivRw1vZ6dHqcNe/P6rQcIXPRGP4UxsLJ5bEB8Z298etbc8b2ur9jLkklezt3DFGKsRLQKzLNFJULiPeofGduecfSiR/wB4qD6mvIb/ADPSQuPWqt+3lxKfVgKT2AqmSk3E9KALUFkW+aTgelWtqhhGgx647Cj+kBI/3Pl7UwOCMijqBICGXNcj448Ax+MfLkN/NbyQqRGmA0fPcj+tMCPwz8PRpWnWcN/ePKYG83yovljL+p7nH4V1sjQWcLSyFIo0GWduAB9apSaVk7J7onlTd+q2Z5n4x+MKWxa08PKJW+610w4B/wBkd/rWr4Es7pdE/tDUpHlvb7EsjyHJ2/wj8j+tb4WN537IyxDtC3dnSYpMV6Jwkt8sktm6wSLFMynY5G7afpXkl3Y61qVyY7zVrkxkncN52kewBx+lediJuKWrSfQ76EVJvRO3Ut6zo0+p3Ed19rc3MUYRC3QADjGOhrofCGvz6bpPk61cyTXab9ryMWLDjA3f56VxKVzqcbGA/wAWdZtrly8CGLcdvm2xAx9Q2f0rc0P4lDxPKbae2t4XjXzN0UrENj/ZZRj86p/CQtzoZryKCJpZpFSNeSxPArk7z4iTC/UaMtkYUJ3SXT43n0AH86Fq7feGxq6Z8VbOWdLfVbY20zEKrwSCaMn8OR+VXbn4laFp9xLDJJcSzLkuIoSQvtk4FNiSuZU3xhtCT9i0i7nHrJIkf9TWx4Y8YxeIIpC8Is5g3+pMofH48UPa4Lsak3iTTbGyuJ7m6RI7Ztsp67T9PxqDTPG2ia7c/ZdMvBNMRu27COO55FF9ANHV9Zs9D097u+lEcSD8WPoBXhPjf4g6j4puWt4w9tYqflhBwW929aa19AMTw9aW93rlnDqEghtjMDIzdMelfREQR4lMJUxkfKV6Y9q7sK1Z9zkxKd12HbKPLrsucyRxsuuXeq25SOUKu8gPESpOPftWMblrWcLJueI/dmHI/E/1rw61R1Ja9NkevSgoR069TQVy6EoVbjiqsy3ZiO+GFXGNoEpIP47axNSgEvPNEF2trI0udqtKRkAc8bKbaaVGkpntbK383JV2W4ZcH0+7zVXttdE2vvZly4tLq8h8q5t4pIyeVN45H/oFVR4cjwB/Zdpjtm6f/wCJpKVurHy+SLFto2m7leK3iEqHBKMTtYe9OGmafcM8hgjkdnIdjzn1pOTGoortoMIkbytNsiueCzkE/wDjpp8FobWbZb2llE57JMQf/QafN5sXL5IfPo8l4jR3SoiH5iEkLZYdCQRin2tzc6FeR3S+XIkYwX+6Rn17VUZW03RMoX12Zj+JdQufEOprcXOr26LH/q4lOQtZc2keYd0uqQMQOpQZquZ9mRZdyGDRx5+WvbfAPH3Rmuy0XXLzw/A/2cG7gJ4QPuVfy71pTquDvYmcFNWbNmx+JFoqyfb4pyxclfLjXCr2H3ucetaVt4+0W4OPOkiP/TRMfrXbHFQe90zklhpLazRyMNxZ21v5K288aHPApIb3TbW0S2iSZUUbQCCePQ15soy6pps7ozj0asgtLnTbIsIXmVDzsIOF+lWDqliwO6duTkEjpUtd0ylLzRQ1KPS9TMZkvZImiyFaNtp5x/hViyfT9Ph8q3uiUzn5jk/nQ2rWBb3Lkd/bYybhT7U4X9sDj7SnHvU6FXZS8i3NvPHHqAjMzM+4EAqSe1Q6fNp+kWotZNTEzK2Q0jYNVvsTe2uyJW16yQEC+gbHvTtN8S6PaXsk1xHFdyOVKlwMIADkA571SjZ9/IHJNb2H3niawu7xpYpEgjzxGqggD65rOnbTjayQx3yqkyjOV3EHGOxH5UW12Fdd9jMtvDmhxXsdw140qoM+U0eVc+/tTNV8PWd/J5kV4kSseALfvgZ6DNac2mxHKu5WPgm23AW+qOwZQDut2Xn04zxnFT2ng9LEiSLWbm3nGdzRWz4Ht2zS5vIfL5mja2chB+33kF1nAz5Tow/HFOm0mFoSI7xAwPyoyEjHfnH9PWpv6jS80dK8cJGdwz9aiFvHnOBXqSVzzouwvkJnBVc/SnizQ/8ALMflXPKKNVJgbCIjmMflUf2C3brEpH+7kVm4ItSGtpdqRzBHj12CoG0mzbAMMeO3FR7MrmFGkWfCmEfhUM3hyykk3FXBPo5oVJBzsrt4QsHck+aPo/8A9aoz4K08E/vJP0P9Kr2fYnnI5PBViQQJZF/Af4VA3gi1B4nbp/cWj2TH7Qhk8GQAACZuneMCq0vhDYMpMufdf/r1SovuJ1UVz4WlLcNH9cH/ABqQeDLhjlZIPx3CmsPJ9SXWS6Cnwhfx/ceL8JmH9KP+Ea1ZD8s34i5Yf0p/Vp+TBYiPmd35eOgIoAJHBH511M50O29C4U47mnhQykBiT6BqxZqhwJTG4N9OtSrtY98+/Ws5eRcfMCgJzj2yKjaMZ64x6VCZTQ5VULyfxNIGRgR5gb2NUri0HeUj5GUcdhjpQzIBhlyvrkD+tUtfInReY37RbO2zcPTOajaKFXz5hI+uaaUkDcWRzRIVzge2BVaXYCBzitY/kZSsvmQmNQc5qSEAg7cH29K0iRIcSGGGcj2yKcANuA/Hck5NWQSzzKR8u/B6hRinIwAA+bH8qybNUSD/AH2A9MnFPDYXA5H51k0aIRkDMA0av6e1SCFduCij6VnJtFJJiGCI9ET64puVU4wc+oBqE2y7JApTdtXeD64OKcx6DJB9s1RIi5ZuCAMdQc0hWRELABiO3JNVdE2ZD+9UBinPcBj/AIUiXEj5DAoMd8mrsmTdr5jHBA+VcH1AzUTKyj69+laRsQ7kZXPynDe2KdHDGP8Alnj8K0RmxzBAOij0HSnxIsikMiqPUNVCHS28RxvJJ+tMEaRP8oOPUtmsWaIsIePf2pySgdT9NwrFo1TFNxs5YoR2waYssLO3mJHk9e+aVn0uO662BhCWyhUevz8flTiM/wCrOf8AgVRfv99i15fdcbmVcMUZiB0UgioJL64QkfZZAPUNVxSe1iJSa6MbHfSsQVtnXuS3FTfanYjfGoxxgfMavl8yObyHl02kLGcn/pkaYJJBn5MA+vGaSXdjv2RCbmYEqVXPs1NeUsvJXPrWkUlsQ5N76EQjycb2+meKsIDj1x6CtIoiV+o/eQvfHuKA/wAvYfhVkjC0gHVQfXFRkXDYO9GI6DFYNmthn+mZz8uP9lQamjmuVA/csffgVDsylddCdLhgp3oE79aie5lxhFWQexJqeW3Urm8vkVvt8gfbIoA/3CDVhJVxlCg+oNJx82ClforoZNdXce0pFGy/3gc5pq307H96kZB7KDQoIHN9kSf2gVOFXr2KkU7+1sAB1z9Oark8xe0EXU4n6RsD9KSd4WQFhz24zTUXHzE5KXkQOY9uMNjsNtIEj2/xfTbjNap+RnZdxu1edq7f6frT0hdlyJG/4C55ql9xLEMjxcBps/gc09LknO/cfZkH+NNaAOUTyjLsY19AaUzJHncWPrmsWro1TsC38J6tge4NONxBMAFc59FJrFprbU1Ti9HoD2sLJhmbHo3SmJZwA5Bj46dqqM7kygiVJkiB+YnPbPFMa9jfcFwSPek43dxqSSsNa7mUbvLVB7tSHUHWLcYmHtkHNCh5sXP5EB1p0TAtHx6g4/lU0OqQyLlrd93q4z+tVZ9G0LnXVCyXdw5/cBMf7uaga+uQwLxIT6gYqlHzZLl5KwNcs7ZljOT6UmYznkp+JFaIhjMRqM+ac/72aljDsR+/z9GqkTYk8uRTnex+rVIszIMfOSfamB//2apR82S5eSsDXLO2ZYzk+lJmM//Y/+0O2lBob3Rvc2hvcCAzLjAAOEJJTQPtClJlc29sdXRpb24AAAAAEABIAAAAAQACAEgAAAABAAI4QklNBA0YRlggR2xvYmFsIExpZ2h0aW5nIEFuZ2xlAAAAAAQAAAAeOEJJTQQZEkZYIEdsb2JhbCBBbHRpdHVkZQAAAAAEAAAAHjhCSU0D8wtQcmludCBGbGFncwAAAAkAAAAAAAAAAAEAOEJJTQQKDkNvcHlyaWdodCBGbGFnAAAAAAEAADhCSU0nEBRKYXBhbmVzZSBQcmludCBGbGFncwAAAAAKAAEAAAAAAAAAAjhCSU0D9RdDb2xvciBIYWxmdG9uZSBTZXR0aW5ncwAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gXQ29sb3IgVHJhbnNmZXIgU2V0dGluZ3MAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAZHdWlkZXMAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4NVVJMIG92ZXJyaWRlcwAAAAQAAAAAOEJJTQQaBlNsaWNlcwAAAAB3AAAABgAAAAAAAAAAAAAAWgAAAHgAAAALAG8AcABlAHIAYQBfAGgAbwB1AHMAZQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAeAAAAFoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOEJJTQQREUlDQyBVbnRhZ2dlZCBGbGFnAAAAAQEAOEJJTQQUF0xheWVyIElEIEdlbmVyYXRvciBCYXNlAAAABAAAAAE4QklNBAwVTmV3IFdpbmRvd3MgVGh1bWJuYWlsAAALLwAAAAEAAABwAAAAVAAAAVAAAG5AAAALEwAYAAH/2P/gABBKRklGAAECAQBIAEgAAP/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAFQAcAMBIgACEQEDEQH/3QAEAAf/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/AOmAU2VPf9ETHJSDURr7GCG6BaJJ6NMeKJzdpjwTahTMkkn5pnTGunx0SvZHdKKcoMDw0lrhIjXRRrrdZu1gjkHlX2yK2DwaPyKFjQ/nQ/vDlVvvGpsDzDY9nQUT5FoPBa6FGXcSiW1uY4h2s8HxTPrex217S13gdFZiYkDY2wGwTvo2an1VMiQh5F1VjdsSeyBCUICAu7KuM1VMITQiEJoT7WMNqbapwlCNqf/Q6sBTZW95hgkjUplZxPovI5JA+5Xck+GJLVhHikAiZjWCxu8DbMnVWbX+09/xTmAQO5/ImcNCfAKpPIZ1daNiEBG66snlrWD4D8iC53igesXAGeQITbydBr5JlrkhcJDiNxaQ4D4K48V31gO9zHag9xPcKqzGfAdZpOjWjklHawVAMBkfx5KVnTwVQa4wXk+54A7dynODW1pc63Y1oLnvdDWtaBue97ifaxjfpK0NeFx3+Md/1it6fX03peHc/DySPtmXUN8ydteJtq3W11bvfc9zP0v80pffyfvfgFnsw7Ovi5VGZQ3KxiXY9hd6NhEb2NcWNu2/mtt272fyEWFHpODlMxG0WUfZKMcMpxhbHqvrYxodfbSwv9H1Ld/p1P8A0npfzv6RR631PovQMcX9UyjW5wmrHrAddZH+ipn/AMEs2VKwM8BEXLWtdGA4ZWaGl90kJQhYN1uVh05N1P2Z17fUFBO5zGO91LbXQz9N6Wx9vt9n82jwpQbAPdjqi//R6D6xX9Qx+n+r0p9NWRuaHeqN52nT9CyW/pGrnas3602YRZZ1U15DrRcLamBpDWtLPs3t/wAE/wDnLPalaMzJqpdl0323k7R7txpDnH9J6jj9Gpuz6KakZlVjab632jtkMaQyR+bcyT6Lv/An/mJZcspHSxFOPGIjWiXSwfrP1LG6Re/qbftnWatwoZWw7Lmy30f5oNbvb+k9T+bVKr/GcW2DG6p0v7K+0hm8Pe0N3e3dtsbY13P76Fdhm1hrc/IIJgu0a4T+axzam+z+V/4IqdJtN/2V1GW2qpz2G+xrHVbBP2d9T3U/ztm36DvoKMSOui4xHd62/qfT8PGORk5NdWPUIdYXAzHthjQdz3Pj2LGx/wDGNg02usdjUuxjGwjIAytv77qXsON7/wDRttVduIwmRZYSNTLav/edK2Mf03tNl++xtRa4MhrX+19x9Khrv0aQl4JMPF23/wCMD6tsZRkOdkuGRW6yqsVDeGjcLH2TZsb/ADbm/SVGz/Gf0h5Apw7yyRNll1LC3X6fpNdY93/FrPx8pt2TkUV1PaKNgNjmQHEn3Gt30XMYpWFja33C+6QC8MYWdtdjG+kXJcfgrg8Xrx1/o7Ayx+ZWGW1WXNM/mVAWW7o+g/Z9Gt300uk/WPpfV7jX019zrGNFjvUpfUdjtGmsv/nNzv3Fy13S3041Vue4ltx/mTZVc2RB22Nqr/N3LPtycnp4fZgMymWAij7NW4hz2Wbv0mM/32VtRBO1I4eoL0H1w+u/7GZZhdJr+09Qb7brtu6nGJ/NsI9luV/wX0Kv8KvOul+n1P6wY9vX8hxquuD8vJvl5cGje2l+jttdzw2r9yqtWG4+O3Edl2dKvrq3loabbd5MbnvcyPo7js9T8+z/AItV2ZWDW8XO6blBp9zQXOLYafcR6gc16cCQQaWEWKt9iIL/AHghweNwc2C0g67mub7dqbYV5vifWTIxqaqsa+7Bqa8PrxcmpzWF8+r7bqf55tn+Eru9Nlq1/wDnn1+gzk4+PY0Qfax7ZB/PZayx9StDmY9QQ1zy8uhBf//SC/pmKPoOIJ7Ne7+9MOnVNH85aB4ixytuDWHbMHwCeAAZPPYj+KsSxw/dH2NeM5dz9rXHTTGl14/tlI4FjSP1rI8hvn8FbDARMRroSf4Byk3cCQWkjsY5CiOOPYMgnLuWj9iuDdMy6PEkEf8AUqIx8sGRnWgdx7T/AN9WkS3ktOneFGAHTB1TeCPZdxy7uZkYXUrdhZ1S1gHGgjy42qpZ0jrTy6OruI7BzT+UPW+Tydp2nvIj/NTzXzHuHiATHyThCKDOXd5odE6wyNnUmeGrXAfDlMenfWMBv+UK3bRDY3cf5hXSOuLCP0YduMl2g/6MlRc2ppLgzbPYnUf2DuR9sI9yXd5l+P8AWVp3DMa4wRydPL3M9qGLPrQ1wAu3RwHODm/9L81dHZsk7WwSBogOaOQ2T3AMpwwx8VpzScYH63kfzm4Dgeo0/wDVOSFv1tYI2jaeRLII/lAXLcZu2CA4eIOhUgNCdr4/OiSnfd4eP4f96t+8T8H/05PZkB28OboPzi7/AL6p1OJEz8Cf9qC4vBEPY13jAJj71HZlfmPZH9Uz+VWZFrC240tPmR2EGfkkHMaQBo4nUOEx+IVXfcwAWmrXncQD9wCT8qn6IDNwGo2kg/cmEWuum4TYCI2OB8AZ/wCqc1DLniR7te7SQNP5YZ7VUD73O2iljmd/T0Mf5zXf9FGDrhpWAHRoHgx83Nc5NqlwNsn5uMyA+yHd9Hc+b9j0qs3FfoHbxoZa0kT/AJqGLuonSxrXDuGz/wBUXKX2jJA1phvYOg/IJwH8rWkn+QZzjuJdIYXcgkA6eA9Ru1QYamglu93jALv836X/AFSTb8h3/aQx5QP+qTWixxaHVWb+4B0H4ohHl+SxdU7hrpI5cDz/AGoQvdOjRH3H7lElu73bh81DfXJDXAHydJ/KpAsJbQIiCSPiRP4p2BocXAy7xMfwQCS0Ai+Y/N3NEfDcFJj73HVu8eHt/wC+7U+1r//UGz0tvs/nO+6N0/20x+3bvZt2x7d0fjuXl6SsS2aw3/g+qV/bJHq7Nvlz89ym7kT6cfPn+wvKElGN/wDvWQ7f98+rH7Rr6e3nSP8AzJB/WIHr7v8Arcx5bvzti8vSTvs/7pb9v7H039N6b9vq+XO3+xv/ADkAftLc3Z9q/wCjt+Xqe1ecpIlH2vp1vrbB9t3bZ1mN3/R/QquPT3D0/V2eUxH/AFK85STo/RbL6/V9Lb638rbP50Qmd6kGfS51mV5qknrX0+v0tv5v9nd/FPp+bO3vG3/0Z7l5ekih/9kAOEJJTQQhGlZlcnNpb24gY29tcGF0aWJpbGl0eSBpbmZvAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAANgAuADAAAAABADhCSU0EBgxKUEVHIFF1YWxpdHkAAAAAB//+AAAAAQEA/+4ADkFkb2JlAGSAAAAAAf/bAIQAFBERGhIaKRgYKTMnICczJxwcHBwnIhcXFxcXIhEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEVGhohHSEiGBgiFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAWgB4AwEiAAIRAQMRAf/dAAQACP/EARsAAAMBAQEBAQEBAQEAAAAAAAEAAgMEBQYHCAkKCwEBAQEBAQEBAQEBAQEAAAAAAAECAwQFBgcICQoLEAACAgEDAgMEBwYDAwYCATUBAAIRAyESMQRBUSITYXEygZGxQqEF0cEU8FIjcjNi4YLxQzSSorIV0lMkc8JjBoOT4vKjRFRkJTVFFiZ0NlVls4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9hEAAgIABQEGBgEDAQMFAwYvAAERAiEDMUESUWFxgZEiEzLwobEEwdHh8UJSI2JyFJIzgkMkorI0U0Rjc8LSg5OjVOLyBRUlBhYmNWRFVTZ0ZbOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hv/aAAwDAQACEQMRAD8A9dIiTwoDYJi+o85BjSGibVoDGMjqFN3RdsOgbIvl5O8M6Kso5pRIYt2yRPycqd1cow8CoanV33gPMrWpCcFZCJcOdNIaiApFNUtNITSppUD/0PaSrpiGtvpbhScEpcGdF32gCmigvG1pOqrAwAAQSyZVoxucGiyWsVAEON3w6RgQbUgGTF3j9DIwyL0WrtXaRjijlnD04mUiAByw+L1f4kOt6uOCEqwYzuyS+zOWP/31ifcx/wA2InEGiLelbTqZtWNCVay7cETPJIRiO8izCQnESHBFu009DDTQqmlaQ//R9bqs8elh6kgSP8IeDH+MmUZShilYraJfbXP1ks8KiAI9/wDE82OYlpwfB1a+yJWu7PV6L8Tj1tjaYGHxCTcfxXpJGvUA/qEovjysWQDfjfxPBLpISu47SNfJJ5ybg+p9SMyZRIMTwQ55epxYK9WQjfD5GCWXBAQjZA/i2f8AbcJdNOUjMynuPe4KRB9Thy4px3YpCQ8Ync2ckMY88gP6jtfk49NGN5BM2QYk2xL8Ph2s1/T/AO/VIg+rx9RjykjHKMq/gludgbflMEJdLLdCwT7YNZo5swAlI7QTLbu/i/8AKmFSIPo/2TD6nqbI7/4trxfif4xi/Dxt+LKeIfw/+PfNH4hk6bp/Rx0JjieSXwx/9+PiT6eWQ7pGJJ5lu+JskOnpZZvxjqonMbjHzyj9iMY/7v8A8yP1z8b0ccvTz3wkIn2S+J9+P4vGNDLEg/bl/wDAnrSyRztVs9OleWH4n009BOv6gVevJdTnxZ//0sSCAImAoeBWRMzZhqOPM9BJPKu3RGFdmXqS7wP0uOSEMkt08crHte0Jq3PE1yOYZa+zJP7QB9mX0PTtZMXPEvI4JjHKO0idXu0QevgNdsg+iIrsbxHI82H4nCE9+3cRp5wjJ+JY8hJmDR+yH0vT91olgHgD8m8ScjxcuTps/wAYkaG0fv6TOWXTZQBUogaAD/40+ueniR8I+hyl00DzEfQ3iycjyPR6Q95gfv8A+UnaEsGPSE5iP8JO+P8A7rez9kx3rEN/smH+FvBk5o5Tl6aX2iFen9ixfw/eVXtsvNH/06J1oNA+DBjE9liaezOKNBomrLIl4JJLk0VXtQdGdDoQgHwclLGq34MkS7EfNz/mX2+9pDY252Y66tDepvwpoBd6uZtJmfH7mTO3SMsFW1TAIDYmPEOkZDEX3VIKtB//1J0lwLX04ns19l55c93qzkb+mBxakyHA+lxj/qeg/P5MGBnsMvY3t2jU2svm49+6YRcowJ5+9aA03UiXbhwyc9vmgdIG74ZLu2nWX3PHj57fJ6u3b/V8TQEzB+0iz73Lx4SP3pqMlX4hom+AQx37uw4/N0QmMfaqnnsqB//Z">
+ <animate attributeName="y" from="5" to="145" begin="0" dur="3" fill="freeze"/>
+ </image>
+ </defs>
+ <!-- END OF DEFS-->
+
+ <!-- ACTUAL TEST CONTENT-->
+ <use xlink:href="#lineID">
+ <animate attributeName="x" from="10" to="70" begin="0" dur="3" fill="freeze"/>
+ </use>
+
+ <use xlink:href="#rectID">
+ <animateTransform attributeName="transform" type="translate" from="0 0" to="140 0" begin="0" dur="3" fill="freeze"/>
+ <animateTransform attributeName="transform" type="scale" from="1 1" to="0.5 1" begin="0" dur="3" additive="sum" fill="freeze"/>
+ </use>
+
+ <use xlink:href="#circleID">
+ <animate attributeName="x" from="10" to="70" begin="0" dur="3" fill="freeze"/>
+ </use>
+
+ <use xlink:href="#polylineID">
+ <animateTransform attributeName="transform" type="rotate" from="0" to="15" additive="sum" begin="0" dur="3" fill="freeze"/>
+ </use>
+
+ <use x="60" y="-10" xlink:href="#polygonID">
+ <animateMotion path="M 0 0 l 0 150" begin="0" dur="3" fill="freeze"/>
+ <animateTransform attributeName="transform" type="scale" from="1 1" to="1 2" begin="0" dur="3" additive="sum" fill="freeze"/>
+ </use>
+
+ <use xlink:href="#imageID">
+ <animateTransform attributeName="transform" type="scale" from="1 .25" to="1 1" begin="0" dur="3" additive="sum" fill="freeze"/>
+ </use>
+ <!-- END OF ACTUAL TEST CONTENT-->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-31-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-31-t-isvalid.html
new file mode 100644
index 0000000000..37f3d463e6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-31-t-isvalid.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-31-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-31-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-31-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- GRAY TESTAREAS-->
+ <rect x="5" y="7.5" width="375" height="75" fill="silver" stroke="black" stroke-width="3"/>
+ <rect x="5" y="112.5" width="375" height="75" fill="silver" stroke="black" stroke-width="3"/>
+ <g transform="scale(1.5)" display="inline">
+
+ <!-- PURPLE CIRCLES-->
+ <circle display="inline" cx="30" cy="30" r="20" fill="purple" stroke="black" stroke-width="5"/>
+ <circle display="inline" cx="30" cy="100" r="20" fill="purple" stroke="black" stroke-width="5">
+ <animate attributeName="visibility" from="visible" to="hidden" begin="6" dur="2"/>
+ </circle>
+
+ <!-- GREEN CIRCLES-->
+ <g display="none">
+ <circle display="inline" cx="80" cy="30" r="20" fill="green" stroke="black" stroke-width="5"/>
+ <animate attributeName="display" from="none" to="inline" begin="0" dur="3" fill="freeze"/>
+ </g>
+ <circle visibility="hidden" cx="80" cy="100" r="20" fill="green" stroke="black" stroke-width="5">
+ <animate attributeName="visibility" from="hidden" to="visible" begin="0" dur="3" fill="freeze"/>
+ </circle>
+
+ <!-- DODGERBLUE CIRCLES-->
+ <circle display="none" cx="130" cy="30" r="20" fill="dodgerblue" stroke="black" stroke-width="5">
+ <set attributeName="display" to="inline" begin="2" dur="1" fill="freeze"/>
+ </circle>
+ <circle visibility="hidden" cx="130" cy="100" r="20" fill="dodgerblue" stroke="black" stroke-width="5">
+ <animate attributeName="visibility" from="hidden" to="visible" begin="1" dur="2" fill="freeze"/>
+ </circle>
+
+ <!-- BLUE CIRCLES-->
+ <g display="none">
+ <g display="inherit">
+ <circle display="inline" cx="180" cy="30" r="20" fill="blue" stroke="black" stroke-width="5"/>
+ </g>
+ <animate attributeName="display" from="inline" to="none" begin="3" dur="3" fill="freeze"/>
+ </g>
+ <circle visibility="hidden" cx="180" cy="100" r="20" fill="blue" stroke="black" stroke-width="5">
+ <animate attributeName="visibility" from="visible" to="hidden" begin="3" dur="3" fill="freeze"/>
+ </circle>
+
+ <!-- YELLOW CIRCLES-->
+ <g display="none">
+ <g display="inherit">
+ <circle display="inline" cx="180" cy="30" r="20" fill="yellow" stroke="black" stroke-width="5"/>
+ </g>
+ <animate attributeName="display" from="none" to="inherit" begin="4" dur="3" fill="freeze"/>
+ </g>
+ <circle visibility="hidden" cx="180" cy="100" r="20" fill="yellow" stroke="black" stroke-width="5">
+ <animate attributeName="visibility" from="hidden" to="visible" begin="4" dur="3" fill="freeze"/>
+ </circle>
+
+ <!-- CYAN CIRCLES-->
+ <g display="none">
+ <circle cx="230" cy="30" r="20" fill="#00ffff" stroke="black" stroke-width="5">
+ <animate attributeName="display" begin="0" dur="0.5" keyTimes="0; 0.5; 1" values="inherit; none; inherit" repeatCount="8"/>
+ </circle>
+ <animate attributeName="display" begin="0" dur="2" keyTimes="0; 0.5; 1" values="inline; none; inline" repeatCount="2" fill="freeze"/>
+ </g>
+ <g visibility="hidden">
+ <circle cx="230" cy="100" r="20" fill="#00ffff" stroke="black" stroke-width="5">
+ <animate attributeName="visibility" begin="0" dur="0.5" keyTimes="0; 0.5; 1" values="inherit; hidden; inherit" repeatCount="8"/>
+ </circle>
+ <animate attributeName="visibility" begin="0" dur="2" keyTimes="0; 0.5; 1" values="visible; hidden; visible" repeatCount="2" fill="freeze"/>
+ </g>
+ <animate attributeName="display" from="inherit" to="none" begin="6" dur="2"/>
+ </g>
+
+ <text x="385" y="40" font-size="16">display</text>
+ <text x="385" y="150" font-size="18">visibility</text>
+ <text x="5" y="235" font-size="28">Test of display attribute animation.</text>
+ <text x="5" y="265" font-size="18">Circles with same color should be visible at same time.</text>
+
+ <text x="310" y="335" display="none" fill="red">Test running...
+ <set attributeName="display" to="inline" begin="0" dur="8.5"/>
+ </text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-32-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-32-t-isvalid.html
new file mode 100644
index 0000000000..bcd4ca00e6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-32-t-isvalid.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-32-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-32-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-32-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Draw the boxes to contain the shapes and the text labels for the boxes -->
+ <!-- ====================================================================== -->
+ <g fill="black" stroke="none" font-family="Arial" font-size="8">
+ <text x="5" y="90">Stroked</text>
+ <text x="5" y="195">Unstroked</text>
+ <text x="50" y="135">Zero width rect</text>
+ <text x="130" y="135">Zero height rect</text>
+ <text x="210" y="135">Zero radius circle</text>
+ <text x="315" y="135">Zero x radius ellipse</text>
+ <text x="394" y="135">Zero y radius ellipse</text>
+ <text x="210" y="290">Zero length line</text>
+ </g>
+
+ <g fill="none" stroke="#000000">
+ <!-- rects -->
+ <rect x="50" y="50" width="35" height="60"/>
+ <rect x="50" y="155" width="35" height="60"/>
+ <rect x="130" y="50" width="35" height="60"/>
+ <rect x="130" y="155" width="35" height="60"/>
+
+ <!-- circles -->
+ <rect x="210" y="50" width="60" height="60"/>
+ <rect x="210" y="155" width="60" height="60"/>
+
+ <!-- ellipses -->
+ <rect x="315" y="50" width="35" height="60"/>
+ <rect x="315" y="155" width="35" height="60"/>
+ <rect x="394" y="50" width="35" height="60"/>
+ <rect x="394" y="155" width="35" height="60"/>
+
+ <!-- line -->
+ <rect x="210" y="260" width="60" height="10"/>
+ </g>
+
+ <!-- ====================================================================== -->
+ <!-- Draw 4 rectangles, two with zero width, two with zero height -->
+ <!-- (stroked and unstroked) -->
+ <!-- ====================================================================== -->
+ <rect id="Zero-width-stroked-rect" fill="#00FF00" stroke="#000000" x="55" y="55" height="50" width="0">
+ <animate attributeName="width" from="0" to="25" begin="0" dur="3" fill="freeze"/>
+ <animate attributeName="width" from="25" to="0" begin="3" dur="3" fill="freeze"/>
+ </rect>
+ <rect id="Zero-height-stroked-rect" fill="#00FF00" stroke="#000000" x="135" y="55" width="25" height="0">
+ <animate attributeName="height" from="0" to="50" begin="0" dur="3" fill="freeze"/>
+ <animate attributeName="height" from="50" to="0" begin="3" dur="3" fill="freeze"/>
+ </rect>
+ <rect id="Zero-width-unstroked-rect" fill="#FF8000" stroke="none" x="55" y="160" height="50" width="0">
+ <animate attributeName="width" from="0" to="25" begin="0" dur="3" fill="freeze"/>
+ <animate attributeName="width" from="25" to="0" begin="3" dur="3" fill="freeze"/>
+ </rect>
+ <rect id="Zero-height-unstroked-rect" fill="#FF8000" stroke="none" x="135" y="160" width="25" height="0">
+ <animate attributeName="height" from="0" to="50" begin="0" dur="3" fill="freeze"/>
+ <animate attributeName="height" from="50" to="0" begin="3" dur="3" fill="freeze"/>
+ </rect>
+ <!-- ====================================================================== -->
+ <!-- Draw two zero radius circles (stroked and unstroked) -->
+ <!-- ====================================================================== -->
+ <circle id="Zero-radius-stroked-circle" fill="#00FF00" stroke="#000000" cx="240" cy="80" r="0">
+ <animate attributeName="r" from="0" to="25" begin="0" dur="3" fill="freeze"/>
+ <animate attributeName="r" from="25" to="0" begin="3" dur="3" fill="freeze"/>
+ </circle>
+ <circle id="Zero-radius-unstroked-circle" fill="#FF8000" stroke="none" cx="240" cy="185" r="0">
+ <animate attributeName="r" from="0" to="25" begin="0" dur="3" fill="freeze"/>
+ <animate attributeName="r" from="25" to="0" begin="3" dur="3" fill="freeze"/>
+ </circle>
+ <!-- ====================================================================== -->
+ <!-- Draw 4 ellipses, two with a zero x radius, two with a zero y radius -->
+ <!-- (stroked and unstroked) -->
+ <!-- ====================================================================== -->
+ <ellipse id="Zero-x-radius-stroked-ellipse" fill="#00FF00" stroke="#0000FF" cx="332" cy="80" rx="0" ry="25">
+ <animate attributeName="rx" from="0" to="12" begin="0" dur="3" fill="freeze"/>
+ <animate attributeName="rx" from="12" to="0" begin="3" dur="3" fill="freeze"/>
+ </ellipse>
+ <ellipse id="Zero-x-radius-unstroked-ellipse" fill="#FF8000" stroke="none" cx="332" cy="185" rx="0" ry="25">
+ <animate attributeName="rx" from="0" to="12" begin="0" dur="3" fill="freeze"/>
+ <animate attributeName="rx" from="12" to="0" begin="3" dur="3" fill="freeze"/>
+ </ellipse>
+ <ellipse id="Zero-y-radius-stroked-ellipse" fill="#00FF00" stroke="#0000FF" cx="411" cy="80" rx="12" ry="0">
+ <animate attributeName="ry" from="0" to="25" begin="0" dur="3" fill="freeze"/>
+ <animate attributeName="ry" from="25" to="0" begin="3" dur="3" fill="freeze"/>
+ </ellipse>
+ <ellipse id="Zero-y-radius-unstroked-ellipse" fill="#FF8000" stroke="none" cx="411" cy="185" rx="12" ry="0">
+ <animate attributeName="ry" from="0" to="25" begin="0" dur="3" fill="freeze"/>
+ <animate attributeName="ry" from="25" to="0" begin="3" dur="3" fill="freeze"/>
+ </ellipse>
+ <!-- ====================================================================== -->
+ <!-- Draw a zero-length line -->
+ <!-- ====================================================================== -->
+ <line id="Zero-length-line" stroke="#0000FF" x1="240" y1="265" x2="240" y2="265">
+ <animate attributeName="x1" from="240" to="215" begin="0" dur="3" fill="freeze"/>
+ <animate attributeName="x2" from="240" to="265" begin="0" dur="3" fill="freeze"/>
+ <animate attributeName="x1" from="215" to="240" begin="3" dur="3" fill="freeze"/>
+ <animate attributeName="x2" from="265" to="240" begin="3" dur="3" fill="freeze"/>
+ </line>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-33-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-33-t-isvalid.html
new file mode 100644
index 0000000000..f8b1d07854
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-33-t-isvalid.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-33-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-33-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-33-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- FIRST TEST-->
+ <g transform="translate(110, 50) scale(0.6)">
+ <text x="-160" y="-30" font-size="30" stroke="none" fill="#ccc">0</text>
+ <text x="-50" y="-30" font-size="30" stroke="none" fill="#ccc">0.8-3.2</text>
+ <text x="140" y="-30" font-size="30" stroke="none" fill="#ccc">4</text>
+ <g fill="none" stroke="#888" stroke-dasharray="10,6">
+ <polyline points="-150,0 0,0 150,0"/>
+ </g>
+ <g fill="#ccc" stroke="#555">
+ <circle cx="-150" r="20"/>
+ <circle r="20"/>
+ <circle cx="150" r="20"/>
+ </g>
+ <circle r="20" fill="rgb(204,0,102)" stroke="#000" stroke-width="3">
+ <animateMotion dur="4" values="-150 0; 150 0" calcMode="linear" fill="freeze" keyTimes="0; 0.2; 0.4; 0.6; 0.8; 1" keyPoints="0; 0.5; 0.5; 0.5; 0.5; 1"/>
+ </circle>
+ </g>
+ <!-- SECOND TEST-->
+ <g transform="translate(370, 50) scale(0.6)">
+ <text x="-160" y="-30" font-size="30" stroke="none" fill="#ccc">0</text>
+ <text x="-100" y="-30" font-size="30" stroke="none" fill="#ccc">2</text>
+ <text x="80" y="-30" font-size="30" stroke="none" fill="#ccc">2</text>
+ <text x="140" y="-30" font-size="30" stroke="none" fill="#ccc">4</text>
+ <g fill="none" stroke="#888" stroke-dasharray="10,6">
+ <polyline points="-150,0 -90,0"/>
+ <polyline points="90,0 150,0"/>
+ </g>
+ <g fill="#ccc" stroke="#555">
+ <circle cx="-150" r="20"/>
+ <circle cx="-90" r="20"/>
+ <circle cx="90" r="20"/>
+ <circle cx="150" r="20"/>
+ </g>
+ <circle r="20" fill="rgb(204,0,102)" stroke="#000" stroke-width="3">
+ <animateMotion dur="4" values="-150 0; 150 0" calcMode="linear" fill="freeze" keyTimes="0; 0.5; 0.5; 0.5; 0.5; 1" keyPoints="0; 0.2; 0.4; 0.6; 0.8; 1"/>
+ </circle>
+ </g>
+ <!-- THIRD TEST-->
+ <!-- The length of the lines in the polyline (motionpath) are 100,50 and 100.
+ The animated circle starts at the midpoint of one of the "legs" and also pass
+ this point at time 1.4 since
+ 1.4 = 4*(0.25) + (4*(0.75-0.25))*(1/5).
+ Where 0.25 is the time at keyPoint 1 (2nd) and 1/5 since the control circle is at
+ 1/5 of the distance between keyPoint 1 and 0 (2nd and 3rd).-->
+ <g transform="translate(110, 180) scale(0.6)">
+ <text x="-115" y="-30" font-size="30" stroke="none" fill="#ccc">3</text>
+ <text x="-85" y="-60" font-size="30" stroke="none" fill="#ccc">2.6</text>
+ <text x="60" y="-60" font-size="30" stroke="none" fill="#ccc">0</text>
+ <text x="95" y="-30" font-size="30" stroke="none" fill="#ccc">1</text>
+ <text x="-75" y="20" font-size="30" stroke="none" fill="#ccc">4</text>
+ <text x="40" y="20" font-size="30" stroke="none" fill="#ccc">1.4</text>
+ <g fill="none" stroke="#888" stroke-dasharray="10,6">
+ <polyline points="-105,0 -25,-60 25,-60 105,0"/>
+ </g>
+ <g fill="#ccc" stroke="#555">
+ <circle cx="-105" r="20"/>
+ <circle cx="-65" cy="-30" r="20"/>
+ <circle cx="65" cy="-30" r="20"/>
+ <circle cx="105" r="20"/>
+ </g>
+ <circle r="20" fill="rgb(204,0,102)" stroke="#000" stroke-width="3">
+ <animateMotion dur="4" path="M -105,0 L -25,-60 25,-60 105,0" calcMode="linear" fill="freeze" keyPoints="0.8; 1; 0; 0.2" keyTimes="0; 0.25; 0.75; 1"/>
+ </circle>
+ </g>
+ <!-- FOURTH TEST-->
+ <g transform="translate(370, 160) scale(0.6)">
+ <text x="-135" y="-30" font-size="30" stroke="none" fill="#ccc">3</text>
+ <text x="-95" y="-30" font-size="30" stroke="none" fill="#ccc">2.6</text>
+ <text x="65" y="-30" font-size="30" stroke="none" fill="#ccc">0</text>
+ <text x="115" y="-30" font-size="30" stroke="none" fill="#ccc">1</text>
+ <text x="-85" y="50" font-size="30" stroke="none" fill="#ccc">4</text>
+ <text x="50" y="50" font-size="30" stroke="none" fill="#ccc">1.4</text>
+ <g fill="none" stroke="#888" stroke-dasharray="10,6">
+ <polyline points="-125,0 125,0"/>
+ </g>
+ <g fill="#ccc" stroke="#555">
+ <circle cx="-125" r="20"/>
+ <circle cx="-75" r="20"/>
+ <circle cx="75" r="20"/>
+ <circle cx="125" r="20"/>
+ </g>
+ <circle r="20" fill="rgb(204,0,102)" stroke="#000" stroke-width="3">
+ <animateMotion dur="4" from="-125,0" to="125,0" calcMode="linear" fill="freeze" keyPoints="0.8; 1; 0; 0.2" keyTimes="0; 0.25; 0.75; 1"/>
+ </circle>
+ </g>
+ <text x="5" y="235" font-size="28">Test of keyPoints and keyTimes.</text>
+ <text x="5" y="265" font-size="18">Number indicates the circle's passing time in seconds.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-34-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-34-t-isvalid.html
new file mode 100644
index 0000000000..dccc5a38c7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-34-t-isvalid.html
@@ -0,0 +1,92 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-34-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-34-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-34-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(40,0) scale(0.8)">
+ <!-- GRAY SILHOUETTES INDICATING TIME IN SECONDS-->
+ <polygon points="248.5,38.5 276.5,22.5 298.5,19.5 316.5,26.5 332.5,40.5 331.5,57.5 322.5,70.5 307.5,76.5 314.5,80.5 324.5,86.5 333.5,99.5 333.5,121.5 327.5,130.5 312.5,143.5 292.5,149.5 270.5,148.5 248.5,142.5 252.5,114.5 267.5,119.5 282.5,119.5 297.5,115.5 304.5,109.5 295.5,99.5 284.5,92.5 277.5,84.5 270.5,74.5 281.5,66.5 293.5,60.5 297.5,50.5 292.5,45.5 281.5,45.5 274.5,49.5 266.5,53.5" fill="#ccc" stroke="rgb(0,0,0)" stroke-width="1"/>
+
+ <polygon points="108.5,38.5 123.5,26.5 148.5,16.5 172.5,17.5 188.5,19.5 202.5,23.5 206.5,26.5 210.5,37.5 213.5,44.5 215.5,57.5 209.5,68.5 203.5,81.5 187.5,98.5 164.5,120.5 206.5,121.5 224.5,121.5 220.5,149.5 194.5,147.5 181.5,147.5 167.5,146.5 150.5,147.5 133.5,149.5 117.5,148.5 117.5,136.5 118.5,124.5 133.5,115.5 151.5,97.5 170.5,78.5 186.5,59.5 179.5,43.5 159.5,35.5 139.5,40.5 125.5,49.5" fill="#ccc" stroke="rgb(0,0,0)" stroke-width="1"/>
+
+ <polygon points="26.5,32.5 33.5,32.5 40.5,29.5 47.5,23.5 61.5,17.5 73.5,16.5 74.5,33.5 73.5,50.5 73.5,64.5 72.5,77.5 72.5,90.5 72.5,105.5 71.5,126.5 89.5,128.5 90.5,138.5 89.5,151.5 72.5,151.5 54.5,152.5 38.5,152.5 27.5,152.5 28.5,139.5 30.5,127.5 44.5,125.5 46.5,112.5 47.5,99.5 46.5,87.5 48.5,73.5 48.5,53.5 34.5,52.5 22.5,52.5 22.5,51.5 22.5,41.5 22.5,33.5" fill="#ccc" stroke="rgb(0,0,0)" stroke-width="1"/>
+
+ <polygon points="427.5,17.5 439.5,15.5 449.5,15.5 449.5,29.5 447.5,44.5 447.5,59.5 465.5,60.5 466.5,74.5 465.5,89.5 450.5,87.5 449.5,102.5 449.5,123.5 449.5,140.5 449.5,153.5 420.5,154.5 421.5,137.5 420.5,123.5 420.5,111.5 419.5,99.5 392.5,97.5 367.5,99.5 366.5,79.5 367.5,69.5 376.5,43.5 381.5,27.5 384.5,17.5 412.5,16.5 406.5,36.5 400.5,49.5 394.5,70.5 419.5,71.5 423.5,49.5 424.5,33.5" fill="#ccc" stroke="rgb(0,0,0)" stroke-width="1"/>
+
+ <!-- FIRST TEST, POINTS-->
+ <polygon points="26.5,32.5 33.5,32.5 40.5,29.5 47.5,23.5 61.5,17.5 73.5,16.5 74.5,33.5 73.5,50.5 73.5,64.5 72.5,77.5 72.5,90.5 72.5,105.5 71.5,126.5 89.5,128.5 90.5,138.5 89.5,151.5 72.5,151.5 54.5,152.5 38.5,152.5 27.5,152.5 28.5,139.5 30.5,127.5 44.5,125.5 46.5,112.5 47.5,99.5 46.5,87.5 48.5,73.5 48.5,53.5 34.5,52.5 22.5,52.5 22.5,51.5 22.5,41.5 22.5,33.5" fill="rgb(204,0,102)" stroke="rgb(0,0,0)" stroke-width="4">
+ <animate attributeName="points" values="26.5,32.5 33.5,32.5 40.5,29.5 47.5,23.5 61.5,17.5 73.5,16.5 74.5,33.5 73.5,50.5 73.5,64.5 72.5,77.5 72.5,90.5 72.5,105.5 71.5,126.5 89.5,128.5 90.5,138.5 89.5,151.5 72.5,151.5 54.5,152.5 38.5,152.5 27.5,152.5 28.5,139.5 30.5,127.5 44.5,125.5 46.5,112.5 47.5,99.5 46.5,87.5 48.5,73.5 48.5,53.5 34.5,52.5 22.5,52.5 22.5,51.5 22.5,41.5 22.5,33.5 ; 108.5,38.5 123.5,26.5 148.5,16.5 172.5,17.5 188.5,19.5 202.5,23.5 206.5,26.5 210.5,37.5 213.5,44.5 215.5,57.5 209.5,68.5 203.5,81.5 187.5,98.5 164.5,120.5 206.5,121.5 224.5,121.5 220.5,149.5 194.5,147.5 181.5,147.5 167.5,146.5 150.5,147.5 133.5,149.5 117.5,148.5 117.5,136.5 118.5,124.5 133.5,115.5 151.5,97.5 170.5,78.5 186.5,59.5 179.5,43.5 159.5,35.5 139.5,40.5 125.5,49.5; 248.5,38.5 276.5,22.5 298.5,19.5 316.5,26.5 332.5,40.5 331.5,57.5 322.5,70.5 307.5,76.5 314.5,80.5 324.5,86.5 333.5,99.5 333.5,121.5 327.5,130.5 312.5,143.5 292.5,149.5 270.5,148.5 248.5,142.5 252.5,114.5 267.5,119.5 282.5,119.5 297.5,115.5 304.5,109.5 295.5,99.5 284.5,92.5 277.5,84.5 270.5,74.5 281.5,66.5 293.5,60.5 297.5,50.5 292.5,45.5 281.5,45.5 274.5,49.5 266.5,53.5 ; 427.5,17.5 439.5,15.5 449.5,15.5 449.5,29.5 447.5,44.5 447.5,59.5 465.5,60.5 466.5,74.5 465.5,89.5 450.5,87.5 449.5,102.5 449.5,123.5 449.5,140.5 449.5,153.5 420.5,154.5 421.5,137.5 420.5,123.5 420.5,111.5 419.5,99.5 392.5,97.5 367.5,99.5 366.5,79.5 367.5,69.5 376.5,43.5 381.5,27.5 384.5,17.5 412.5,16.5 406.5,36.5 400.5,49.5 394.5,70.5 419.5,71.5 423.5,49.5 424.5,33.5" fill="freeze" begin="1" dur="3s"/>
+
+ </polygon>
+
+
+ <!-- SECOND TEST, FILL-RULE-->
+ <g transform="scale(0.3) translate(-450, 500)">
+ <path fill-rule="nonzero" fill="#ccc" stroke="none" d="M 500,100 L 500,300 700,300 700,100 550,100 550,250 650,250 650,100 500,100 z">
+ <animate attributeName="fill-rule" values="nonzero; evenodd; evenodd; evenodd" begin="1" dur="4" fill="freeze"/>
+ <animate attributeName="fill" from="rgb(204,0,102)" to="#ccc" begin="0" dur="4" calcMode="discrete" fill="freeze"/>
+ </path>
+ </g>
+ <g transform="scale(0.3) translate(-30, 500)">
+ <path fill-rule="evenodd" fill="#ccc" stroke="none" d="M 500,100 L 500,300 700,300 700,100 550,100 550,250 650,250 650,100 500,100 z">
+ <animate attributeName="fill-rule" values="evenodd; nonzero; evenodd; evenodd" begin="1" dur="4" fill="freeze"/>
+ <animate attributeName="fill" from="#ccc" to="rgb(204,0,102)" begin="1" dur="2" calcMode="discrete" fill="remove"/>
+ </path>
+ </g>
+ <g transform="scale(0.3) translate(390, 500)">
+ <path fill="#ccc" stroke="none" d="M 500,100 L 500,300 700,300 700,100 550,100 550,250 650,250 650,100 500,100 z">
+ <animate attributeName="fill-rule" values="evenodd; evenodd; nonzero; evenodd" begin="1" dur="4" fill="freeze"/>
+ <animate attributeName="fill" from="#ccc" to="rgb(204,0,102)" begin="2" dur="2" calcMode="discrete" fill="remove"/>
+ </path>
+ </g>
+ <g transform="scale(0.3) translate(810, 500)">
+ <path fill="#ccc" stroke="none" d="M 500,100 L 500,300 700,300 700,100 550,100 550,250 650,250 650,100 500,100 z">
+ <animate attributeName="fill-rule" values="evenodd; evenodd; evenodd" begin="1" dur="3"/>
+ <animate attributeName="fill" from="#ccc" to="rgb(204,0,102)" begin="3" dur="2" calcMode="discrete" fill="freeze"/>
+ </path>
+ </g>
+ </g>
+
+
+ <text x="5" y="225" font-size="28">Animation on: 'points' and 'fill-rule'.</text>
+ <text x="5" y="255" font-size="18">Digit should match outline at indicated time.</text>
+ <text x="5" y="275" font-size="18">Filled square should follow morphing digit discretely.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-35-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-35-t-isvalid.html
new file mode 100644
index 0000000000..39ef7d6898
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-35-t-isvalid.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-35-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-35-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-35-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(0,0) scale(0.9)">
+ <g>
+ <g fill="none" stroke="gray" stroke-width="15">
+ <g stroke="black">
+ <polyline id="poly" stroke-dasharray="90,20,5,15" points="240,20,300,20,240,80,300,80">
+ <animate begin="0" dur="10" attributeName="stroke-linecap" values="butt; round; square; square" keyTimes="0; 0.33; 0.66; 1" fill="freeze"/>
+ <animate begin="0" dur="10" attributeName="stroke-linejoin" values="miter; round; bevel; bevel" keyTimes="0; 0.33; 0.66; 1" fill="freeze"/>
+ </polyline>
+ <use x="0" y="0" stroke="red" stroke-width="1" xlink:href="#poly"/>
+ <animateTransform type="translate" begin="0" dur="10" values="0 0; 0 0; 0 95; 0 95; 0 190; 0 190" keyTimes="0; 0.3; 0.35; 0.65; 0.7; 1" attributeName="transform" fill="freeze"/>
+ </g>
+ <polyline id="poly1" stroke-linecap="butt" stroke-linejoin="miter" stroke-dasharray="90,20,5,15" points="140,20,200,20,140,80,200,80"/>
+ <polyline id="poly2" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="90,20,5,15" points="140,115,200,115,140,175,200,175"/>
+ <polyline id="poly3" stroke-linecap="square" stroke-linejoin="bevel" stroke-dasharray="90,20,5,15" points="140,210,200,210,140,270,200,270"/>
+ <use x="0" y="0" stroke="red" stroke-width="1" xlink:href="#poly1"/>
+ <use x="0" y="0" stroke="red" stroke-width="1" xlink:href="#poly2"/>
+ <use x="0" y="0" stroke="red" stroke-width="1" xlink:href="#poly3"/>
+ </g>
+ <g>
+ <polyline fill="none" stroke="gray" stroke-dashoffset="-50" stroke-dasharray="5,5,20" stroke-width="5" points="10,10,50,10,10,40,50,40"/>
+ <polyline fill="none" stroke="gray" stroke-dashoffset="-30" stroke-dasharray="5,5,20" stroke-width="5" points="10,50,50,50,10,80,50,80"/>
+ <polyline fill="none" stroke="gray" stroke-dashoffset="-10" stroke-dasharray="5,5,20" stroke-width="5" points="10,90,50,90,10,120,50,120"/>
+ <polyline fill="none" stroke="gray" stroke-dashoffset="0" stroke-dasharray="5,5,20" stroke-width="5" points="10,130,50,130,10,160,50,160"/>
+ <polyline fill="none" stroke="gray" stroke-dashoffset="10" stroke-dasharray="5,5,20" stroke-width="5" points="10,170,50,170,10,200,50,200"/>
+ <polyline fill="none" stroke="gray" stroke-dashoffset="30" stroke-dasharray="5,5,20" stroke-width="5" points="10,210,50,210,10,240,50,240"/>
+ <polyline fill="none" stroke="gray" stroke-dashoffset="50" stroke-dasharray="5,5,20" stroke-width="5" points="10,250,50,250,10,280,50,280"/>
+ </g>
+ <g>
+ <polyline fill="none" stroke="red" stroke-dasharray="5,5,20" stroke-width="5" points="60,10,100,10,60,40,100,40">
+ <animate attributeName="stroke-dashoffset" begin="0" dur="10" values="-50; -50; -30; -30; -10; -10; 0; 0; 10; 10; 30; 30; 50; 50" keyTimes="0; 0.05; 0.1; 0.15; 0.2; 0.25; 0.3; 0.35; 0.4; 0.45; 0.5; 0.55; 0.6; 1" fill="freeze"/>
+ </polyline>
+ <animateTransform type="translate" begin="0" dur="10" values="0 0; 0 0; 0 40; 0 40; 0 80; 0 80; 0 120; 0 120; 0 160; 0 160; 0 200; 0 200; 0 240; 0 240" keyTimes="0; 0.05; 0.1; 0.15; 0.2; 0.25; 0.3; 0.35; 0.4; 0.45; 0.5; 0.55; 0.6; 1" attributeName="transform" fill="freeze"/>
+ </g>
+ </g>
+ <g id="miterLimit" visibility="hidden" transform="scale(2.5) translate(130 2)">
+ <g id="reference">
+ <g>
+ <path d="M16,51.1c0.8-2.9,2.5-9.2,3-11c2.1,0,8.9,0,11,0c0.5,1.7,2.5,8.2,3.3,11.1l1.9,1.4H47l1.9-2.6L33.8,1.4L31.9,0H17.5 l-1.9,1.4L0.8,49.9l1.9,2.6h11.4L16,51.1z M15.5,37.5c-0.8,2.9-2.5,9.2-3,11c-1.7,0-4.6,0-7.1,0C6.8,44,18.2,6.5,19,4 c2.1,0,9.3,0,11.4,0c0.8,2.5,12.5,40,13.9,44.5c-2.7,0-5.9,0-7.6,0c-0.5-1.7-2.5-8.2-3.3-11l-1.9-1.4H17.4L15.5,37.5z"/>
+ <path d="M22.3,9.8l-2.3,9.3l-2.9,10.2l1.9,2.6h10.7l1.9-2.6l-3-10.3c0,0-2.5-9.3-2.5-9.3L22.3,9.8z M23.9,20.1 c0,0,0.2-0.8,0.4-1.8c0.1,0.5,0.5,1.8,0.5,1.8s1.4,4.9,2.3,7.8c-2,0-3.4,0-5.4,0C22.5,25,23.9,20.1,23.9,20.1z"/>
+ <set attributeName="visibility" begin="0" dur="2" to="visible"/>
+ </g>
+ <g>
+ <path d="M31.9,0H16.1L0.8,49.9l1.9,2.6h12.9c0,0,2.8-10.2,3.4-12.5c2.1,0,8.9,0,11,0c0.7,2.2,3.7,12.5,3.7,12.5H47l1.9-2.6 L33.3,0H31.9z M30.4,4c0.8,2.5,12.5,40,13.9,44.5c-2.7,0-5.9,0-7.6,0c-0.7-2.2-3.7-12.5-3.7-12.5h-17c0,0-2.8,10.2-3.4,12.5 c-1.7,0-4.6,0-7.1,0C6.8,44,18.2,6.5,19,4C21.1,4,28.3,4,30.4,4z"/>
+ <path d="M22.3,9.8l-2.3,9.3l-2.9,10.2l1.9,2.6h10.7l1.9-2.6l-3-10.3c0,0-2.5-9.3-2.5-9.3L22.3,9.8z M23.9,20.1 c0,0,0.2-0.8,0.4-1.8c0.1,0.5,0.5,1.8,0.5,1.8s1.4,4.9,2.3,7.8c-2,0-3.4,0-5.4,0C22.5,25,23.9,20.1,23.9,20.1z"/>
+ <set attributeName="visibility" begin="2.5" dur="2" to="visible"/>
+ </g>
+ <g>
+ <path d="M31.9,0H16.1L0,52.5h15.6c0,0,2.8-10.2,3.4-12.5c2.1,0,8.9,0,11,0c0.7,2.2,3.7,12.5,3.7,12.5h16L33.3,0H31.9z M30.4,4 c0.8,2.5,12.5,40,13.9,44.5c-2.7,0-5.9,0-7.6,0c-0.7-2.2-3.7-12.5-3.7-12.5h-17c0,0-2.8,10.2-3.4,12.5c-1.7,0-4.6,0-7.1,0 C6.8,44,18.2,6.5,19,4C21.1,4,28.3,4,30.4,4z"/>
+ <path d="M22.3,9.8l-2.3,9.3l-3.7,12.8h16.1L28.7,19c0,0-2.5-9.3-2.5-9.3L22.3,9.8z M23.9,20.1c0,0,0.2-0.8,0.4-1.8 c0.1,0.5,0.5,1.8,0.5,1.8s1.4,4.9,2.3,7.8c-2,0-3.4,0-5.4,0C22.5,25,23.9,20.1,23.9,20.1z"/>
+ <set attributeName="visibility" begin="5" dur="2" to="visible"/>
+ </g>
+ <g>
+ <path d="M31.9,0H16.1L0,52.5h15.6c0,0,2.8-10.2,3.4-12.5c2.1,0,8.9,0,11,0c0.7,2.2,3.7,12.5,3.7,12.5h16L33.3,0H31.9z M30.4,4 c0.8,2.5,12.5,40,13.9,44.5c-2.7,0-5.9,0-7.6,0c-0.7-2.2-3.7-12.5-3.7-12.5h-17c0,0-2.8,10.2-3.4,12.5c-1.7,0-4.6,0-7.1,0 C6.8,44,18.2,6.5,19,4C21.1,4,28.3,4,30.4,4z"/>
+ <path d="M22.3,9.8l-2.3,9.3l-3.7,12.8h16.1L28.7,19c0,0-2.5-9.3-2.5-9.3l-2-7.6L22.3,9.8z M23.9,20.1c0,0,0.2-0.8,0.4-1.8 c0.1,0.5,0.5,1.8,0.5,1.8s1.4,4.9,2.3,7.8c-2,0-3.4,0-5.4,0C22.5,25,23.9,20.1,23.9,20.1z"/>
+ <set attributeName="visibility" begin="7.5" to="visible"/>
+ </g>
+ </g>
+ <g id="animated">
+ <path fill="none" stroke="#FF0000" stroke-width="4" stroke-miterlimit="1" d="M17.5,38.1l-3.4,12.5H2.7L17.5,2h14.3L47,50.5 H35.2l-3.7-12.5H17.5z M29.8,29.9l-3-10.3C26,16.7,25,13,24.3,10.2c-0.6,2.9-1.5,6.6-2.3,9.4l-3,10.3H29.8z">
+ <animate attributeName="stroke-miterlimit" attributeType="CSS" begin="0" dur="10" keyTimes="0; 0.2; 0.25; 0.45; 0.5; 0.7; 0.75; 1" fill="freeze" values="1; 1; 1.5; 1.5; 2; 2; 5; 5"/>
+ </path>
+ <set attributeName="visibility" begin="0" dur="2" to="visible"/>
+ <set attributeName="visibility" begin="2.5" dur="2" to="visible"/>
+ <set attributeName="visibility" begin="5" dur="2" to="visible"/>
+ <set attributeName="visibility" begin="7.5" to="visible"/>
+ </g>
+ <use x="0" y="60" xlink:href="#animated"/>
+ <use x="0" y="60" xlink:href="#reference"/>
+ </g>
+ <path fill="none" stroke="blue" stroke-width="10" stroke-dasharray="5" transform="translate(520 20) scale(1 2) rotate(90)" d="M15.2,5.4C5.5,10.1,1.1,18.8,2,31.7c14.8,32.1,138.9-59,127.8-19.7C112.1,75.3,42.2-8.8,15.2,5.4">
+ <animate begin="1" dur="1" attributeName="stroke-dasharray" values="5; 500" keyTimes="0; 1" fill="freeze"/>
+ <animate begin="0" dur="10" attributeName="stroke-dashoffset" from="0" to="100"/>
+ </path>
+ </g>
+ <text x="5" y="280" font-size="18">Animation on: 'stroke-dasharray', 'stroke-dashoffset',</text>
+ <text x="5" y="305" font-size="18">'stroke-miterlimit', 'stroke-linecap' and 'stroke-linejoin'.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-36-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-36-t-isvalid.html
new file mode 100644
index 0000000000..0073cff7ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-36-t-isvalid.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-36-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-36-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-36-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="25" font-size="16">&lt;animateTransform&gt; on structure,</text>
+ <text text-anchor="middle" x="240" y="45" font-size="16">hyperlinking and text elements</text>
+
+ <g transform="translate(0,0)">
+
+ <g transform="translate(60,90)">
+ <g id="animatedG" fill="rgb(230,230,230)" stroke="rgb(255,180,0)">
+ <animateTransform attributeName="transform" type="rotate" values="0;360;180;360" dur="3s"/>
+
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z"/>
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(90)"/>
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(180)"/>
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(270)"/>
+ <rect x="-15" y="-15" width="30" height="30"/>
+ </g>
+
+ <text y="60" text-anchor="middle">&lt;g&gt;</text>
+ </g>
+
+ <g transform="translate(180,110)">
+ <g>
+ <use xlink:href="#animatedG" transform="translate(-20, -30) scale(0.4)"/>
+ <use xlink:href="#animatedG" transform="translate(-20, 0) scale(0.4)"/>
+ <use xlink:href="#animatedG" transform="translate(20, -30) scale(0.4)"/>
+ <use xlink:href="#animatedG" transform="translate(20, 0) scale(0.4)"/>
+ </g>
+
+ <text y="40" text-anchor="middle">&lt;use&gt;</text>
+ </g>
+
+ <g transform="translate(300,90)">
+ <image id="imageID" x="-30" y="-30" width="60" height="60" xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEASABIAAD/4RX+RXhpZgAASUkqAAgAAAAJAA8BAgAGAAAAegAAABABAgAXAAAAgAAAABIBAwABAAAAAQAAABoBBQABAAAAoAAAABsBBQABAAAAqAAAACgBAwABAAAAAgAAADIBAgAUAAAAsAAAABMCAwABAAAAAQAAAGmHBAABAAAAxAAAAGYFAABDYW5vbgBDYW5vbiBESUdJVEFMIElYVVMgMzAwAAAAAAAAAAAAALQAAAABAAAAtAAAAAEAAAAyMDAyOjAxOjE1IDA0OjQyOjU4ABsAmoIFAAEAAABWAwAAnYIFAAEAAABeAwAAAJAHAAQAAAAwMjEwA5ACABQAAAAOAgAABJACABQAAAAiAgAAAZEHAAQAAAABAgMAApEFAAEAAAA+AwAAAZIKAAEAAABGAwAAApIFAAEAAABOAwAABJIKAAEAAABmAwAABZIFAAEAAABuAwAABpIFAAEAAAB2AwAAB5IDAAEAAAAFAAAACZIDAAEAAAAAAAAACpIFAAEAAAB+AwAAfJIHAJoBAACGAwAAhpIHAAgBAAA2AgAAAKAHAAQAAAAwMTAwAaADAAEAAAABAAAAAqADAAEAAABABgAAA6ADAAEAAACwBAAABaAEAAEAAAAwBQAADqIFAAEAAAAgBQAAD6IFAAEAAAAoBQAAEKIDAAEAAAACAAAAF6IDAAEAAAACAAAAAKMHAAEAAAADAAAAAAAAADIwMDI6MDE6MTUgMDQ6NDI6NTgAMjAwMjowMToxNSAwNDo0Mjo1OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAPUAAAAgAAAA1QAAACAAAAABAAAAyAAAAGQAAAAKAAAAAAAAAAMAAACs3QIAAAABAP//AADoAwAAMAEAACAAAAAMAAEAAwAmAAAAHAQAAAIAAwAEAAAAaAQAAAMAAwAEAAAAcAQAAAQAAwAaAAAAeAQAAAAAAwAGAAAArAQAAAAAAwAEAAAAuAQAAAYAAgAgAAAAwAQAAAcAAgAYAAAA4AQAAAgABAABAAAAcVYQAAkAAgAgAAAA+AQAABAABAABAAAAAAAEAQ0AAwAEAAAAGAUAAAAAAABMAAIAAAADAAEAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAwABAAEwAAD/////BgKtACAAdADVAP//AAAAAAAAAAAAAP//AABABkAGAgAwAdMAngAAAAAAAAAAADQAAACPAD8B1QD1AAAAAAAAAAEAAwAAAAAAAAAHMAAAAAAAAAAA//8AANUA+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAElNRzpESUdJVEFMIElYVVMgMzAwIEpQRUcAAAAAAAAARmlybXdhcmUgVmVyc2lvbiAxLjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAPQA9AD0AABqGADOAAAAgE8SAJsAAAAEAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAEQAwABAAAAQAYAAAIQAwABAAAAsAQAAAAAAAAGAAMBAwABAAAABgAAABoBBQABAAAAtAUAABsBBQABAAAAvAUAACgBAwABAAAAAgAAAAECBAABAAAA9AUAAAICBAABAAAA7g8AAAAAAAC0AAAAAQAAALQAAAABAAAA//////////////////////////////////////////////////9//////////////9j/2wCEAAkGBggGBQkIBwgKCQkLDRYPDQwMDRwTFRAWIR0jIiEcIB8kKTQsJCcxJx4fLT0tMTY3Ojo6Iio/RD44QjM3OTYBCQkJDAoMFAwMFA8KCgoPGhoKChoaTxoaGhoaT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT//AABEIAHgAoAMBIQACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AOxApcV7J5goUngDNIVweaBC80oYjvRYLseszAY60FjI3c1HLZ3L5r6DjG46jFRFjTVmJtoA5qW3j3vuIBAokuVNgnzOxpKVA5xUNyY3TB4Fc0b3Oh2sZbqAxx0pMV2pnG9xNtJincA20hWmBMBT1XJrJuxaLf7pU4wKqScuayp3vqaTtbQABjmnRJunQdiRVtuz8kQlsa0kUUg+ZFP4VVeyUNuiJB9DXn060oabx6o7Z0oy12l3I5pMDawwcVTIrupbX6PY46u9uq3ExT0kZBxWrV9DNOw4zue9MZi3U0lFIbm2NwKTFUIMUmKYgxSYoAmAFP2+9Z3NLCbaTbzRcmw9baR13KpIp8ETLcpuUjnvWcqsbNXXMk9DSNOV07aX3NInFNPTmvLO8iljWVcN19az2hZZNmMkniuzC1LXg9t0c2Ihe0lv1JZrGWEZIBX1FV8V1U6iqK6+aOacHB2fyYYorQkMUmKYgxSYoEGKTFAyYCnYrM0FCM33VJ+go8mQfwN+VS5xWjaTDlk9kzSRBHGq+gpoO6ZB6mvLk7tvuz0ErK3YlkIQVAz0hkZamhlWRXIztNCdtVuDV9zRDBlBGCCKz7uyO8NCuQeoHatqFTkld/C9zOrDnj5rYYunSn7xVfqaf/Zn/TTn/drpli4p6Lm89jnjhn1dvIo3TRWt5HbGQNNICwUdQB3NGK3pVPaR5tvIyqQ5HbfzDFJitDMMUYoAlxSgVmaGlAAkCjvjNKeTXlzd5N92ehFWSXZCHmoyQjBj2qGUMkn3GojJQA0yUKGf7ozQBbtd6x4fgZ4qxmhMGGcCsjxP4ktvDGiS39yQSPljjzy79hTEcN8P7y51mbUNd1KQGSZxGrHgDP8ACPyFdtivRw1vZ6dHqcNe/P6rQcIXPRGP4UxsLJ5bEB8Z298etbc8b2ur9jLkklezt3DFGKsRLQKzLNFJULiPeofGduecfSiR/wB4qD6mvIb/ADPSQuPWqt+3lxKfVgKT2AqmSk3E9KALUFkW+aTgelWtqhhGgx647Cj+kBI/3Pl7UwOCMijqBICGXNcj448Ax+MfLkN/NbyQqRGmA0fPcj+tMCPwz8PRpWnWcN/ePKYG83yovljL+p7nH4V1sjQWcLSyFIo0GWduAB9apSaVk7J7onlTd+q2Z5n4x+MKWxa08PKJW+610w4B/wBkd/rWr4Es7pdE/tDUpHlvb7EsjyHJ2/wj8j+tb4WN537IyxDtC3dnSYpMV6Jwkt8sktm6wSLFMynY5G7afpXkl3Y61qVyY7zVrkxkncN52kewBx+lediJuKWrSfQ76EVJvRO3Ut6zo0+p3Ed19rc3MUYRC3QADjGOhrofCGvz6bpPk61cyTXab9ryMWLDjA3f56VxKVzqcbGA/wAWdZtrly8CGLcdvm2xAx9Q2f0rc0P4lDxPKbae2t4XjXzN0UrENj/ZZRj86p/CQtzoZryKCJpZpFSNeSxPArk7z4iTC/UaMtkYUJ3SXT43n0AH86Fq7feGxq6Z8VbOWdLfVbY20zEKrwSCaMn8OR+VXbn4laFp9xLDJJcSzLkuIoSQvtk4FNiSuZU3xhtCT9i0i7nHrJIkf9TWx4Y8YxeIIpC8Is5g3+pMofH48UPa4Lsak3iTTbGyuJ7m6RI7Ztsp67T9PxqDTPG2ia7c/ZdMvBNMRu27COO55FF9ANHV9Zs9D097u+lEcSD8WPoBXhPjf4g6j4puWt4w9tYqflhBwW929aa19AMTw9aW93rlnDqEghtjMDIzdMelfREQR4lMJUxkfKV6Y9q7sK1Z9zkxKd12HbKPLrsucyRxsuuXeq25SOUKu8gPESpOPftWMblrWcLJueI/dmHI/E/1rw61R1Ja9NkevSgoR069TQVy6EoVbjiqsy3ZiO+GFXGNoEpIP47axNSgEvPNEF2trI0udqtKRkAc8bKbaaVGkpntbK383JV2W4ZcH0+7zVXttdE2vvZly4tLq8h8q5t4pIyeVN45H/oFVR4cjwB/Zdpjtm6f/wCJpKVurHy+SLFto2m7leK3iEqHBKMTtYe9OGmafcM8hgjkdnIdjzn1pOTGoortoMIkbytNsiueCzkE/wDjpp8FobWbZb2llE57JMQf/QafN5sXL5IfPo8l4jR3SoiH5iEkLZYdCQRin2tzc6FeR3S+XIkYwX+6Rn17VUZW03RMoX12Zj+JdQufEOprcXOr26LH/q4lOQtZc2keYd0uqQMQOpQZquZ9mRZdyGDRx5+WvbfAPH3Rmuy0XXLzw/A/2cG7gJ4QPuVfy71pTquDvYmcFNWbNmx+JFoqyfb4pyxclfLjXCr2H3ucetaVt4+0W4OPOkiP/TRMfrXbHFQe90zklhpLazRyMNxZ21v5K288aHPApIb3TbW0S2iSZUUbQCCePQ15soy6pps7ozj0asgtLnTbIsIXmVDzsIOF+lWDqliwO6duTkEjpUtd0ylLzRQ1KPS9TMZkvZImiyFaNtp5x/hViyfT9Ph8q3uiUzn5jk/nQ2rWBb3Lkd/bYybhT7U4X9sDj7SnHvU6FXZS8i3NvPHHqAjMzM+4EAqSe1Q6fNp+kWotZNTEzK2Q0jYNVvsTe2uyJW16yQEC+gbHvTtN8S6PaXsk1xHFdyOVKlwMIADkA571SjZ9/IHJNb2H3niawu7xpYpEgjzxGqggD65rOnbTjayQx3yqkyjOV3EHGOxH5UW12Fdd9jMtvDmhxXsdw140qoM+U0eVc+/tTNV8PWd/J5kV4kSseALfvgZ6DNac2mxHKu5WPgm23AW+qOwZQDut2Xn04zxnFT2ng9LEiSLWbm3nGdzRWz4Ht2zS5vIfL5mja2chB+33kF1nAz5Tow/HFOm0mFoSI7xAwPyoyEjHfnH9PWpv6jS80dK8cJGdwz9aiFvHnOBXqSVzzouwvkJnBVc/SnizQ/8ALMflXPKKNVJgbCIjmMflUf2C3brEpH+7kVm4ItSGtpdqRzBHj12CoG0mzbAMMeO3FR7MrmFGkWfCmEfhUM3hyykk3FXBPo5oVJBzsrt4QsHck+aPo/8A9aoz4K08E/vJP0P9Kr2fYnnI5PBViQQJZF/Af4VA3gi1B4nbp/cWj2TH7Qhk8GQAACZuneMCq0vhDYMpMufdf/r1SovuJ1UVz4WlLcNH9cH/ABqQeDLhjlZIPx3CmsPJ9SXWS6Cnwhfx/ceL8JmH9KP+Ea1ZD8s34i5Yf0p/Vp+TBYiPmd35eOgIoAJHBH511M50O29C4U47mnhQykBiT6BqxZqhwJTG4N9OtSrtY98+/Ws5eRcfMCgJzj2yKjaMZ64x6VCZTQ5VULyfxNIGRgR5gb2NUri0HeUj5GUcdhjpQzIBhlyvrkD+tUtfInReY37RbO2zcPTOajaKFXz5hI+uaaUkDcWRzRIVzge2BVaXYCBzitY/kZSsvmQmNQc5qSEAg7cH29K0iRIcSGGGcj2yKcANuA/Hck5NWQSzzKR8u/B6hRinIwAA+bH8qybNUSD/AH2A9MnFPDYXA5H51k0aIRkDMA0av6e1SCFduCij6VnJtFJJiGCI9ET64puVU4wc+oBqE2y7JApTdtXeD64OKcx6DJB9s1RIi5ZuCAMdQc0hWRELABiO3JNVdE2ZD+9UBinPcBj/AIUiXEj5DAoMd8mrsmTdr5jHBA+VcH1AzUTKyj69+laRsQ7kZXPynDe2KdHDGP8Alnj8K0RmxzBAOij0HSnxIsikMiqPUNVCHS28RxvJJ+tMEaRP8oOPUtmsWaIsIePf2pySgdT9NwrFo1TFNxs5YoR2waYssLO3mJHk9e+aVn0uO662BhCWyhUevz8flTiM/wCrOf8AgVRfv99i15fdcbmVcMUZiB0UgioJL64QkfZZAPUNVxSe1iJSa6MbHfSsQVtnXuS3FTfanYjfGoxxgfMavl8yObyHl02kLGcn/pkaYJJBn5MA+vGaSXdjv2RCbmYEqVXPs1NeUsvJXPrWkUlsQ5N76EQjycb2+meKsIDj1x6CtIoiV+o/eQvfHuKA/wAvYfhVkjC0gHVQfXFRkXDYO9GI6DFYNmthn+mZz8uP9lQamjmuVA/csffgVDsylddCdLhgp3oE79aie5lxhFWQexJqeW3Urm8vkVvt8gfbIoA/3CDVhJVxlCg+oNJx82ClforoZNdXce0pFGy/3gc5pq307H96kZB7KDQoIHN9kSf2gVOFXr2KkU7+1sAB1z9Oark8xe0EXU4n6RsD9KSd4WQFhz24zTUXHzE5KXkQOY9uMNjsNtIEj2/xfTbjNap+RnZdxu1edq7f6frT0hdlyJG/4C55ql9xLEMjxcBps/gc09LknO/cfZkH+NNaAOUTyjLsY19AaUzJHncWPrmsWro1TsC38J6tge4NONxBMAFc59FJrFprbU1Ti9HoD2sLJhmbHo3SmJZwA5Bj46dqqM7kygiVJkiB+YnPbPFMa9jfcFwSPek43dxqSSsNa7mUbvLVB7tSHUHWLcYmHtkHNCh5sXP5EB1p0TAtHx6g4/lU0OqQyLlrd93q4z+tVZ9G0LnXVCyXdw5/cBMf7uaga+uQwLxIT6gYqlHzZLl5KwNcs7ZljOT6UmYznkp+JFaIhjMRqM+ac/72aljDsR+/z9GqkTYk8uRTnex+rVIszIMfOSfamB//2apR82S5eSsDXLO2ZYzk+lJmM//Y/+0O2lBob3Rvc2hvcCAzLjAAOEJJTQPtClJlc29sdXRpb24AAAAAEABIAAAAAQACAEgAAAABAAI4QklNBA0YRlggR2xvYmFsIExpZ2h0aW5nIEFuZ2xlAAAAAAQAAAAeOEJJTQQZEkZYIEdsb2JhbCBBbHRpdHVkZQAAAAAEAAAAHjhCSU0D8wtQcmludCBGbGFncwAAAAkAAAAAAAAAAAEAOEJJTQQKDkNvcHlyaWdodCBGbGFnAAAAAAEAADhCSU0nEBRKYXBhbmVzZSBQcmludCBGbGFncwAAAAAKAAEAAAAAAAAAAjhCSU0D9RdDb2xvciBIYWxmdG9uZSBTZXR0aW5ncwAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gXQ29sb3IgVHJhbnNmZXIgU2V0dGluZ3MAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAZHdWlkZXMAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4NVVJMIG92ZXJyaWRlcwAAAAQAAAAAOEJJTQQaBlNsaWNlcwAAAAB3AAAABgAAAAAAAAAAAAAAWgAAAHgAAAALAG8AcABlAHIAYQBfAGgAbwB1AHMAZQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAeAAAAFoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOEJJTQQREUlDQyBVbnRhZ2dlZCBGbGFnAAAAAQEAOEJJTQQUF0xheWVyIElEIEdlbmVyYXRvciBCYXNlAAAABAAAAAE4QklNBAwVTmV3IFdpbmRvd3MgVGh1bWJuYWlsAAALLwAAAAEAAABwAAAAVAAAAVAAAG5AAAALEwAYAAH/2P/gABBKRklGAAECAQBIAEgAAP/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAFQAcAMBIgACEQEDEQH/3QAEAAf/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/AOmAU2VPf9ETHJSDURr7GCG6BaJJ6NMeKJzdpjwTahTMkkn5pnTGunx0SvZHdKKcoMDw0lrhIjXRRrrdZu1gjkHlX2yK2DwaPyKFjQ/nQ/vDlVvvGpsDzDY9nQUT5FoPBa6FGXcSiW1uY4h2s8HxTPrex217S13gdFZiYkDY2wGwTvo2an1VMiQh5F1VjdsSeyBCUICAu7KuM1VMITQiEJoT7WMNqbapwlCNqf/Q6sBTZW95hgkjUplZxPovI5JA+5Xck+GJLVhHikAiZjWCxu8DbMnVWbX+09/xTmAQO5/ImcNCfAKpPIZ1daNiEBG66snlrWD4D8iC53igesXAGeQITbydBr5JlrkhcJDiNxaQ4D4K48V31gO9zHag9xPcKqzGfAdZpOjWjklHawVAMBkfx5KVnTwVQa4wXk+54A7dynODW1pc63Y1oLnvdDWtaBue97ifaxjfpK0NeFx3+Md/1it6fX03peHc/DySPtmXUN8ydteJtq3W11bvfc9zP0v80pffyfvfgFnsw7Ovi5VGZQ3KxiXY9hd6NhEb2NcWNu2/mtt272fyEWFHpODlMxG0WUfZKMcMpxhbHqvrYxodfbSwv9H1Ld/p1P8A0npfzv6RR631PovQMcX9UyjW5wmrHrAddZH+ipn/AMEs2VKwM8BEXLWtdGA4ZWaGl90kJQhYN1uVh05N1P2Z17fUFBO5zGO91LbXQz9N6Wx9vt9n82jwpQbAPdjqi//R6D6xX9Qx+n+r0p9NWRuaHeqN52nT9CyW/pGrnas3602YRZZ1U15DrRcLamBpDWtLPs3t/wAE/wDnLPalaMzJqpdl0323k7R7txpDnH9J6jj9Gpuz6KakZlVjab632jtkMaQyR+bcyT6Lv/An/mJZcspHSxFOPGIjWiXSwfrP1LG6Re/qbftnWatwoZWw7Lmy30f5oNbvb+k9T+bVKr/GcW2DG6p0v7K+0hm8Pe0N3e3dtsbY13P76Fdhm1hrc/IIJgu0a4T+axzam+z+V/4IqdJtN/2V1GW2qpz2G+xrHVbBP2d9T3U/ztm36DvoKMSOui4xHd62/qfT8PGORk5NdWPUIdYXAzHthjQdz3Pj2LGx/wDGNg02usdjUuxjGwjIAytv77qXsON7/wDRttVduIwmRZYSNTLav/edK2Mf03tNl++xtRa4MhrX+19x9Khrv0aQl4JMPF23/wCMD6tsZRkOdkuGRW6yqsVDeGjcLH2TZsb/ADbm/SVGz/Gf0h5Apw7yyRNll1LC3X6fpNdY93/FrPx8pt2TkUV1PaKNgNjmQHEn3Gt30XMYpWFja33C+6QC8MYWdtdjG+kXJcfgrg8Xrx1/o7Ayx+ZWGW1WXNM/mVAWW7o+g/Z9Gt300uk/WPpfV7jX019zrGNFjvUpfUdjtGmsv/nNzv3Fy13S3041Vue4ltx/mTZVc2RB22Nqr/N3LPtycnp4fZgMymWAij7NW4hz2Wbv0mM/32VtRBO1I4eoL0H1w+u/7GZZhdJr+09Qb7brtu6nGJ/NsI9luV/wX0Kv8KvOul+n1P6wY9vX8hxquuD8vJvl5cGje2l+jttdzw2r9yqtWG4+O3Edl2dKvrq3loabbd5MbnvcyPo7js9T8+z/AItV2ZWDW8XO6blBp9zQXOLYafcR6gc16cCQQaWEWKt9iIL/AHghweNwc2C0g67mub7dqbYV5vifWTIxqaqsa+7Bqa8PrxcmpzWF8+r7bqf55tn+Eru9Nlq1/wDnn1+gzk4+PY0Qfax7ZB/PZayx9StDmY9QQ1zy8uhBf//SC/pmKPoOIJ7Ne7+9MOnVNH85aB4ixytuDWHbMHwCeAAZPPYj+KsSxw/dH2NeM5dz9rXHTTGl14/tlI4FjSP1rI8hvn8FbDARMRroSf4Byk3cCQWkjsY5CiOOPYMgnLuWj9iuDdMy6PEkEf8AUqIx8sGRnWgdx7T/AN9WkS3ktOneFGAHTB1TeCPZdxy7uZkYXUrdhZ1S1gHGgjy42qpZ0jrTy6OruI7BzT+UPW+Tydp2nvIj/NTzXzHuHiATHyThCKDOXd5odE6wyNnUmeGrXAfDlMenfWMBv+UK3bRDY3cf5hXSOuLCP0YduMl2g/6MlRc2ppLgzbPYnUf2DuR9sI9yXd5l+P8AWVp3DMa4wRydPL3M9qGLPrQ1wAu3RwHODm/9L81dHZsk7WwSBogOaOQ2T3AMpwwx8VpzScYH63kfzm4Dgeo0/wDVOSFv1tYI2jaeRLII/lAXLcZu2CA4eIOhUgNCdr4/OiSnfd4eP4f96t+8T8H/05PZkB28OboPzi7/AL6p1OJEz8Cf9qC4vBEPY13jAJj71HZlfmPZH9Uz+VWZFrC240tPmR2EGfkkHMaQBo4nUOEx+IVXfcwAWmrXncQD9wCT8qn6IDNwGo2kg/cmEWuum4TYCI2OB8AZ/wCqc1DLniR7te7SQNP5YZ7VUD73O2iljmd/T0Mf5zXf9FGDrhpWAHRoHgx83Nc5NqlwNsn5uMyA+yHd9Hc+b9j0qs3FfoHbxoZa0kT/AJqGLuonSxrXDuGz/wBUXKX2jJA1phvYOg/IJwH8rWkn+QZzjuJdIYXcgkA6eA9Ru1QYamglu93jALv836X/AFSTb8h3/aQx5QP+qTWixxaHVWb+4B0H4ohHl+SxdU7hrpI5cDz/AGoQvdOjRH3H7lElu73bh81DfXJDXAHydJ/KpAsJbQIiCSPiRP4p2BocXAy7xMfwQCS0Ai+Y/N3NEfDcFJj73HVu8eHt/wC+7U+1r//UGz0tvs/nO+6N0/20x+3bvZt2x7d0fjuXl6SsS2aw3/g+qV/bJHq7Nvlz89ym7kT6cfPn+wvKElGN/wDvWQ7f98+rH7Rr6e3nSP8AzJB/WIHr7v8Arcx5bvzti8vSTvs/7pb9v7H039N6b9vq+XO3+xv/ADkAftLc3Z9q/wCjt+Xqe1ecpIlH2vp1vrbB9t3bZ1mN3/R/QquPT3D0/V2eUxH/AFK85STo/RbL6/V9Lb638rbP50Qmd6kGfS51mV5qknrX0+v0tv5v9nd/FPp+bO3vG3/0Z7l5ekih/9kAOEJJTQQhGlZlcnNpb24gY29tcGF0aWJpbGl0eSBpbmZvAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAANgAuADAAAAABADhCSU0EBgxKUEVHIFF1YWxpdHkAAAAAB//+AAAAAQEA/+4ADkFkb2JlAGSAAAAAAf/bAIQAFBERGhIaKRgYKTMnICczJxwcHBwnIhcXFxcXIhEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEVGhohHSEiGBgiFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAWgB4AwEiAAIRAQMRAf/dAAQACP/EARsAAAMBAQEBAQEBAQEAAAAAAAEAAgMEBQYHCAkKCwEBAQEBAQEBAQEBAQEAAAAAAAECAwQFBgcICQoLEAACAgEDAgMEBwYDAwYCATUBAAIRAyESMQRBUSITYXEygZGxQqEF0cEU8FIjcjNi4YLxQzSSorIV0lMkc8JjBoOT4vKjRFRkJTVFFiZ0NlVls4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9hEAAgIABQEGBgEDAQMFAwYvAAERAiEDMUESUWFxgZEiEzLwobEEwdHh8UJSI2JyFJIzgkMkorI0U0Rjc8LSg5OjVOLyBRUlBhYmNWRFVTZ0ZbOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hv/aAAwDAQACEQMRAD8A9dIiTwoDYJi+o85BjSGibVoDGMjqFN3RdsOgbIvl5O8M6Kso5pRIYt2yRPycqd1cow8CoanV33gPMrWpCcFZCJcOdNIaiApFNUtNITSppUD/0PaSrpiGtvpbhScEpcGdF32gCmigvG1pOqrAwAAQSyZVoxucGiyWsVAEON3w6RgQbUgGTF3j9DIwyL0WrtXaRjijlnD04mUiAByw+L1f4kOt6uOCEqwYzuyS+zOWP/31ifcx/wA2InEGiLelbTqZtWNCVay7cETPJIRiO8izCQnESHBFu009DDTQqmlaQ//R9bqs8elh6kgSP8IeDH+MmUZShilYraJfbXP1ks8KiAI9/wDE82OYlpwfB1a+yJWu7PV6L8Tj1tjaYGHxCTcfxXpJGvUA/qEovjysWQDfjfxPBLpISu47SNfJJ5ybg+p9SMyZRIMTwQ55epxYK9WQjfD5GCWXBAQjZA/i2f8AbcJdNOUjMynuPe4KRB9Thy4px3YpCQ8Ync2ckMY88gP6jtfk49NGN5BM2QYk2xL8Ph2s1/T/AO/VIg+rx9RjykjHKMq/gludgbflMEJdLLdCwT7YNZo5swAlI7QTLbu/i/8AKmFSIPo/2TD6nqbI7/4trxfif4xi/Dxt+LKeIfw/+PfNH4hk6bp/Rx0JjieSXwx/9+PiT6eWQ7pGJJ5lu+JskOnpZZvxjqonMbjHzyj9iMY/7v8A8yP1z8b0ccvTz3wkIn2S+J9+P4vGNDLEg/bl/wDAnrSyRztVs9OleWH4n009BOv6gVevJdTnxZ//0sSCAImAoeBWRMzZhqOPM9BJPKu3RGFdmXqS7wP0uOSEMkt08crHte0Jq3PE1yOYZa+zJP7QB9mX0PTtZMXPEvI4JjHKO0idXu0QevgNdsg+iIrsbxHI82H4nCE9+3cRp5wjJ+JY8hJmDR+yH0vT91olgHgD8m8ScjxcuTps/wAYkaG0fv6TOWXTZQBUogaAD/40+ueniR8I+hyl00DzEfQ3iycjyPR6Q95gfv8A+UnaEsGPSE5iP8JO+P8A7rez9kx3rEN/smH+FvBk5o5Tl6aX2iFen9ixfw/eVXtsvNH/06J1oNA+DBjE9liaezOKNBomrLIl4JJLk0VXtQdGdDoQgHwclLGq34MkS7EfNz/mX2+9pDY252Y66tDepvwpoBd6uZtJmfH7mTO3SMsFW1TAIDYmPEOkZDEX3VIKtB//1J0lwLX04ns19l55c93qzkb+mBxakyHA+lxj/qeg/P5MGBnsMvY3t2jU2svm49+6YRcowJ5+9aA03UiXbhwyc9vmgdIG74ZLu2nWX3PHj57fJ6u3b/V8TQEzB+0iz73Lx4SP3pqMlX4hom+AQx37uw4/N0QmMfaqnnsqB//Z">
+ <animateTransform attributeName="transform" type="rotate" values="0;360;180;360" dur="3s"/>
+ </image>
+ <text y="60" text-anchor="middle">&lt;image&gt;</text>
+ </g>
+
+ <g transform="translate(420,90)">
+ <switch id="animatedSwitch" fill="rgb(230,230,230)" stroke="rgb(255,180,0)">
+ <g>
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z"/>
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(90)"/>
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(180)"/>
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(270)"/>
+ <rect x="-15" y="-15" width="30" height="30"/>
+ </g>
+ <g id="shouldNotShow">
+ <rect x="-200" y="-200" width="400" height="400" fill="red"/>
+ </g>
+ <animateTransform attributeName="transform" type="rotate" values="0;360;180;360" dur="3s"/>
+ </switch>
+
+ <text y="60" text-anchor="middle">&lt;switch&gt;</text>
+ </g>
+
+
+ <g transform="translate(60,220)">
+ <a id="animatedAnchor" xlink:href="" fill="rgb(230,230,230)" stroke="rgb(255,180,0)">
+ <g>
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z"/>
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(90)"/>
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(180)"/>
+ <path d="M0 0 C 30 0 30 0 30 -30 C 0 -30 0 -30 0 0 Z" transform="rotate(270)"/>
+ <rect x="-15" y="-15" width="30" height="30"/>
+ </g>
+ <animateTransform attributeName="transform" type="rotate" values="0;360;180;360" dur="3s"/>
+ </a>
+
+ <text y="60" text-anchor="middle">&lt;a&gt;</text>
+ </g>
+
+ <g transform="translate(180,220)">
+ <defs>
+ <font id="MyDecFont" horiz-adv-x="466">
+ <font-face font-family="MyDecFont"/>
+ <missing-glyph horiz-adv-x="233" d="M 50 0 L50 700 200 700 200 0 z"/>
+ <glyph unicode="1" glyph-name="one" horiz-adv-x="558" d="M458 716L100 534V428L357 552V97H241V380L140 328V0H458V716Z"/>
+ <glyph unicode="2" glyph-name="two" horiz-adv-x="585" d="M69 509Q82 523 102 541T147 575T203 603T268 614Q311 614 342 599T392 560T421 505T430 443Q430 420 423 398T405 352L343 201H444L492 309Q508 345 519 379T531 448Q531 504 511 552T454 635T369 691T262 711Q231 711 204 704T152 684T106 655T69 623V509ZM535 97H187L309 422Q316 441 315 457T306 483T287 500T265 506Q261 506 254 505T239 499T224 485T211 461L50 0H535V97Z"/>
+ <glyph unicode="3" glyph-name="three" horiz-adv-x="542" d="M58 553Q109 588 148 601T220 614Q255 614 282 604T328 575T356 535T366 488Q366 475 364 460T355 429T336 397T302 368Q311 363 325 353T352 326T376 286T386 232Q386 203 376 177T345 130T295 98T227 86Q179 86 134 104T50 153V45Q59 38 74 29T111 10T163 -5T231 -11Q296 -11 345 8T426 58T475 131T492 218Q492 251 486 276T469 320T446 354T421 378Q438 396 454 425T470 503Q470 546 454 584T406 650T332 695T233 711Q179 711 137 696T58 655V553ZM156 255Q156 229 173 212T217 194Q243 194 260 211T278 255Q278 281 261 298T217 316Q191 316 174 299T156 255ZM161 467Q161 444 177 428T216 412Q225 412 234 415T252 425T265 442T271 467Q271 491 256 506T216 522Q202 522 192 517T174 503T164 486T161 467Z"/>
+ </font>
+ </defs>
+
+ <text id="textID" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" font-family="MyDecFont" font-size="40" text-anchor="middle">123</text>
+ <animateTransform attributeName="transform" xlink:href="#textID" type="rotate" values="0;360;180;360" dur="3s"/>
+
+
+ <text y="60" text-anchor="middle">&lt;text&gt;</text>
+ </g>
+
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-37-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-37-t-isvalid.html
new file mode 100644
index 0000000000..1f720042bc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-37-t-isvalid.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-37-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-37-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-37-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="25" font-size="16">&lt;animateTransform&gt; shape elements</text>
+ <g transform="translate(0,0)">
+ <g transform="translate(60,90)">
+ <path id="pathID" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" d="M 0 0 Q 30 0 30 -30 Q 0 -30 0 0 Q 0 -30 -30 -30 Q -30 0 0 0 Q -30 0 -30 30 Q 0 30 0 0 Q 0 30 30 30 Q30 0 0 0 Z"/>
+ <animateTransform attributeName="transform" xlink:href="#pathID" type="rotate" values="0;360;180;360" dur="3s"/>
+ <text y="60" text-anchor="middle">&lt;path&gt;</text>
+ </g>
+
+ <g transform="translate(180,90)">
+ <rect id="rectID" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" x="-30" y="-20" width="60" height="40"/>
+ <animateTransform attributeName="transform" xlink:href="#rectID" type="rotate" values="0;360;180;360" dur="3s"/>
+ <text y="60" text-anchor="middle">&lt;rect&gt;</text>
+ </g>
+
+ <g transform="translate(300,90)">
+ <circle id="circleID" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" r="30"/>
+ <animateTransform attributeName="transform" xlink:href="#circleID" type="scale" values="1;0.2;1.5;1" dur="3s"/>
+ <text y="60" text-anchor="middle">&lt;circle&gt;</text>
+ </g>
+
+ <g transform="translate(420,90)">
+ <ellipse id="ellipseID" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" rx="40" ry="20"/>
+ <animateTransform attributeName="transform" xlink:href="#ellipseID" type="rotate" values="0;360;180;360" dur="3s"/>
+ <text y="60" text-anchor="middle">&lt;ellipse&gt;</text>
+ </g>
+
+ <g transform="translate(60,220)">
+ <line id="lineID" stroke="rgb(255,180,0)" stroke-width="10" stroke-linecap="round" x1="-30" y1="-20" x2="30" y2="20"/>
+ <animateTransform attributeName="transform" xlink:href="#lineID" type="rotate" values="0;360;180;360" dur="3s"/>
+ <text y="60" text-anchor="middle">&lt;line&gt;</text>
+ </g>
+
+ <g transform="translate(180,220)">
+ <polyline id="polylineID" stroke="rgb(255,180,0)" stroke-width="10" stroke-linecap="round" fill="none" stroke-linejoin="round" points="-30 20 -30 -20 30 20 30 -20"/>
+ <animateTransform attributeName="transform" xlink:href="#polylineID" type="rotate" values="0;360;180;360" dur="3s"/>
+ <text y="60" text-anchor="middle">&lt;polyline&gt;</text>
+ </g>
+
+ <g transform="translate(300,220)">
+ <polygon id="polygonID" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" points="-30 20 -30 -20 30 20 30 -20"/>
+ <animateTransform attributeName="transform" xlink:href="#polygonID" type="rotate" values="0;360;180;360" dur="3s"/>
+ <text y="60" text-anchor="middle">&lt;polygon&gt;</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-38-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-38-t-isvalid.html
new file mode 100644
index 0000000000..9e9c151298
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-38-t-isvalid.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-38-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-38-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" preserveAspectRatio="none" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-38-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g id="elk" fill="rgb(246,255,129)" stroke="rgb(0,0,0)" transform="translate(40 5) scale(0.9 0.9)">
+ <path fill="rgb(191,48,0)" d="M39.4 149.4 C31 156.2 21.3 167 29.3 177.9 C39.6 191.8 60.5 190.6 70.3 176.5 C75.8 168.6 70.3 138.5 87.6 140.7 C101.1 142.4 97 174.9 96.6 184.7 C96.3 193.7 95.4 200.4 91.4 208.7 C88.2 215.2 82.2 221.7 81.6 228.7 C79.7 249.7 104.5 239.8 105.6 222.7 C106.7 205.9 101.8 190.2 103.6 173.7 C104.6 164.8 111 154.2 117.4 166.7 C121.5 174.8 117.1 183 115.6 190.7 C113.6 201 109 229.3 120.9 236.5 C134.1 244.5 141.3 215.2 139.7 205.7 C138.4 197.5 133.7 189.6 131.6 181.7 C130.7 178.3 126.2 161.8 128.8 158.9 C135.5 151.7 145.6 168.2 147.4 172.7 C150.5 180.4 150.3 189 147.8 196.7 C144.2 207.8 130.8 231.9 145.4 241.8 C166.7 256.2 164.8 218.6 163.4 208.7 C162.1 199.9 160.3 190.6 159.6 181.7 C158.7 169.5 163.8 167.6 175.4 167.7 C203.6 167.8 180.5 199.7 179.6 214.7 C179 224.2 183.4 236.6 194.7 237.7 C208.4 239 208.6 220.8 208.7 210.9 C208.9 189.8 197 171.5 198.9 150.8 C210.5 146.1 196.6 133.6 191.7 130.4 C182.6 124.5 172.3 122.1 161.7 120.6 C146.9 118.6 132 120.5 117.1 121 C110.5 121.2 104 121.4 97.5 120.1 C92.3 119 86.5 117.7 81.2 119.2 C77.7 120.2 71.6 122.5 68.6 124.6 C65.9 126.6 64.8 130.2 62.6 132.8 C56.4 140.2 46.8 143.3 39.5 149.3 z"/>
+ <path d="M165.2 86.7 C184 67.3 201.2 47.5 188.2 19.7 C182.1 6.5 153.5 -12.8 154.5 13.9 C154.9 24.4 160.7 29.8 165.5 37.7 C168.8 43.2 172 60.8 158.7 57.6 C150.8 55.7 152.3 40.9 139.5 47.8 C130.2 52.8 133.8 60.1 138.3 66.8 C142.2 72.8 149.3 79.3 141.5 86 C134.6 91.9 126.9 84 127.3 75.9 C111 72.5 123.3 89.9 124.3 95.8 C114.3 103.2 117.2 93.4 111.2 90 C103.8 85.6 97 92.4 97.2 98 C97.4 105.8 105.2 105.2 96.7 113 C94 115.4 90.6 116.8 87.2 117.7 C85.5 118.2 83.8 118.6 82.1 119 C81.6 119.1 77.9 119.7 79.4 120.6 C80.9 121.4 82.8 120.7 84.4 120.7 C86 120.6 87.6 120.5 89.2 120.3 C92.5 120 95.9 119.5 99.2 118.9 C106.1 117.6 113 115.9 119.6 113.6 C126.4 111.3 133 108.5 139.3 105.3 C145.4 102.2 151.3 98.5 156.7 94.3 C159.7 92 162.5 89.5 165.1 86.8 z"/>
+ <path d="M56.8 120.4 C57 120.6 57.3 120.8 57.5 121 C59.3 122.4 61.8 122.9 64.1 123.1 C65.3 123.3 66.6 123.3 67.8 123.4 C68.3 123.4 68.9 123.5 69.4 123.5 C69.7 123.5 70.5 123.3 70.8 123.6 C71.2 124.1 70.4 124.4 70.1 124.5 C68.8 125.1 67.3 124.7 66 124.9 C65.1 125 64.1 125.1 63.2 125.2 C59.5 125.5 55.8 125.8 52.1 126 C48.2 126.2 44.2 126.3 40.3 126.2 C36.4 126.1 32.5 125.8 28.6 125.3 C25 124.8 21.4 123.9 18 122.7 C14.9 121.5 11.8 120 9.2 117.9 C6.7 115.9 4.6 113.3 3.1 110.4 C1.5 107.1 0.7 103.3 0.6 99.6 C-0.1 81.8 22.3 81 17.9 99.6 C16.6 105.2 10.2 115 18.6 117.6 C28.6 120.7 26.5 109.2 24.8 104.7 C27.7 104.2 31.6 104.2 34.5 104.7 C34.3 109.3 33.6 117.7 40.6 117.6 C47.8 117.5 41.5 109.7 49.6 109.6 C57.6 109.5 53.3 116.4 56.9 120.3 z"/>
+ <path fill="rgb(255,255,255)" d="M71.5 129.8 C72.3 131.6 75.3 131.5 75.4 129.3 C75.5 126.5 70.2 126.8 71.5 129.8"/>
+ <path fill="rgb(255,255,255)" d="M80.1 130 C82.9 127.7 78.6 125 77.6 126.4 C76.6 127.9 77.6 132.1 80.1 130"/>
+ </g>
+ <g stroke-width="5" fill="none" stroke="none">
+ <rect fill="none" x="0" y="0" width="300" height="300">
+ <animateColor attributeName="stroke" values="green; white" begin="1" dur="0.2" repeatCount="5"/>
+ </rect>
+ <rect fill="none" x="100" y="100" width="100" height="100">
+ <animateColor attributeName="stroke" values="green; white" begin="3" dur="0.2" repeatCount="5"/>
+ </rect>
+ <rect fill="none" x="0" y="100" width="100" height="100">
+ <animateColor attributeName="stroke" values="green; white" begin="5" dur="0.2" repeatCount="5"/>
+ </rect>
+ <rect fill="none" x="200" y="0" width="100" height="100">
+ <animateColor attributeName="stroke" values="green; white" begin="7" dur="0.2" repeatCount="5"/>
+ </rect>
+ <rect fill="none" x="100" y="0" width="200" height="200">
+ <animateColor attributeName="stroke" values="green; white" begin="9" dur="0.2" repeatCount="5"/>
+ </rect>
+ <rect fill="none" x="0" y="100" width="200" height="200">
+ <animateColor attributeName="stroke" values="green; white" begin="11" dur="0.2" repeatCount="5"/>
+ </rect>
+ <rect fill="none" x="0" y="100" width="300" height="200">
+ <animateColor attributeName="stroke" values="green; white" begin="13" dur="0.2" repeatCount="5"/>
+ </rect>
+ <rect fill="none" x="0" y="0" width="300" height="300">
+ <animateColor attributeName="stroke" values="green; white" begin="15" dur="0.2" repeatCount="5"/>
+ </rect>
+ </g>
+ <animate attributeName="viewBox" xlink:href="#svg-root" values="0 0 300 300; 0 0 300 300; 100 100 100 100; 100 100 100 100; 0 100 100 100; 0 100 100 100; 200 0 100 100; 200 0 100 100; 100 0 200 200; 100 0 200 200; 0 100 200 200; 0 100 200 200; 0 100 300 200; 0 100 300 200; 0 0 300 300; 0 0 300 300" keyTimes="0; 0.1; 0.15; 0.2; 0.25; 0.3; 0.35; 0.4; 0.45; 0.5; 0.55; 0.6; 0.65; 0.7; 0.75; 1" begin="0" dur="20" fill="freeze"/>
+ <text x="5" y="240" font-size="14">Animation on: 'viewBox'. Flashing frame should</text>
+ <text x="5" y="260" font-size="14">only appear at the edges of the SVG element.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="298" height="298" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="298" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="'Arial Black', Arial, sans-serif" font-weight="bold" font-size="20" x="150" text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-39-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-39-t-isvalid.html
new file mode 100644
index 0000000000..44cc438c7e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-39-t-isvalid.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-39-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-39-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-39-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="25" font-size="16">&lt;animate&gt; on xlink:href</text>
+ <g>
+ <g transform="translate(60,90)">
+ <text text-anchor="middle" font-size="20" y="10">&lt;set&gt;</text>
+ </g>
+
+ <g transform="translate(180,90)">
+ <a xlink:href="animate-elem-38-t.svg" text-anchor="middle" font-size="30">
+ <circle r="30" fill="rgb(230,230,230)" stroke="rgb(255,180,0)"/>
+ <text id="initialAnchor" y="10" fill="gray" font-weight="bold">38</text>
+ <text id="anchor1sto2s" y="10" display="none" fill="gray" font-weight="bold">02</text>
+ <set id="hideInitial" xlink:href="#initialAnchor" attributeName="display" to="none" begin="1s;showAnchor.end+1s" dur="1s"/>
+ <set id="showAnchor" xlink:href="#anchor1sto2s" attributeName="display" to="inline" begin="1s;showAnchor.end+1s" dur="1s"/>
+ <set attributeName="xlink:href" to="animate-elem-02-t.svg" begin="1s;showAnchor.end+1s" dur="1s"/>
+ </a>
+ <text y="60" text-anchor="middle">&lt;a&gt;</text>
+ </g>
+
+ <g transform="translate(300,90)">
+ <image x="-30" y="-30" width="60" height="60" xlink:href="data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACWAPADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCeSMqeDUDsy1YkPzHNRMFYcVZkQiQ0MA9IyEdKi3EGmBNGm1s4qfft4xUUL+tPlyTmkApYOORUDwgnNSbyKazmgCExBKjZgOKfIfeqsmexpgS5pjPimKSOvShsUAO3UhamZwaM0XAUtTC1ISaYxxQIcZKUMDVctQJMUwLOQBUbPUfm571Gz0ASmT1pPMqAvTd+eKALHmVJG/FU2bpU8bDbQIsb6XfkVXLUm+gCcmmlqhLn1qNpTQBK0mKhaQ1E0hNRlz60DPdL3wtZSJuhY7vTFc3PogiLjBG2vR2RSN2eTVeS0jlydoyaxUjSx5dLYsoJ/Kqb2slej6h4YF1h4GEZA+7jrWHL4WvwTiLOKrmQrHGEMnFKrO3Hauqk8Iakwz5OfxqhPoF5bMVeI5HpT5kKzMXGDTTkGrU1u6HlGGPaoSuTRcLEDsfTNVmOauPGeMVXMYGRRcdiNVLew9aQxndjmpFyv0p/BpXHYrMpHQcUzNWG7iq7DFFxWGsaiZqcTUT5qrisNLU0tUbEimbzRcViQsRTC5phehW5p3AC5HXikZu4NIzgnBqMnkgdKLiLAk+TFPWYYxVUA460hYgUXAuebR5lVN+B1o83FMCyZKjZ6rmamGagCdnpuc1B5tAlFAH0/DMjBdzLgjPXn8qs74UVT5sY3HjkcmvNzeloEAY7lGDk1SmuZe7H86x5DTmPWTIoH31Xd709rmOEfPnIHXHBryOLUp04ErD8a0f+EguZLI27uSOxPUUuRhzHdNqINwGS4/dsfmTris3U5YZpd0Qf8TXCNfyq4becjvmtXT9euFYKyLKvcMKfLYL3NJ0Vuqg/UVUl063kB/dKCe4FaLSxTqGjj2e2c0wKaZOqOautJ8rkDcp71Rl0wldwGBXaiHdxjNB01JBgp+VJstHnxsip6UGzbGQK71PDTSyYjbI9CtWo/Bs2QCY+ffpWUp9jWMU9zzNrZh1FV5bc+len3PgmfaTHtY+max7vwffopb7MxUegzS9o1uh+zXRnnrxY7VA0ZrqLzSJYAd0bD6isO4gKk8VaqJkODRmOBUDAVPMCCaquSK0TIcRrtUXmEUrZNRsrelO5NhTIKXzRVdgRTc+tO4rFrzeKjL5qEvSZOKdwJGkqNpsVE7EVCz0XETtNTDNVctSUXAsed70omqtS5ouB699q96YbgNxmszz885qNpiG4oEavmDGKYZSOhrPFz60puPemBdMmTyc1agvFj6dayPPFAm9DSsO508GrumMYrWj1qMoPlG761wq3BHep1uXxwamw7neW2uxo+JVA9CBWzbatp/mI0rAq3pxivMFuXPerEVy4P3qhwRopntdv9nkUSQFGB6FTmpq8r0jV57KdSrttyMgHrXo1jdG8jSVJAUI5XPIqb8ulh2vqXqKKK0IK13p9texGOeFWB74rz/WvAUxkZrRQ6H07V6GblN5VQWI64oS6jZyhO1h2asZKDejszaLmlqtDwe/8K3UDHK9KxpdIdPvDFfQ89vpVxIwljgZ26lh1rnPEPha3kjBtLYAgc44FTzOO+pVlLbQ8Re0EYORUOwHjbXa3+gyRKzPGVA9a564tthIxWsZpmUoNGHLb9TVKSMrWvMhFUpVPpV3IsZxHNDNxgVM6e1QslVcViJue9QsKsFKQx0CKpBpOlWNpz0o8lmHAoAr5pc1aSwlkPCE1bTRbggfu2NAHSp5i9cUrPgVrLaof+WfNVZbdQ+Gjz9KLisUPMphmwetbUGjwzpyShP6VI3hZGK4vVBPXK8CjmHYwhL707z/Q1sf8IlL2vIf1qGfwrfQjKFZe/wAtHMg5WUllyKk+0EVHJp97CcNA59wM1CySg4KMCPUUXFYti4NWIrk+tZYdl68VNHLzSKSN22uG3A5NdVomoXNtKkiSlVzyPauDTUbO3dUnuIo3borMBWlb6/ZRswe6jTYdp3naM/j1rOSNIux7jbXcN1CssbDB7Z5FNmvIolO7dxxxXkUHj3R4ZAqagnTqARz7cVcX4j2Hli6e4nVNwQ74zjnufb3qOaTHZI6++8SPBKwFsEHYkdaxG1xjKXEh3H3qvfeIbR0Y3N5aokgyod1H5Vz8txalfNW6iCZxneMZ+tNRT3DmZ0iX09zOziXGBkjPXFMn8S3suY2mfaOwNYEN5H9n81Z9iMSqsT9/tx696jaRVjaRpokUfeZnAA+pp8qFzM15tSMibZlDg1hXllBMxKOR7EVTk1/ToLe3nnvEWKckIxz261W/4S/SI7l4ZZoNgAKSiQMH9RgdOtJRS2G5t7kVzp7rkqcismaFgeRVi/8AG2kxyokLGQM2GZBwo/GsmfxjZeaQsO+PnnJB/LFWibkjRjPSm/Zy3RKx7vxfv/49rNU93Oaz/wDhJb8H/WAY6YGP/wBdMR1JsWxnbUJtD3WufXxRqHmFy6MD/wAs9vA/rW1Z6/ZXD26zy+SZGKvu6JgdSfQ07isXYNOMhHyHHsK0Y9EUn5GGR2NVrvxxpljA0dknnuhATPCsPXNUJfiOxjBjsU3kDq5wD34x+XNK7DlOqs7VYX+WBSR61PPkj5uPYVwM3xB1F5SYre2jQjAUqTj3zmqM/jDUpY8C4KsR8xCjg+3FGo7HrEdwv8P61YWQ9SBiqxhsIb6Kza4HnSqXUYPQf5P5VOwsbS3upLq+j/dhmVN4U4Azjmi6JsyQsxG8Y/OpIZ3m+R+Rn1xWZL4j8O2OjRXpvIp7hkVvsqSqzKSOh+nes/V/iBolvGz6ZEk86kY3h1B9ccUuYq1jsF+zFcbXVvXORWhZ2M0jYWQFOxzkV4tffEzV5XkFvHaxIRhWER3D82IqhbfEbxLbyB/t4YLkhWiXH6CpalbQtNX1PdNQENusrzybNoJztyDxxyB3rhNV8ZaRbQuFheWUj5DjaD/X9K8y1PxLrGsuTf6hcTqWLbHc7R9F6CqcZ3OM80JNIXU6q/8AFl1dogtI1typyzcNn25FZ8muapLuzd4yMfKij+QrP59KQjHWldhYa13dCYyNK5cnO7POfrSG4dslmJJPNRuwZT7VEHFVuIs+aaa0p5wTUYYnpSEHqQaVhjjKcdaDM5Xbk49M1F1oyfSmIe0zkAFiQowAT0pnmtyAxApDyM0zApgP3EjqaazcUH5elNJoAaTSFqDSUwDdTaO9GOKAD+VGaM8YpKYDqKTPvRmgB2SKaTRSHpQBoTXt5cyB57mZ2HG53JxVfcWbG+vRZNNsZUAkt0K/e+YHrVc6JpbAf6Ehz0IyKCbnCKuO5p231JruP7E0zBzbJgdfmPH601tE00/dthn/AHm/xoC5xDKvZj75FRHA9PrXbNomnA8W5HH981EdD05j/qj/AN/DQHMccM+9WrZgDgjntXS/2Dp/aJ/++zR/YtiuMI4P+8c0mrjUjDLtjOOKjZmP0rffTbNE+VXJ9N1EWkW03WORT7sKiw7nMOdoNMT5m7j1rso/C1vO3MjAZwMHOa1NP+HtvdsoW5I3gENjIpOpGO5ShJ7I4IMMYHFLgHAzz3r1uL4P2rKS2pENzgbCMn8cUyb4VWEPJ1FiMfeGCM/gay9tDuaeyn2PI5UAwV/Koeetel3ngPT4CQL0kYz82Af51jSeGLJM7Jy2O/StI1IshwaONPTJBNIsbsM4OK6d9AgDEZOKfBpVtBuDJnjjJq29NCDlXBXr+lM2n0rop9KtyxIX9TVc6dAvGz9apCuYRBHem4OO9bhsYP7lJ9hg/uUxcyMPn0o/A1tmxg/ufrQbKD+5QHMjEo4rZNjAf4f1phsYM48tvrziiwcyMmjFaxsIB/AfzNJ9jgH8P60BzIyiDTTxWr9lhx939aabWEn7v60D5jvPMLEDG9c5xtzj9aTMxxtBAPXA5FM2yDlZuOmM/wCAoInONzp7k5oIHNCXGGyfrzmkEW1cjP600RlckTAnPJ3daBIATudyTwOn5Uhjdw28cj1I61EzEMdx2jvyP6VO7K+FLLnPQn/Cojhckuvt83+NMGG3IGORjseRSFycLhgcYwf/AK1ROA+0CQY7ndmkjXYpETqc9BvJoET5kw3G/wCnaiPerYZl+h7fz/lUexmxtbkcnDEf0qaBXbA37SOSwPbtUsuJqWkjAKfMKg84GP8AP4V1ulWaTywsty5c/KcFuM9+D6etc5a217wIIl8tgAXYYAPXrg811NgbuO3dN0yuDx5TBR9STnofpXFVZ2U0bB2WiYNxwPk+8VCe5Bb+Z/KoiFETPayo8GfnbBIB6HgY7nr7VqCO4FlHI9vdGfaN0v2mNdgz6nGB+tU5hIYpJWjicsBmVJ0JI5Gdy/1zWFja5yuphoJn2Mp3ccRcj3weT/8AXrmr53OCeVJI5Qiuk1SCJpI/LkuEduVEeBz6bsA/l+NYFzatuSNRIqYyD5mc++StdFMwmY0yvkHcB6Z//VVNzKe5/E1eeHaXkEko74ZVOPpxVNuR8+T6/d/pXTE52VmLHrx7VBLnGc1LhS3Q4HrUUuMVojNkJJ9qQUE+lMzVEj80mabnPWjpmgBSaaaM5ppNAgJzTSaMnv8ApSE5NAxpNITRznGePpTT9f0pDOzbMeAsasPRmP8AQUfIGy6rgnquT/SociRM4IHokf8A9fNIpAHLOQOMYyKBFjY3O1VK+7Y/pQ3AIXH54FQiT5QAsjHrkjA/PFMkuiv3lAXPJYhR+HNAyUgqcEoAenem+WVbkHb7etVJJlL7oU3Hvtbr/jTPtJ3/ALxYoh6SOOfwoAszADHyhCOhxz/OkDcA/Mw75O0f41Cwt8h2iXI7quf5ZpAIw29Rj6gj+dAizh8kpGioT134P8quRxr5gaUEHHeXkj6nOD+FUgQcKY5H3cDbz/WrFu6RzbzPiRzjPlud3PJzzUSZpFHR6YJkkUQmZiOTHK4YBe/GMEf5wa6PT3AKpZt5sSNmRZAYmP4bea57TL6ztrp0ku/MRR8ojtmBDY/hIHXjk961LTxH5kbwqr+dsJDNHODuIP8AdHPOeCMVxTu+h2waXU68HUtryWpgYAYEUriTH0GAV+gqtcNqgjUmxtwSoD+XO6que5AQ/wBPxzWJNaC809mkURLt2YH2iLJ654znp3B7UQ2MMcI8vUb6SVU2BopC8n4EqD9M/wD1qyt3LK+qWstxGy3V3LK2MILd3Axkcnt2/KuYntoLJWtpLRmIO4FQWJP/AAIjity60+aMSKL67kBUbkkk3BjjPIMTZrMe2t1sWRJn3sG2iNN/Ab/cAwORnA5raDsZS1OflmkjY7rCTG3gJEmMe/P9apySg5PksMdeB1/CtKZGA8pzJweoTB/+vxWPKjHAjkuGDD1PP6V1ROaRFLIoJAjYc1Wdtx5B/GpHDA4eTOfUkf0qBgAfvc/jWqMmITjtgUzdz1FKSfqKYeRnFMQ7PNJmm5Pekz6/yoAcTSHmkzSZoAX6HFN6Um8HvmgmgAJPpSA0lJuOSMEUhnWpAVJCJEM8Z2AfyFVrm3cxly21ccgMeg+mKKKCRY4IvKDCNSo7Hn+eaHRbcFhCgwMkK2Pb0oooGRP5QI326sTwPnNMVLUSErbjOeh6UUUATIsTqc7wM9AelBgiWNmCbgP7x70UUDKwlt4jkxFivJJAresLkTW8twYd4jXP+sKHrjsD/k0UVEldGkXZ6F2yne5PlLugDjARX3pgezDg/nXX2HzXS2gjEkhUOqySMI24z8w57e1FFcdXex1U9rl+GDVFcNZQWUEkxJVvPkA465CBc9B61japp3jGBWVNbtTF5WXzH82D77ST+dFFTFJMJSdjBNvrJuUtry7t7kQLkFlIPQnGRjP3epqp9g1YiW6E1pDHCmfLi34OTjr17+tFFboybdzHv7y/uLl55JUl52AtuXgcDgHFZpkmkXcywj5scKT/ADooreKVjCTdyCVmJwZGAPZQAKYVZcKDRRVEkbsQeSSTTCc8UUVQCZpM0UUgAg/hTM0UUxDHlCEAg0gmDHABoopFBvyO9LuJoooEf//Z">
+ <set attributeName="xlink:href" id="imageHrefSet" to="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEASABIAAD/4RX+RXhpZgAASUkqAAgAAAAJAA8BAgAGAAAAegAAABABAgAXAAAAgAAAABIBAwABAAAAAQAAABoBBQABAAAAoAAAABsBBQABAAAAqAAAACgBAwABAAAAAgAAADIBAgAUAAAAsAAAABMCAwABAAAAAQAAAGmHBAABAAAAxAAAAGYFAABDYW5vbgBDYW5vbiBESUdJVEFMIElYVVMgMzAwAAAAAAAAAAAAALQAAAABAAAAtAAAAAEAAAAyMDAyOjAxOjE1IDA0OjQyOjU4ABsAmoIFAAEAAABWAwAAnYIFAAEAAABeAwAAAJAHAAQAAAAwMjEwA5ACABQAAAAOAgAABJACABQAAAAiAgAAAZEHAAQAAAABAgMAApEFAAEAAAA+AwAAAZIKAAEAAABGAwAAApIFAAEAAABOAwAABJIKAAEAAABmAwAABZIFAAEAAABuAwAABpIFAAEAAAB2AwAAB5IDAAEAAAAFAAAACZIDAAEAAAAAAAAACpIFAAEAAAB+AwAAfJIHAJoBAACGAwAAhpIHAAgBAAA2AgAAAKAHAAQAAAAwMTAwAaADAAEAAAABAAAAAqADAAEAAABABgAAA6ADAAEAAACwBAAABaAEAAEAAAAwBQAADqIFAAEAAAAgBQAAD6IFAAEAAAAoBQAAEKIDAAEAAAACAAAAF6IDAAEAAAACAAAAAKMHAAEAAAADAAAAAAAAADIwMDI6MDE6MTUgMDQ6NDI6NTgAMjAwMjowMToxNSAwNDo0Mjo1OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAPUAAAAgAAAA1QAAACAAAAABAAAAyAAAAGQAAAAKAAAAAAAAAAMAAACs3QIAAAABAP//AADoAwAAMAEAACAAAAAMAAEAAwAmAAAAHAQAAAIAAwAEAAAAaAQAAAMAAwAEAAAAcAQAAAQAAwAaAAAAeAQAAAAAAwAGAAAArAQAAAAAAwAEAAAAuAQAAAYAAgAgAAAAwAQAAAcAAgAYAAAA4AQAAAgABAABAAAAcVYQAAkAAgAgAAAA+AQAABAABAABAAAAAAAEAQ0AAwAEAAAAGAUAAAAAAABMAAIAAAADAAEAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAwABAAEwAAD/////BgKtACAAdADVAP//AAAAAAAAAAAAAP//AABABkAGAgAwAdMAngAAAAAAAAAAADQAAACPAD8B1QD1AAAAAAAAAAEAAwAAAAAAAAAHMAAAAAAAAAAA//8AANUA+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAElNRzpESUdJVEFMIElYVVMgMzAwIEpQRUcAAAAAAAAARmlybXdhcmUgVmVyc2lvbiAxLjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAPQA9AD0AABqGADOAAAAgE8SAJsAAAAEAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAEQAwABAAAAQAYAAAIQAwABAAAAsAQAAAAAAAAGAAMBAwABAAAABgAAABoBBQABAAAAtAUAABsBBQABAAAAvAUAACgBAwABAAAAAgAAAAECBAABAAAA9AUAAAICBAABAAAA7g8AAAAAAAC0AAAAAQAAALQAAAABAAAA//////////////////////////////////////////////////9//////////////9j/2wCEAAkGBggGBQkIBwgKCQkLDRYPDQwMDRwTFRAWIR0jIiEcIB8kKTQsJCcxJx4fLT0tMTY3Ojo6Iio/RD44QjM3OTYBCQkJDAoMFAwMFA8KCgoPGhoKChoaTxoaGhoaT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT//AABEIAHgAoAMBIQACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AOxApcV7J5goUngDNIVweaBC80oYjvRYLseszAY60FjI3c1HLZ3L5r6DjG46jFRFjTVmJtoA5qW3j3vuIBAokuVNgnzOxpKVA5xUNyY3TB4Fc0b3Oh2sZbqAxx0pMV2pnG9xNtJincA20hWmBMBT1XJrJuxaLf7pU4wKqScuayp3vqaTtbQABjmnRJunQdiRVtuz8kQlsa0kUUg+ZFP4VVeyUNuiJB9DXn060oabx6o7Z0oy12l3I5pMDawwcVTIrupbX6PY46u9uq3ExT0kZBxWrV9DNOw4zue9MZi3U0lFIbm2NwKTFUIMUmKYgxSYoAmAFP2+9Z3NLCbaTbzRcmw9baR13KpIp8ETLcpuUjnvWcqsbNXXMk9DSNOV07aX3NInFNPTmvLO8iljWVcN19az2hZZNmMkniuzC1LXg9t0c2Ihe0lv1JZrGWEZIBX1FV8V1U6iqK6+aOacHB2fyYYorQkMUmKYgxSYoEGKTFAyYCnYrM0FCM33VJ+go8mQfwN+VS5xWjaTDlk9kzSRBHGq+gpoO6ZB6mvLk7tvuz0ErK3YlkIQVAz0hkZamhlWRXIztNCdtVuDV9zRDBlBGCCKz7uyO8NCuQeoHatqFTkld/C9zOrDnj5rYYunSn7xVfqaf/Zn/TTn/drpli4p6Lm89jnjhn1dvIo3TRWt5HbGQNNICwUdQB3NGK3pVPaR5tvIyqQ5HbfzDFJitDMMUYoAlxSgVmaGlAAkCjvjNKeTXlzd5N92ehFWSXZCHmoyQjBj2qGUMkn3GojJQA0yUKGf7ozQBbtd6x4fgZ4qxmhMGGcCsjxP4ktvDGiS39yQSPljjzy79hTEcN8P7y51mbUNd1KQGSZxGrHgDP8ACPyFdtivRw1vZ6dHqcNe/P6rQcIXPRGP4UxsLJ5bEB8Z298etbc8b2ur9jLkklezt3DFGKsRLQKzLNFJULiPeofGduecfSiR/wB4qD6mvIb/ADPSQuPWqt+3lxKfVgKT2AqmSk3E9KALUFkW+aTgelWtqhhGgx647Cj+kBI/3Pl7UwOCMijqBICGXNcj448Ax+MfLkN/NbyQqRGmA0fPcj+tMCPwz8PRpWnWcN/ePKYG83yovljL+p7nH4V1sjQWcLSyFIo0GWduAB9apSaVk7J7onlTd+q2Z5n4x+MKWxa08PKJW+610w4B/wBkd/rWr4Es7pdE/tDUpHlvb7EsjyHJ2/wj8j+tb4WN537IyxDtC3dnSYpMV6Jwkt8sktm6wSLFMynY5G7afpXkl3Y61qVyY7zVrkxkncN52kewBx+lediJuKWrSfQ76EVJvRO3Ut6zo0+p3Ed19rc3MUYRC3QADjGOhrofCGvz6bpPk61cyTXab9ryMWLDjA3f56VxKVzqcbGA/wAWdZtrly8CGLcdvm2xAx9Q2f0rc0P4lDxPKbae2t4XjXzN0UrENj/ZZRj86p/CQtzoZryKCJpZpFSNeSxPArk7z4iTC/UaMtkYUJ3SXT43n0AH86Fq7feGxq6Z8VbOWdLfVbY20zEKrwSCaMn8OR+VXbn4laFp9xLDJJcSzLkuIoSQvtk4FNiSuZU3xhtCT9i0i7nHrJIkf9TWx4Y8YxeIIpC8Is5g3+pMofH48UPa4Lsak3iTTbGyuJ7m6RI7Ztsp67T9PxqDTPG2ia7c/ZdMvBNMRu27COO55FF9ANHV9Zs9D097u+lEcSD8WPoBXhPjf4g6j4puWt4w9tYqflhBwW929aa19AMTw9aW93rlnDqEghtjMDIzdMelfREQR4lMJUxkfKV6Y9q7sK1Z9zkxKd12HbKPLrsucyRxsuuXeq25SOUKu8gPESpOPftWMblrWcLJueI/dmHI/E/1rw61R1Ja9NkevSgoR069TQVy6EoVbjiqsy3ZiO+GFXGNoEpIP47axNSgEvPNEF2trI0udqtKRkAc8bKbaaVGkpntbK383JV2W4ZcH0+7zVXttdE2vvZly4tLq8h8q5t4pIyeVN45H/oFVR4cjwB/Zdpjtm6f/wCJpKVurHy+SLFto2m7leK3iEqHBKMTtYe9OGmafcM8hgjkdnIdjzn1pOTGoortoMIkbytNsiueCzkE/wDjpp8FobWbZb2llE57JMQf/QafN5sXL5IfPo8l4jR3SoiH5iEkLZYdCQRin2tzc6FeR3S+XIkYwX+6Rn17VUZW03RMoX12Zj+JdQufEOprcXOr26LH/q4lOQtZc2keYd0uqQMQOpQZquZ9mRZdyGDRx5+WvbfAPH3Rmuy0XXLzw/A/2cG7gJ4QPuVfy71pTquDvYmcFNWbNmx+JFoqyfb4pyxclfLjXCr2H3ucetaVt4+0W4OPOkiP/TRMfrXbHFQe90zklhpLazRyMNxZ21v5K288aHPApIb3TbW0S2iSZUUbQCCePQ15soy6pps7ozj0asgtLnTbIsIXmVDzsIOF+lWDqliwO6duTkEjpUtd0ylLzRQ1KPS9TMZkvZImiyFaNtp5x/hViyfT9Ph8q3uiUzn5jk/nQ2rWBb3Lkd/bYybhT7U4X9sDj7SnHvU6FXZS8i3NvPHHqAjMzM+4EAqSe1Q6fNp+kWotZNTEzK2Q0jYNVvsTe2uyJW16yQEC+gbHvTtN8S6PaXsk1xHFdyOVKlwMIADkA571SjZ9/IHJNb2H3niawu7xpYpEgjzxGqggD65rOnbTjayQx3yqkyjOV3EHGOxH5UW12Fdd9jMtvDmhxXsdw140qoM+U0eVc+/tTNV8PWd/J5kV4kSseALfvgZ6DNac2mxHKu5WPgm23AW+qOwZQDut2Xn04zxnFT2ng9LEiSLWbm3nGdzRWz4Ht2zS5vIfL5mja2chB+33kF1nAz5Tow/HFOm0mFoSI7xAwPyoyEjHfnH9PWpv6jS80dK8cJGdwz9aiFvHnOBXqSVzzouwvkJnBVc/SnizQ/8ALMflXPKKNVJgbCIjmMflUf2C3brEpH+7kVm4ItSGtpdqRzBHj12CoG0mzbAMMeO3FR7MrmFGkWfCmEfhUM3hyykk3FXBPo5oVJBzsrt4QsHck+aPo/8A9aoz4K08E/vJP0P9Kr2fYnnI5PBViQQJZF/Af4VA3gi1B4nbp/cWj2TH7Qhk8GQAACZuneMCq0vhDYMpMufdf/r1SovuJ1UVz4WlLcNH9cH/ABqQeDLhjlZIPx3CmsPJ9SXWS6Cnwhfx/ceL8JmH9KP+Ea1ZD8s34i5Yf0p/Vp+TBYiPmd35eOgIoAJHBH511M50O29C4U47mnhQykBiT6BqxZqhwJTG4N9OtSrtY98+/Ws5eRcfMCgJzj2yKjaMZ64x6VCZTQ5VULyfxNIGRgR5gb2NUri0HeUj5GUcdhjpQzIBhlyvrkD+tUtfInReY37RbO2zcPTOajaKFXz5hI+uaaUkDcWRzRIVzge2BVaXYCBzitY/kZSsvmQmNQc5qSEAg7cH29K0iRIcSGGGcj2yKcANuA/Hck5NWQSzzKR8u/B6hRinIwAA+bH8qybNUSD/AH2A9MnFPDYXA5H51k0aIRkDMA0av6e1SCFduCij6VnJtFJJiGCI9ET64puVU4wc+oBqE2y7JApTdtXeD64OKcx6DJB9s1RIi5ZuCAMdQc0hWRELABiO3JNVdE2ZD+9UBinPcBj/AIUiXEj5DAoMd8mrsmTdr5jHBA+VcH1AzUTKyj69+laRsQ7kZXPynDe2KdHDGP8Alnj8K0RmxzBAOij0HSnxIsikMiqPUNVCHS28RxvJJ+tMEaRP8oOPUtmsWaIsIePf2pySgdT9NwrFo1TFNxs5YoR2waYssLO3mJHk9e+aVn0uO662BhCWyhUevz8flTiM/wCrOf8AgVRfv99i15fdcbmVcMUZiB0UgioJL64QkfZZAPUNVxSe1iJSa6MbHfSsQVtnXuS3FTfanYjfGoxxgfMavl8yObyHl02kLGcn/pkaYJJBn5MA+vGaSXdjv2RCbmYEqVXPs1NeUsvJXPrWkUlsQ5N76EQjycb2+meKsIDj1x6CtIoiV+o/eQvfHuKA/wAvYfhVkjC0gHVQfXFRkXDYO9GI6DFYNmthn+mZz8uP9lQamjmuVA/csffgVDsylddCdLhgp3oE79aie5lxhFWQexJqeW3Urm8vkVvt8gfbIoA/3CDVhJVxlCg+oNJx82ClforoZNdXce0pFGy/3gc5pq307H96kZB7KDQoIHN9kSf2gVOFXr2KkU7+1sAB1z9Oark8xe0EXU4n6RsD9KSd4WQFhz24zTUXHzE5KXkQOY9uMNjsNtIEj2/xfTbjNap+RnZdxu1edq7f6frT0hdlyJG/4C55ql9xLEMjxcBps/gc09LknO/cfZkH+NNaAOUTyjLsY19AaUzJHncWPrmsWro1TsC38J6tge4NONxBMAFc59FJrFprbU1Ti9HoD2sLJhmbHo3SmJZwA5Bj46dqqM7kygiVJkiB+YnPbPFMa9jfcFwSPek43dxqSSsNa7mUbvLVB7tSHUHWLcYmHtkHNCh5sXP5EB1p0TAtHx6g4/lU0OqQyLlrd93q4z+tVZ9G0LnXVCyXdw5/cBMf7uaga+uQwLxIT6gYqlHzZLl5KwNcs7ZljOT6UmYznkp+JFaIhjMRqM+ac/72aljDsR+/z9GqkTYk8uRTnex+rVIszIMfOSfamB//2apR82S5eSsDXLO2ZYzk+lJmM//Y/+0O2lBob3Rvc2hvcCAzLjAAOEJJTQPtClJlc29sdXRpb24AAAAAEABIAAAAAQACAEgAAAABAAI4QklNBA0YRlggR2xvYmFsIExpZ2h0aW5nIEFuZ2xlAAAAAAQAAAAeOEJJTQQZEkZYIEdsb2JhbCBBbHRpdHVkZQAAAAAEAAAAHjhCSU0D8wtQcmludCBGbGFncwAAAAkAAAAAAAAAAAEAOEJJTQQKDkNvcHlyaWdodCBGbGFnAAAAAAEAADhCSU0nEBRKYXBhbmVzZSBQcmludCBGbGFncwAAAAAKAAEAAAAAAAAAAjhCSU0D9RdDb2xvciBIYWxmdG9uZSBTZXR0aW5ncwAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gXQ29sb3IgVHJhbnNmZXIgU2V0dGluZ3MAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAZHdWlkZXMAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4NVVJMIG92ZXJyaWRlcwAAAAQAAAAAOEJJTQQaBlNsaWNlcwAAAAB3AAAABgAAAAAAAAAAAAAAWgAAAHgAAAALAG8AcABlAHIAYQBfAGgAbwB1AHMAZQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAeAAAAFoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOEJJTQQREUlDQyBVbnRhZ2dlZCBGbGFnAAAAAQEAOEJJTQQUF0xheWVyIElEIEdlbmVyYXRvciBCYXNlAAAABAAAAAE4QklNBAwVTmV3IFdpbmRvd3MgVGh1bWJuYWlsAAALLwAAAAEAAABwAAAAVAAAAVAAAG5AAAALEwAYAAH/2P/gABBKRklGAAECAQBIAEgAAP/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAFQAcAMBIgACEQEDEQH/3QAEAAf/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/AOmAU2VPf9ETHJSDURr7GCG6BaJJ6NMeKJzdpjwTahTMkkn5pnTGunx0SvZHdKKcoMDw0lrhIjXRRrrdZu1gjkHlX2yK2DwaPyKFjQ/nQ/vDlVvvGpsDzDY9nQUT5FoPBa6FGXcSiW1uY4h2s8HxTPrex217S13gdFZiYkDY2wGwTvo2an1VMiQh5F1VjdsSeyBCUICAu7KuM1VMITQiEJoT7WMNqbapwlCNqf/Q6sBTZW95hgkjUplZxPovI5JA+5Xck+GJLVhHikAiZjWCxu8DbMnVWbX+09/xTmAQO5/ImcNCfAKpPIZ1daNiEBG66snlrWD4D8iC53igesXAGeQITbydBr5JlrkhcJDiNxaQ4D4K48V31gO9zHag9xPcKqzGfAdZpOjWjklHawVAMBkfx5KVnTwVQa4wXk+54A7dynODW1pc63Y1oLnvdDWtaBue97ifaxjfpK0NeFx3+Md/1it6fX03peHc/DySPtmXUN8ydteJtq3W11bvfc9zP0v80pffyfvfgFnsw7Ovi5VGZQ3KxiXY9hd6NhEb2NcWNu2/mtt272fyEWFHpODlMxG0WUfZKMcMpxhbHqvrYxodfbSwv9H1Ld/p1P8A0npfzv6RR631PovQMcX9UyjW5wmrHrAddZH+ipn/AMEs2VKwM8BEXLWtdGA4ZWaGl90kJQhYN1uVh05N1P2Z17fUFBO5zGO91LbXQz9N6Wx9vt9n82jwpQbAPdjqi//R6D6xX9Qx+n+r0p9NWRuaHeqN52nT9CyW/pGrnas3602YRZZ1U15DrRcLamBpDWtLPs3t/wAE/wDnLPalaMzJqpdl0323k7R7txpDnH9J6jj9Gpuz6KakZlVjab632jtkMaQyR+bcyT6Lv/An/mJZcspHSxFOPGIjWiXSwfrP1LG6Re/qbftnWatwoZWw7Lmy30f5oNbvb+k9T+bVKr/GcW2DG6p0v7K+0hm8Pe0N3e3dtsbY13P76Fdhm1hrc/IIJgu0a4T+axzam+z+V/4IqdJtN/2V1GW2qpz2G+xrHVbBP2d9T3U/ztm36DvoKMSOui4xHd62/qfT8PGORk5NdWPUIdYXAzHthjQdz3Pj2LGx/wDGNg02usdjUuxjGwjIAytv77qXsON7/wDRttVduIwmRZYSNTLav/edK2Mf03tNl++xtRa4MhrX+19x9Khrv0aQl4JMPF23/wCMD6tsZRkOdkuGRW6yqsVDeGjcLH2TZsb/ADbm/SVGz/Gf0h5Apw7yyRNll1LC3X6fpNdY93/FrPx8pt2TkUV1PaKNgNjmQHEn3Gt30XMYpWFja33C+6QC8MYWdtdjG+kXJcfgrg8Xrx1/o7Ayx+ZWGW1WXNM/mVAWW7o+g/Z9Gt300uk/WPpfV7jX019zrGNFjvUpfUdjtGmsv/nNzv3Fy13S3041Vue4ltx/mTZVc2RB22Nqr/N3LPtycnp4fZgMymWAij7NW4hz2Wbv0mM/32VtRBO1I4eoL0H1w+u/7GZZhdJr+09Qb7brtu6nGJ/NsI9luV/wX0Kv8KvOul+n1P6wY9vX8hxquuD8vJvl5cGje2l+jttdzw2r9yqtWG4+O3Edl2dKvrq3loabbd5MbnvcyPo7js9T8+z/AItV2ZWDW8XO6blBp9zQXOLYafcR6gc16cCQQaWEWKt9iIL/AHghweNwc2C0g67mub7dqbYV5vifWTIxqaqsa+7Bqa8PrxcmpzWF8+r7bqf55tn+Eru9Nlq1/wDnn1+gzk4+PY0Qfax7ZB/PZayx9StDmY9QQ1zy8uhBf//SC/pmKPoOIJ7Ne7+9MOnVNH85aB4ixytuDWHbMHwCeAAZPPYj+KsSxw/dH2NeM5dz9rXHTTGl14/tlI4FjSP1rI8hvn8FbDARMRroSf4Byk3cCQWkjsY5CiOOPYMgnLuWj9iuDdMy6PEkEf8AUqIx8sGRnWgdx7T/AN9WkS3ktOneFGAHTB1TeCPZdxy7uZkYXUrdhZ1S1gHGgjy42qpZ0jrTy6OruI7BzT+UPW+Tydp2nvIj/NTzXzHuHiATHyThCKDOXd5odE6wyNnUmeGrXAfDlMenfWMBv+UK3bRDY3cf5hXSOuLCP0YduMl2g/6MlRc2ppLgzbPYnUf2DuR9sI9yXd5l+P8AWVp3DMa4wRydPL3M9qGLPrQ1wAu3RwHODm/9L81dHZsk7WwSBogOaOQ2T3AMpwwx8VpzScYH63kfzm4Dgeo0/wDVOSFv1tYI2jaeRLII/lAXLcZu2CA4eIOhUgNCdr4/OiSnfd4eP4f96t+8T8H/05PZkB28OboPzi7/AL6p1OJEz8Cf9qC4vBEPY13jAJj71HZlfmPZH9Uz+VWZFrC240tPmR2EGfkkHMaQBo4nUOEx+IVXfcwAWmrXncQD9wCT8qn6IDNwGo2kg/cmEWuum4TYCI2OB8AZ/wCqc1DLniR7te7SQNP5YZ7VUD73O2iljmd/T0Mf5zXf9FGDrhpWAHRoHgx83Nc5NqlwNsn5uMyA+yHd9Hc+b9j0qs3FfoHbxoZa0kT/AJqGLuonSxrXDuGz/wBUXKX2jJA1phvYOg/IJwH8rWkn+QZzjuJdIYXcgkA6eA9Ru1QYamglu93jALv836X/AFSTb8h3/aQx5QP+qTWixxaHVWb+4B0H4ohHl+SxdU7hrpI5cDz/AGoQvdOjRH3H7lElu73bh81DfXJDXAHydJ/KpAsJbQIiCSPiRP4p2BocXAy7xMfwQCS0Ai+Y/N3NEfDcFJj73HVu8eHt/wC+7U+1r//UGz0tvs/nO+6N0/20x+3bvZt2x7d0fjuXl6SsS2aw3/g+qV/bJHq7Nvlz89ym7kT6cfPn+wvKElGN/wDvWQ7f98+rH7Rr6e3nSP8AzJB/WIHr7v8Arcx5bvzti8vSTvs/7pb9v7H039N6b9vq+XO3+xv/ADkAftLc3Z9q/wCjt+Xqe1ecpIlH2vp1vrbB9t3bZ1mN3/R/QquPT3D0/V2eUxH/AFK85STo/RbL6/V9Lb638rbP50Qmd6kGfS51mV5qknrX0+v0tv5v9nd/FPp+bO3vG3/0Z7l5ekih/9kAOEJJTQQhGlZlcnNpb24gY29tcGF0aWJpbGl0eSBpbmZvAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAANgAuADAAAAABADhCSU0EBgxKUEVHIFF1YWxpdHkAAAAAB//+AAAAAQEA/+4ADkFkb2JlAGSAAAAAAf/bAIQAFBERGhIaKRgYKTMnICczJxwcHBwnIhcXFxcXIhEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEVGhohHSEiGBgiFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAWgB4AwEiAAIRAQMRAf/dAAQACP/EARsAAAMBAQEBAQEBAQEAAAAAAAEAAgMEBQYHCAkKCwEBAQEBAQEBAQEBAQEAAAAAAAECAwQFBgcICQoLEAACAgEDAgMEBwYDAwYCATUBAAIRAyESMQRBUSITYXEygZGxQqEF0cEU8FIjcjNi4YLxQzSSorIV0lMkc8JjBoOT4vKjRFRkJTVFFiZ0NlVls4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9hEAAgIABQEGBgEDAQMFAwYvAAERAiEDMUESUWFxgZEiEzLwobEEwdHh8UJSI2JyFJIzgkMkorI0U0Rjc8LSg5OjVOLyBRUlBhYmNWRFVTZ0ZbOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hv/aAAwDAQACEQMRAD8A9dIiTwoDYJi+o85BjSGibVoDGMjqFN3RdsOgbIvl5O8M6Kso5pRIYt2yRPycqd1cow8CoanV33gPMrWpCcFZCJcOdNIaiApFNUtNITSppUD/0PaSrpiGtvpbhScEpcGdF32gCmigvG1pOqrAwAAQSyZVoxucGiyWsVAEON3w6RgQbUgGTF3j9DIwyL0WrtXaRjijlnD04mUiAByw+L1f4kOt6uOCEqwYzuyS+zOWP/31ifcx/wA2InEGiLelbTqZtWNCVay7cETPJIRiO8izCQnESHBFu009DDTQqmlaQ//R9bqs8elh6kgSP8IeDH+MmUZShilYraJfbXP1ks8KiAI9/wDE82OYlpwfB1a+yJWu7PV6L8Tj1tjaYGHxCTcfxXpJGvUA/qEovjysWQDfjfxPBLpISu47SNfJJ5ybg+p9SMyZRIMTwQ55epxYK9WQjfD5GCWXBAQjZA/i2f8AbcJdNOUjMynuPe4KRB9Thy4px3YpCQ8Ync2ckMY88gP6jtfk49NGN5BM2QYk2xL8Ph2s1/T/AO/VIg+rx9RjykjHKMq/gludgbflMEJdLLdCwT7YNZo5swAlI7QTLbu/i/8AKmFSIPo/2TD6nqbI7/4trxfif4xi/Dxt+LKeIfw/+PfNH4hk6bp/Rx0JjieSXwx/9+PiT6eWQ7pGJJ5lu+JskOnpZZvxjqonMbjHzyj9iMY/7v8A8yP1z8b0ccvTz3wkIn2S+J9+P4vGNDLEg/bl/wDAnrSyRztVs9OleWH4n009BOv6gVevJdTnxZ//0sSCAImAoeBWRMzZhqOPM9BJPKu3RGFdmXqS7wP0uOSEMkt08crHte0Jq3PE1yOYZa+zJP7QB9mX0PTtZMXPEvI4JjHKO0idXu0QevgNdsg+iIrsbxHI82H4nCE9+3cRp5wjJ+JY8hJmDR+yH0vT91olgHgD8m8ScjxcuTps/wAYkaG0fv6TOWXTZQBUogaAD/40+ueniR8I+hyl00DzEfQ3iycjyPR6Q95gfv8A+UnaEsGPSE5iP8JO+P8A7rez9kx3rEN/smH+FvBk5o5Tl6aX2iFen9ixfw/eVXtsvNH/06J1oNA+DBjE9liaezOKNBomrLIl4JJLk0VXtQdGdDoQgHwclLGq34MkS7EfNz/mX2+9pDY252Y66tDepvwpoBd6uZtJmfH7mTO3SMsFW1TAIDYmPEOkZDEX3VIKtB//1J0lwLX04ns19l55c93qzkb+mBxakyHA+lxj/qeg/P5MGBnsMvY3t2jU2svm49+6YRcowJ5+9aA03UiXbhwyc9vmgdIG74ZLu2nWX3PHj57fJ6u3b/V8TQEzB+0iz73Lx4SP3pqMlX4hom+AQx37uw4/N0QmMfaqnnsqB//Z" begin="1s;imageHrefSet.end+1s" dur="1s"/>
+ </image>
+ <text y="60" text-anchor="middle">&lt;image&gt;</text>
+ </g>
+
+ <g transform="translate(420,90)">
+ <defs>
+ <text id="useA">Use A</text>
+ <text id="useB">Use B</text>
+ <text id="useC">Use C</text>
+ </defs>
+
+ <use xlink:href="#useA" font-size="30" fill="rgb(230,230,230)" text-anchor="middle" stroke="rgb(255,180,0)" font-weight="bold">
+ <set id="useSet" attributeName="xlink:href" to="#useB" begin="0s;useSet.end+1s" dur="1s"/>
+ </use>
+
+ <text y="60" text-anchor="middle">&lt;use&gt;</text>
+ </g>
+
+ <g transform="translate(60,210)">
+ <text text-anchor="middle" font-size="20" y="10">&lt;animate&gt;</text>
+ </g>
+
+ <g transform="translate(180,210)">
+ <a xlink:href="animate-elem-09-t.svg" text-anchor="middle" font-size="30">
+ <circle r="30" fill="rgb(230,230,230)" stroke="rgb(255,180,0)"/>
+ <text id="initialAnchor2" y="10" fill="gray" font-weight="bold">09</text>
+ <text id="anchor1sto2s2" y="10" display="none" fill="gray" font-weight="bold">03</text>
+ <set id="hideInitial2" xlink:href="#initialAnchor2" attributeName="display" to="none" begin="1s;showAnchor2.end+1s" dur="1s"/>
+ <set id="showAnchor2" xlink:href="#anchor1sto2s2" attributeName="display" to="inline" begin="1s;showAnchor2.end+1s" dur="1s"/>
+ <animate attributeName="xlink:href" from="animate-elem-09-t.svg" to="animate-elem-03-t.svg" begin="0s;showAnchor2.end" dur="2s"/>
+ </a>
+ <text y="60" text-anchor="middle">&lt;a&gt;</text>
+ </g>
+
+ <g transform="translate(300,210)">
+ <image x="-30" y="-30" width="60" height="60" xlink:href="data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACWAPADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCeSMqeDUDsy1YkPzHNRMFYcVZkQiQ0MA9IyEdKi3EGmBNGm1s4qfft4xUUL+tPlyTmkApYOORUDwgnNSbyKazmgCExBKjZgOKfIfeqsmexpgS5pjPimKSOvShsUAO3UhamZwaM0XAUtTC1ISaYxxQIcZKUMDVctQJMUwLOQBUbPUfm571Gz0ASmT1pPMqAvTd+eKALHmVJG/FU2bpU8bDbQIsb6XfkVXLUm+gCcmmlqhLn1qNpTQBK0mKhaQ1E0hNRlz60DPdL3wtZSJuhY7vTFc3PogiLjBG2vR2RSN2eTVeS0jlydoyaxUjSx5dLYsoJ/Kqb2slej6h4YF1h4GEZA+7jrWHL4WvwTiLOKrmQrHGEMnFKrO3Hauqk8Iakwz5OfxqhPoF5bMVeI5HpT5kKzMXGDTTkGrU1u6HlGGPaoSuTRcLEDsfTNVmOauPGeMVXMYGRRcdiNVLew9aQxndjmpFyv0p/BpXHYrMpHQcUzNWG7iq7DFFxWGsaiZqcTUT5qrisNLU0tUbEimbzRcViQsRTC5phehW5p3AC5HXikZu4NIzgnBqMnkgdKLiLAk+TFPWYYxVUA460hYgUXAuebR5lVN+B1o83FMCyZKjZ6rmamGagCdnpuc1B5tAlFAH0/DMjBdzLgjPXn8qs74UVT5sY3HjkcmvNzeloEAY7lGDk1SmuZe7H86x5DTmPWTIoH31Xd709rmOEfPnIHXHBryOLUp04ErD8a0f+EguZLI27uSOxPUUuRhzHdNqINwGS4/dsfmTris3U5YZpd0Qf8TXCNfyq4becjvmtXT9euFYKyLKvcMKfLYL3NJ0Vuqg/UVUl063kB/dKCe4FaLSxTqGjj2e2c0wKaZOqOautJ8rkDcp71Rl0wldwGBXaiHdxjNB01JBgp+VJstHnxsip6UGzbGQK71PDTSyYjbI9CtWo/Bs2QCY+ffpWUp9jWMU9zzNrZh1FV5bc+len3PgmfaTHtY+max7vwffopb7MxUegzS9o1uh+zXRnnrxY7VA0ZrqLzSJYAd0bD6isO4gKk8VaqJkODRmOBUDAVPMCCaquSK0TIcRrtUXmEUrZNRsrelO5NhTIKXzRVdgRTc+tO4rFrzeKjL5qEvSZOKdwJGkqNpsVE7EVCz0XETtNTDNVctSUXAsed70omqtS5ouB699q96YbgNxmszz885qNpiG4oEavmDGKYZSOhrPFz60puPemBdMmTyc1agvFj6dayPPFAm9DSsO508GrumMYrWj1qMoPlG761wq3BHep1uXxwamw7neW2uxo+JVA9CBWzbatp/mI0rAq3pxivMFuXPerEVy4P3qhwRopntdv9nkUSQFGB6FTmpq8r0jV57KdSrttyMgHrXo1jdG8jSVJAUI5XPIqb8ulh2vqXqKKK0IK13p9texGOeFWB74rz/WvAUxkZrRQ6H07V6GblN5VQWI64oS6jZyhO1h2asZKDejszaLmlqtDwe/8K3UDHK9KxpdIdPvDFfQ89vpVxIwljgZ26lh1rnPEPha3kjBtLYAgc44FTzOO+pVlLbQ8Re0EYORUOwHjbXa3+gyRKzPGVA9a564tthIxWsZpmUoNGHLb9TVKSMrWvMhFUpVPpV3IsZxHNDNxgVM6e1QslVcViJue9QsKsFKQx0CKpBpOlWNpz0o8lmHAoAr5pc1aSwlkPCE1bTRbggfu2NAHSp5i9cUrPgVrLaof+WfNVZbdQ+Gjz9KLisUPMphmwetbUGjwzpyShP6VI3hZGK4vVBPXK8CjmHYwhL707z/Q1sf8IlL2vIf1qGfwrfQjKFZe/wAtHMg5WUllyKk+0EVHJp97CcNA59wM1CySg4KMCPUUXFYti4NWIrk+tZYdl68VNHLzSKSN22uG3A5NdVomoXNtKkiSlVzyPauDTUbO3dUnuIo3borMBWlb6/ZRswe6jTYdp3naM/j1rOSNIux7jbXcN1CssbDB7Z5FNmvIolO7dxxxXkUHj3R4ZAqagnTqARz7cVcX4j2Hli6e4nVNwQ74zjnufb3qOaTHZI6++8SPBKwFsEHYkdaxG1xjKXEh3H3qvfeIbR0Y3N5aokgyod1H5Vz8txalfNW6iCZxneMZ+tNRT3DmZ0iX09zOziXGBkjPXFMn8S3suY2mfaOwNYEN5H9n81Z9iMSqsT9/tx696jaRVjaRpokUfeZnAA+pp8qFzM15tSMibZlDg1hXllBMxKOR7EVTk1/ToLe3nnvEWKckIxz261W/4S/SI7l4ZZoNgAKSiQMH9RgdOtJRS2G5t7kVzp7rkqcismaFgeRVi/8AG2kxyokLGQM2GZBwo/GsmfxjZeaQsO+PnnJB/LFWibkjRjPSm/Zy3RKx7vxfv/49rNU93Oaz/wDhJb8H/WAY6YGP/wBdMR1JsWxnbUJtD3WufXxRqHmFy6MD/wAs9vA/rW1Z6/ZXD26zy+SZGKvu6JgdSfQ07isXYNOMhHyHHsK0Y9EUn5GGR2NVrvxxpljA0dknnuhATPCsPXNUJfiOxjBjsU3kDq5wD34x+XNK7DlOqs7VYX+WBSR61PPkj5uPYVwM3xB1F5SYre2jQjAUqTj3zmqM/jDUpY8C4KsR8xCjg+3FGo7HrEdwv8P61YWQ9SBiqxhsIb6Kza4HnSqXUYPQf5P5VOwsbS3upLq+j/dhmVN4U4Azjmi6JsyQsxG8Y/OpIZ3m+R+Rn1xWZL4j8O2OjRXpvIp7hkVvsqSqzKSOh+nes/V/iBolvGz6ZEk86kY3h1B9ccUuYq1jsF+zFcbXVvXORWhZ2M0jYWQFOxzkV4tffEzV5XkFvHaxIRhWER3D82IqhbfEbxLbyB/t4YLkhWiXH6CpalbQtNX1PdNQENusrzybNoJztyDxxyB3rhNV8ZaRbQuFheWUj5DjaD/X9K8y1PxLrGsuTf6hcTqWLbHc7R9F6CqcZ3OM80JNIXU6q/8AFl1dogtI1typyzcNn25FZ8muapLuzd4yMfKij+QrP59KQjHWldhYa13dCYyNK5cnO7POfrSG4dslmJJPNRuwZT7VEHFVuIs+aaa0p5wTUYYnpSEHqQaVhjjKcdaDM5Xbk49M1F1oyfSmIe0zkAFiQowAT0pnmtyAxApDyM0zApgP3EjqaazcUH5elNJoAaTSFqDSUwDdTaO9GOKAD+VGaM8YpKYDqKTPvRmgB2SKaTRSHpQBoTXt5cyB57mZ2HG53JxVfcWbG+vRZNNsZUAkt0K/e+YHrVc6JpbAf6Ehz0IyKCbnCKuO5p231JruP7E0zBzbJgdfmPH601tE00/dthn/AHm/xoC5xDKvZj75FRHA9PrXbNomnA8W5HH981EdD05j/qj/AN/DQHMccM+9WrZgDgjntXS/2Dp/aJ/++zR/YtiuMI4P+8c0mrjUjDLtjOOKjZmP0rffTbNE+VXJ9N1EWkW03WORT7sKiw7nMOdoNMT5m7j1rso/C1vO3MjAZwMHOa1NP+HtvdsoW5I3gENjIpOpGO5ShJ7I4IMMYHFLgHAzz3r1uL4P2rKS2pENzgbCMn8cUyb4VWEPJ1FiMfeGCM/gay9tDuaeyn2PI5UAwV/Koeetel3ngPT4CQL0kYz82Af51jSeGLJM7Jy2O/StI1IshwaONPTJBNIsbsM4OK6d9AgDEZOKfBpVtBuDJnjjJq29NCDlXBXr+lM2n0rop9KtyxIX9TVc6dAvGz9apCuYRBHem4OO9bhsYP7lJ9hg/uUxcyMPn0o/A1tmxg/ufrQbKD+5QHMjEo4rZNjAf4f1phsYM48tvrziiwcyMmjFaxsIB/AfzNJ9jgH8P60BzIyiDTTxWr9lhx939aabWEn7v60D5jvPMLEDG9c5xtzj9aTMxxtBAPXA5FM2yDlZuOmM/wCAoInONzp7k5oIHNCXGGyfrzmkEW1cjP600RlckTAnPJ3daBIATudyTwOn5Uhjdw28cj1I61EzEMdx2jvyP6VO7K+FLLnPQn/Cojhckuvt83+NMGG3IGORjseRSFycLhgcYwf/AK1ROA+0CQY7ndmkjXYpETqc9BvJoET5kw3G/wCnaiPerYZl+h7fz/lUexmxtbkcnDEf0qaBXbA37SOSwPbtUsuJqWkjAKfMKg84GP8AP4V1ulWaTywsty5c/KcFuM9+D6etc5a217wIIl8tgAXYYAPXrg811NgbuO3dN0yuDx5TBR9STnofpXFVZ2U0bB2WiYNxwPk+8VCe5Bb+Z/KoiFETPayo8GfnbBIB6HgY7nr7VqCO4FlHI9vdGfaN0v2mNdgz6nGB+tU5hIYpJWjicsBmVJ0JI5Gdy/1zWFja5yuphoJn2Mp3ccRcj3weT/8AXrmr53OCeVJI5Qiuk1SCJpI/LkuEduVEeBz6bsA/l+NYFzatuSNRIqYyD5mc++StdFMwmY0yvkHcB6Z//VVNzKe5/E1eeHaXkEko74ZVOPpxVNuR8+T6/d/pXTE52VmLHrx7VBLnGc1LhS3Q4HrUUuMVojNkJJ9qQUE+lMzVEj80mabnPWjpmgBSaaaM5ppNAgJzTSaMnv8ApSE5NAxpNITRznGePpTT9f0pDOzbMeAsasPRmP8AQUfIGy6rgnquT/SociRM4IHokf8A9fNIpAHLOQOMYyKBFjY3O1VK+7Y/pQ3AIXH54FQiT5QAsjHrkjA/PFMkuiv3lAXPJYhR+HNAyUgqcEoAenem+WVbkHb7etVJJlL7oU3Hvtbr/jTPtJ3/ALxYoh6SOOfwoAszADHyhCOhxz/OkDcA/Mw75O0f41Cwt8h2iXI7quf5ZpAIw29Rj6gj+dAizh8kpGioT134P8quRxr5gaUEHHeXkj6nOD+FUgQcKY5H3cDbz/WrFu6RzbzPiRzjPlud3PJzzUSZpFHR6YJkkUQmZiOTHK4YBe/GMEf5wa6PT3AKpZt5sSNmRZAYmP4bea57TL6ztrp0ku/MRR8ojtmBDY/hIHXjk961LTxH5kbwqr+dsJDNHODuIP8AdHPOeCMVxTu+h2waXU68HUtryWpgYAYEUriTH0GAV+gqtcNqgjUmxtwSoD+XO6que5AQ/wBPxzWJNaC809mkURLt2YH2iLJ654znp3B7UQ2MMcI8vUb6SVU2BopC8n4EqD9M/wD1qyt3LK+qWstxGy3V3LK2MILd3Axkcnt2/KuYntoLJWtpLRmIO4FQWJP/AAIjity60+aMSKL67kBUbkkk3BjjPIMTZrMe2t1sWRJn3sG2iNN/Ab/cAwORnA5raDsZS1OflmkjY7rCTG3gJEmMe/P9apySg5PksMdeB1/CtKZGA8pzJweoTB/+vxWPKjHAjkuGDD1PP6V1ROaRFLIoJAjYc1Wdtx5B/GpHDA4eTOfUkf0qBgAfvc/jWqMmITjtgUzdz1FKSfqKYeRnFMQ7PNJmm5Pekz6/yoAcTSHmkzSZoAX6HFN6Um8HvmgmgAJPpSA0lJuOSMEUhnWpAVJCJEM8Z2AfyFVrm3cxly21ccgMeg+mKKKCRY4IvKDCNSo7Hn+eaHRbcFhCgwMkK2Pb0oooGRP5QI326sTwPnNMVLUSErbjOeh6UUUATIsTqc7wM9AelBgiWNmCbgP7x70UUDKwlt4jkxFivJJAresLkTW8twYd4jXP+sKHrjsD/k0UVEldGkXZ6F2yne5PlLugDjARX3pgezDg/nXX2HzXS2gjEkhUOqySMI24z8w57e1FFcdXex1U9rl+GDVFcNZQWUEkxJVvPkA465CBc9B61japp3jGBWVNbtTF5WXzH82D77ST+dFFTFJMJSdjBNvrJuUtry7t7kQLkFlIPQnGRjP3epqp9g1YiW6E1pDHCmfLi34OTjr17+tFFboybdzHv7y/uLl55JUl52AtuXgcDgHFZpkmkXcywj5scKT/ADooreKVjCTdyCVmJwZGAPZQAKYVZcKDRRVEkbsQeSSTTCc8UUVQCZpM0UUgAg/hTM0UUxDHlCEAg0gmDHABoopFBvyO9LuJoooEf//Z">
+ <animate attributeName="xlink:href" id="imageHrefAnimate" begin="1s;imageHrefAnimate.end" dur="2s" to="data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACWAPADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCeSMqeDUDsy1YkPzHNRMFYcVZkQiQ0MA9IyEdKi3EGmBNGm1s4qfft4xUUL+tPlyTmkApYOORUDwgnNSbyKazmgCExBKjZgOKfIfeqsmexpgS5pjPimKSOvShsUAO3UhamZwaM0XAUtTC1ISaYxxQIcZKUMDVctQJMUwLOQBUbPUfm571Gz0ASmT1pPMqAvTd+eKALHmVJG/FU2bpU8bDbQIsb6XfkVXLUm+gCcmmlqhLn1qNpTQBK0mKhaQ1E0hNRlz60DPdL3wtZSJuhY7vTFc3PogiLjBG2vR2RSN2eTVeS0jlydoyaxUjSx5dLYsoJ/Kqb2slej6h4YF1h4GEZA+7jrWHL4WvwTiLOKrmQrHGEMnFKrO3Hauqk8Iakwz5OfxqhPoF5bMVeI5HpT5kKzMXGDTTkGrU1u6HlGGPaoSuTRcLEDsfTNVmOauPGeMVXMYGRRcdiNVLew9aQxndjmpFyv0p/BpXHYrMpHQcUzNWG7iq7DFFxWGsaiZqcTUT5qrisNLU0tUbEimbzRcViQsRTC5phehW5p3AC5HXikZu4NIzgnBqMnkgdKLiLAk+TFPWYYxVUA460hYgUXAuebR5lVN+B1o83FMCyZKjZ6rmamGagCdnpuc1B5tAlFAH0/DMjBdzLgjPXn8qs74UVT5sY3HjkcmvNzeloEAY7lGDk1SmuZe7H86x5DTmPWTIoH31Xd709rmOEfPnIHXHBryOLUp04ErD8a0f+EguZLI27uSOxPUUuRhzHdNqINwGS4/dsfmTris3U5YZpd0Qf8TXCNfyq4becjvmtXT9euFYKyLKvcMKfLYL3NJ0Vuqg/UVUl063kB/dKCe4FaLSxTqGjj2e2c0wKaZOqOautJ8rkDcp71Rl0wldwGBXaiHdxjNB01JBgp+VJstHnxsip6UGzbGQK71PDTSyYjbI9CtWo/Bs2QCY+ffpWUp9jWMU9zzNrZh1FV5bc+len3PgmfaTHtY+max7vwffopb7MxUegzS9o1uh+zXRnnrxY7VA0ZrqLzSJYAd0bD6isO4gKk8VaqJkODRmOBUDAVPMCCaquSK0TIcRrtUXmEUrZNRsrelO5NhTIKXzRVdgRTc+tO4rFrzeKjL5qEvSZOKdwJGkqNpsVE7EVCz0XETtNTDNVctSUXAsed70omqtS5ouB699q96YbgNxmszz885qNpiG4oEavmDGKYZSOhrPFz60puPemBdMmTyc1agvFj6dayPPFAm9DSsO508GrumMYrWj1qMoPlG761wq3BHep1uXxwamw7neW2uxo+JVA9CBWzbatp/mI0rAq3pxivMFuXPerEVy4P3qhwRopntdv9nkUSQFGB6FTmpq8r0jV57KdSrttyMgHrXo1jdG8jSVJAUI5XPIqb8ulh2vqXqKKK0IK13p9texGOeFWB74rz/WvAUxkZrRQ6H07V6GblN5VQWI64oS6jZyhO1h2asZKDejszaLmlqtDwe/8K3UDHK9KxpdIdPvDFfQ89vpVxIwljgZ26lh1rnPEPha3kjBtLYAgc44FTzOO+pVlLbQ8Re0EYORUOwHjbXa3+gyRKzPGVA9a564tthIxWsZpmUoNGHLb9TVKSMrWvMhFUpVPpV3IsZxHNDNxgVM6e1QslVcViJue9QsKsFKQx0CKpBpOlWNpz0o8lmHAoAr5pc1aSwlkPCE1bTRbggfu2NAHSp5i9cUrPgVrLaof+WfNVZbdQ+Gjz9KLisUPMphmwetbUGjwzpyShP6VI3hZGK4vVBPXK8CjmHYwhL707z/Q1sf8IlL2vIf1qGfwrfQjKFZe/wAtHMg5WUllyKk+0EVHJp97CcNA59wM1CySg4KMCPUUXFYti4NWIrk+tZYdl68VNHLzSKSN22uG3A5NdVomoXNtKkiSlVzyPauDTUbO3dUnuIo3borMBWlb6/ZRswe6jTYdp3naM/j1rOSNIux7jbXcN1CssbDB7Z5FNmvIolO7dxxxXkUHj3R4ZAqagnTqARz7cVcX4j2Hli6e4nVNwQ74zjnufb3qOaTHZI6++8SPBKwFsEHYkdaxG1xjKXEh3H3qvfeIbR0Y3N5aokgyod1H5Vz8txalfNW6iCZxneMZ+tNRT3DmZ0iX09zOziXGBkjPXFMn8S3suY2mfaOwNYEN5H9n81Z9iMSqsT9/tx696jaRVjaRpokUfeZnAA+pp8qFzM15tSMibZlDg1hXllBMxKOR7EVTk1/ToLe3nnvEWKckIxz261W/4S/SI7l4ZZoNgAKSiQMH9RgdOtJRS2G5t7kVzp7rkqcismaFgeRVi/8AG2kxyokLGQM2GZBwo/GsmfxjZeaQsO+PnnJB/LFWibkjRjPSm/Zy3RKx7vxfv/49rNU93Oaz/wDhJb8H/WAY6YGP/wBdMR1JsWxnbUJtD3WufXxRqHmFy6MD/wAs9vA/rW1Z6/ZXD26zy+SZGKvu6JgdSfQ07isXYNOMhHyHHsK0Y9EUn5GGR2NVrvxxpljA0dknnuhATPCsPXNUJfiOxjBjsU3kDq5wD34x+XNK7DlOqs7VYX+WBSR61PPkj5uPYVwM3xB1F5SYre2jQjAUqTj3zmqM/jDUpY8C4KsR8xCjg+3FGo7HrEdwv8P61YWQ9SBiqxhsIb6Kza4HnSqXUYPQf5P5VOwsbS3upLq+j/dhmVN4U4Azjmi6JsyQsxG8Y/OpIZ3m+R+Rn1xWZL4j8O2OjRXpvIp7hkVvsqSqzKSOh+nes/V/iBolvGz6ZEk86kY3h1B9ccUuYq1jsF+zFcbXVvXORWhZ2M0jYWQFOxzkV4tffEzV5XkFvHaxIRhWER3D82IqhbfEbxLbyB/t4YLkhWiXH6CpalbQtNX1PdNQENusrzybNoJztyDxxyB3rhNV8ZaRbQuFheWUj5DjaD/X9K8y1PxLrGsuTf6hcTqWLbHc7R9F6CqcZ3OM80JNIXU6q/8AFl1dogtI1typyzcNn25FZ8muapLuzd4yMfKij+QrP59KQjHWldhYa13dCYyNK5cnO7POfrSG4dslmJJPNRuwZT7VEHFVuIs+aaa0p5wTUYYnpSEHqQaVhjjKcdaDM5Xbk49M1F1oyfSmIe0zkAFiQowAT0pnmtyAxApDyM0zApgP3EjqaazcUH5elNJoAaTSFqDSUwDdTaO9GOKAD+VGaM8YpKYDqKTPvRmgB2SKaTRSHpQBoTXt5cyB57mZ2HG53JxVfcWbG+vRZNNsZUAkt0K/e+YHrVc6JpbAf6Ehz0IyKCbnCKuO5p231JruP7E0zBzbJgdfmPH601tE00/dthn/AHm/xoC5xDKvZj75FRHA9PrXbNomnA8W5HH981EdD05j/qj/AN/DQHMccM+9WrZgDgjntXS/2Dp/aJ/++zR/YtiuMI4P+8c0mrjUjDLtjOOKjZmP0rffTbNE+VXJ9N1EWkW03WORT7sKiw7nMOdoNMT5m7j1rso/C1vO3MjAZwMHOa1NP+HtvdsoW5I3gENjIpOpGO5ShJ7I4IMMYHFLgHAzz3r1uL4P2rKS2pENzgbCMn8cUyb4VWEPJ1FiMfeGCM/gay9tDuaeyn2PI5UAwV/Koeetel3ngPT4CQL0kYz82Af51jSeGLJM7Jy2O/StI1IshwaONPTJBNIsbsM4OK6d9AgDEZOKfBpVtBuDJnjjJq29NCDlXBXr+lM2n0rop9KtyxIX9TVc6dAvGz9apCuYRBHem4OO9bhsYP7lJ9hg/uUxcyMPn0o/A1tmxg/ufrQbKD+5QHMjEo4rZNjAf4f1phsYM48tvrziiwcyMmjFaxsIB/AfzNJ9jgH8P60BzIyiDTTxWr9lhx939aabWEn7v60D5jvPMLEDG9c5xtzj9aTMxxtBAPXA5FM2yDlZuOmM/wCAoInONzp7k5oIHNCXGGyfrzmkEW1cjP600RlckTAnPJ3daBIATudyTwOn5Uhjdw28cj1I61EzEMdx2jvyP6VO7K+FLLnPQn/Cojhckuvt83+NMGG3IGORjseRSFycLhgcYwf/AK1ROA+0CQY7ndmkjXYpETqc9BvJoET5kw3G/wCnaiPerYZl+h7fz/lUexmxtbkcnDEf0qaBXbA37SOSwPbtUsuJqWkjAKfMKg84GP8AP4V1ulWaTywsty5c/KcFuM9+D6etc5a217wIIl8tgAXYYAPXrg811NgbuO3dN0yuDx5TBR9STnofpXFVZ2U0bB2WiYNxwPk+8VCe5Bb+Z/KoiFETPayo8GfnbBIB6HgY7nr7VqCO4FlHI9vdGfaN0v2mNdgz6nGB+tU5hIYpJWjicsBmVJ0JI5Gdy/1zWFja5yuphoJn2Mp3ccRcj3weT/8AXrmr53OCeVJI5Qiuk1SCJpI/LkuEduVEeBz6bsA/l+NYFzatuSNRIqYyD5mc++StdFMwmY0yvkHcB6Z//VVNzKe5/E1eeHaXkEko74ZVOPpxVNuR8+T6/d/pXTE52VmLHrx7VBLnGc1LhS3Q4HrUUuMVojNkJJ9qQUE+lMzVEj80mabnPWjpmgBSaaaM5ppNAgJzTSaMnv8ApSE5NAxpNITRznGePpTT9f0pDOzbMeAsasPRmP8AQUfIGy6rgnquT/SociRM4IHokf8A9fNIpAHLOQOMYyKBFjY3O1VK+7Y/pQ3AIXH54FQiT5QAsjHrkjA/PFMkuiv3lAXPJYhR+HNAyUgqcEoAenem+WVbkHb7etVJJlL7oU3Hvtbr/jTPtJ3/ALxYoh6SOOfwoAszADHyhCOhxz/OkDcA/Mw75O0f41Cwt8h2iXI7quf5ZpAIw29Rj6gj+dAizh8kpGioT134P8quRxr5gaUEHHeXkj6nOD+FUgQcKY5H3cDbz/WrFu6RzbzPiRzjPlud3PJzzUSZpFHR6YJkkUQmZiOTHK4YBe/GMEf5wa6PT3AKpZt5sSNmRZAYmP4bea57TL6ztrp0ku/MRR8ojtmBDY/hIHXjk961LTxH5kbwqr+dsJDNHODuIP8AdHPOeCMVxTu+h2waXU68HUtryWpgYAYEUriTH0GAV+gqtcNqgjUmxtwSoD+XO6que5AQ/wBPxzWJNaC809mkURLt2YH2iLJ654znp3B7UQ2MMcI8vUb6SVU2BopC8n4EqD9M/wD1qyt3LK+qWstxGy3V3LK2MILd3Axkcnt2/KuYntoLJWtpLRmIO4FQWJP/AAIjity60+aMSKL67kBUbkkk3BjjPIMTZrMe2t1sWRJn3sG2iNN/Ab/cAwORnA5raDsZS1OflmkjY7rCTG3gJEmMe/P9apySg5PksMdeB1/CtKZGA8pzJweoTB/+vxWPKjHAjkuGDD1PP6V1ROaRFLIoJAjYc1Wdtx5B/GpHDA4eTOfUkf0qBgAfvc/jWqMmITjtgUzdz1FKSfqKYeRnFMQ7PNJmm5Pekz6/yoAcTSHmkzSZoAX6HFN6Um8HvmgmgAJPpSA0lJuOSMEUhnWpAVJCJEM8Z2AfyFVrm3cxly21ccgMeg+mKKKCRY4IvKDCNSo7Hn+eaHRbcFhCgwMkK2Pb0oooGRP5QI326sTwPnNMVLUSErbjOeh6UUUATIsTqc7wM9AelBgiWNmCbgP7x70UUDKwlt4jkxFivJJAresLkTW8twYd4jXP+sKHrjsD/k0UVEldGkXZ6F2yne5PlLugDjARX3pgezDg/nXX2HzXS2gjEkhUOqySMI24z8w57e1FFcdXex1U9rl+GDVFcNZQWUEkxJVvPkA465CBc9B61japp3jGBWVNbtTF5WXzH82D77ST+dFFTFJMJSdjBNvrJuUtry7t7kQLkFlIPQnGRjP3epqp9g1YiW6E1pDHCmfLi34OTjr17+tFFboybdzHv7y/uLl55JUl52AtuXgcDgHFZpkmkXcywj5scKT/ADooreKVjCTdyCVmJwZGAPZQAKYVZcKDRRVEkbsQeSSTTCc8UUVQCZpM0UUgAg/hTM0UUxDHlCEAg0gmDHABoopFBvyO9LuJoooEf//Z" from="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEASABIAAD/4RX+RXhpZgAASUkqAAgAAAAJAA8BAgAGAAAAegAAABABAgAXAAAAgAAAABIBAwABAAAAAQAAABoBBQABAAAAoAAAABsBBQABAAAAqAAAACgBAwABAAAAAgAAADIBAgAUAAAAsAAAABMCAwABAAAAAQAAAGmHBAABAAAAxAAAAGYFAABDYW5vbgBDYW5vbiBESUdJVEFMIElYVVMgMzAwAAAAAAAAAAAAALQAAAABAAAAtAAAAAEAAAAyMDAyOjAxOjE1IDA0OjQyOjU4ABsAmoIFAAEAAABWAwAAnYIFAAEAAABeAwAAAJAHAAQAAAAwMjEwA5ACABQAAAAOAgAABJACABQAAAAiAgAAAZEHAAQAAAABAgMAApEFAAEAAAA+AwAAAZIKAAEAAABGAwAAApIFAAEAAABOAwAABJIKAAEAAABmAwAABZIFAAEAAABuAwAABpIFAAEAAAB2AwAAB5IDAAEAAAAFAAAACZIDAAEAAAAAAAAACpIFAAEAAAB+AwAAfJIHAJoBAACGAwAAhpIHAAgBAAA2AgAAAKAHAAQAAAAwMTAwAaADAAEAAAABAAAAAqADAAEAAABABgAAA6ADAAEAAACwBAAABaAEAAEAAAAwBQAADqIFAAEAAAAgBQAAD6IFAAEAAAAoBQAAEKIDAAEAAAACAAAAF6IDAAEAAAACAAAAAKMHAAEAAAADAAAAAAAAADIwMDI6MDE6MTUgMDQ6NDI6NTgAMjAwMjowMToxNSAwNDo0Mjo1OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAPUAAAAgAAAA1QAAACAAAAABAAAAyAAAAGQAAAAKAAAAAAAAAAMAAACs3QIAAAABAP//AADoAwAAMAEAACAAAAAMAAEAAwAmAAAAHAQAAAIAAwAEAAAAaAQAAAMAAwAEAAAAcAQAAAQAAwAaAAAAeAQAAAAAAwAGAAAArAQAAAAAAwAEAAAAuAQAAAYAAgAgAAAAwAQAAAcAAgAYAAAA4AQAAAgABAABAAAAcVYQAAkAAgAgAAAA+AQAABAABAABAAAAAAAEAQ0AAwAEAAAAGAUAAAAAAABMAAIAAAADAAEAAAAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAwABAAEwAAD/////BgKtACAAdADVAP//AAAAAAAAAAAAAP//AABABkAGAgAwAdMAngAAAAAAAAAAADQAAACPAD8B1QD1AAAAAAAAAAEAAwAAAAAAAAAHMAAAAAAAAAAA//8AANUA+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAElNRzpESUdJVEFMIElYVVMgMzAwIEpQRUcAAAAAAAAARmlybXdhcmUgVmVyc2lvbiAxLjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAPQA9AD0AABqGADOAAAAgE8SAJsAAAAEAAEAAgAEAAAAUjk4AAIABwAEAAAAMDEwMAEQAwABAAAAQAYAAAIQAwABAAAAsAQAAAAAAAAGAAMBAwABAAAABgAAABoBBQABAAAAtAUAABsBBQABAAAAvAUAACgBAwABAAAAAgAAAAECBAABAAAA9AUAAAICBAABAAAA7g8AAAAAAAC0AAAAAQAAALQAAAABAAAA//////////////////////////////////////////////////9//////////////9j/2wCEAAkGBggGBQkIBwgKCQkLDRYPDQwMDRwTFRAWIR0jIiEcIB8kKTQsJCcxJx4fLT0tMTY3Ojo6Iio/RD44QjM3OTYBCQkJDAoMFAwMFA8KCgoPGhoKChoaTxoaGhoaT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT//AABEIAHgAoAMBIQACEQEDEQH/xAGiAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+gEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AOxApcV7J5goUngDNIVweaBC80oYjvRYLseszAY60FjI3c1HLZ3L5r6DjG46jFRFjTVmJtoA5qW3j3vuIBAokuVNgnzOxpKVA5xUNyY3TB4Fc0b3Oh2sZbqAxx0pMV2pnG9xNtJincA20hWmBMBT1XJrJuxaLf7pU4wKqScuayp3vqaTtbQABjmnRJunQdiRVtuz8kQlsa0kUUg+ZFP4VVeyUNuiJB9DXn060oabx6o7Z0oy12l3I5pMDawwcVTIrupbX6PY46u9uq3ExT0kZBxWrV9DNOw4zue9MZi3U0lFIbm2NwKTFUIMUmKYgxSYoAmAFP2+9Z3NLCbaTbzRcmw9baR13KpIp8ETLcpuUjnvWcqsbNXXMk9DSNOV07aX3NInFNPTmvLO8iljWVcN19az2hZZNmMkniuzC1LXg9t0c2Ihe0lv1JZrGWEZIBX1FV8V1U6iqK6+aOacHB2fyYYorQkMUmKYgxSYoEGKTFAyYCnYrM0FCM33VJ+go8mQfwN+VS5xWjaTDlk9kzSRBHGq+gpoO6ZB6mvLk7tvuz0ErK3YlkIQVAz0hkZamhlWRXIztNCdtVuDV9zRDBlBGCCKz7uyO8NCuQeoHatqFTkld/C9zOrDnj5rYYunSn7xVfqaf/Zn/TTn/drpli4p6Lm89jnjhn1dvIo3TRWt5HbGQNNICwUdQB3NGK3pVPaR5tvIyqQ5HbfzDFJitDMMUYoAlxSgVmaGlAAkCjvjNKeTXlzd5N92ehFWSXZCHmoyQjBj2qGUMkn3GojJQA0yUKGf7ozQBbtd6x4fgZ4qxmhMGGcCsjxP4ktvDGiS39yQSPljjzy79hTEcN8P7y51mbUNd1KQGSZxGrHgDP8ACPyFdtivRw1vZ6dHqcNe/P6rQcIXPRGP4UxsLJ5bEB8Z298etbc8b2ur9jLkklezt3DFGKsRLQKzLNFJULiPeofGduecfSiR/wB4qD6mvIb/ADPSQuPWqt+3lxKfVgKT2AqmSk3E9KALUFkW+aTgelWtqhhGgx647Cj+kBI/3Pl7UwOCMijqBICGXNcj448Ax+MfLkN/NbyQqRGmA0fPcj+tMCPwz8PRpWnWcN/ePKYG83yovljL+p7nH4V1sjQWcLSyFIo0GWduAB9apSaVk7J7onlTd+q2Z5n4x+MKWxa08PKJW+610w4B/wBkd/rWr4Es7pdE/tDUpHlvb7EsjyHJ2/wj8j+tb4WN537IyxDtC3dnSYpMV6Jwkt8sktm6wSLFMynY5G7afpXkl3Y61qVyY7zVrkxkncN52kewBx+lediJuKWrSfQ76EVJvRO3Ut6zo0+p3Ed19rc3MUYRC3QADjGOhrofCGvz6bpPk61cyTXab9ryMWLDjA3f56VxKVzqcbGA/wAWdZtrly8CGLcdvm2xAx9Q2f0rc0P4lDxPKbae2t4XjXzN0UrENj/ZZRj86p/CQtzoZryKCJpZpFSNeSxPArk7z4iTC/UaMtkYUJ3SXT43n0AH86Fq7feGxq6Z8VbOWdLfVbY20zEKrwSCaMn8OR+VXbn4laFp9xLDJJcSzLkuIoSQvtk4FNiSuZU3xhtCT9i0i7nHrJIkf9TWx4Y8YxeIIpC8Is5g3+pMofH48UPa4Lsak3iTTbGyuJ7m6RI7Ztsp67T9PxqDTPG2ia7c/ZdMvBNMRu27COO55FF9ANHV9Zs9D097u+lEcSD8WPoBXhPjf4g6j4puWt4w9tYqflhBwW929aa19AMTw9aW93rlnDqEghtjMDIzdMelfREQR4lMJUxkfKV6Y9q7sK1Z9zkxKd12HbKPLrsucyRxsuuXeq25SOUKu8gPESpOPftWMblrWcLJueI/dmHI/E/1rw61R1Ja9NkevSgoR069TQVy6EoVbjiqsy3ZiO+GFXGNoEpIP47axNSgEvPNEF2trI0udqtKRkAc8bKbaaVGkpntbK383JV2W4ZcH0+7zVXttdE2vvZly4tLq8h8q5t4pIyeVN45H/oFVR4cjwB/Zdpjtm6f/wCJpKVurHy+SLFto2m7leK3iEqHBKMTtYe9OGmafcM8hgjkdnIdjzn1pOTGoortoMIkbytNsiueCzkE/wDjpp8FobWbZb2llE57JMQf/QafN5sXL5IfPo8l4jR3SoiH5iEkLZYdCQRin2tzc6FeR3S+XIkYwX+6Rn17VUZW03RMoX12Zj+JdQufEOprcXOr26LH/q4lOQtZc2keYd0uqQMQOpQZquZ9mRZdyGDRx5+WvbfAPH3Rmuy0XXLzw/A/2cG7gJ4QPuVfy71pTquDvYmcFNWbNmx+JFoqyfb4pyxclfLjXCr2H3ucetaVt4+0W4OPOkiP/TRMfrXbHFQe90zklhpLazRyMNxZ21v5K288aHPApIb3TbW0S2iSZUUbQCCePQ15soy6pps7ozj0asgtLnTbIsIXmVDzsIOF+lWDqliwO6duTkEjpUtd0ylLzRQ1KPS9TMZkvZImiyFaNtp5x/hViyfT9Ph8q3uiUzn5jk/nQ2rWBb3Lkd/bYybhT7U4X9sDj7SnHvU6FXZS8i3NvPHHqAjMzM+4EAqSe1Q6fNp+kWotZNTEzK2Q0jYNVvsTe2uyJW16yQEC+gbHvTtN8S6PaXsk1xHFdyOVKlwMIADkA571SjZ9/IHJNb2H3niawu7xpYpEgjzxGqggD65rOnbTjayQx3yqkyjOV3EHGOxH5UW12Fdd9jMtvDmhxXsdw140qoM+U0eVc+/tTNV8PWd/J5kV4kSseALfvgZ6DNac2mxHKu5WPgm23AW+qOwZQDut2Xn04zxnFT2ng9LEiSLWbm3nGdzRWz4Ht2zS5vIfL5mja2chB+33kF1nAz5Tow/HFOm0mFoSI7xAwPyoyEjHfnH9PWpv6jS80dK8cJGdwz9aiFvHnOBXqSVzzouwvkJnBVc/SnizQ/8ALMflXPKKNVJgbCIjmMflUf2C3brEpH+7kVm4ItSGtpdqRzBHj12CoG0mzbAMMeO3FR7MrmFGkWfCmEfhUM3hyykk3FXBPo5oVJBzsrt4QsHck+aPo/8A9aoz4K08E/vJP0P9Kr2fYnnI5PBViQQJZF/Af4VA3gi1B4nbp/cWj2TH7Qhk8GQAACZuneMCq0vhDYMpMufdf/r1SovuJ1UVz4WlLcNH9cH/ABqQeDLhjlZIPx3CmsPJ9SXWS6Cnwhfx/ceL8JmH9KP+Ea1ZD8s34i5Yf0p/Vp+TBYiPmd35eOgIoAJHBH511M50O29C4U47mnhQykBiT6BqxZqhwJTG4N9OtSrtY98+/Ws5eRcfMCgJzj2yKjaMZ64x6VCZTQ5VULyfxNIGRgR5gb2NUri0HeUj5GUcdhjpQzIBhlyvrkD+tUtfInReY37RbO2zcPTOajaKFXz5hI+uaaUkDcWRzRIVzge2BVaXYCBzitY/kZSsvmQmNQc5qSEAg7cH29K0iRIcSGGGcj2yKcANuA/Hck5NWQSzzKR8u/B6hRinIwAA+bH8qybNUSD/AH2A9MnFPDYXA5H51k0aIRkDMA0av6e1SCFduCij6VnJtFJJiGCI9ET64puVU4wc+oBqE2y7JApTdtXeD64OKcx6DJB9s1RIi5ZuCAMdQc0hWRELABiO3JNVdE2ZD+9UBinPcBj/AIUiXEj5DAoMd8mrsmTdr5jHBA+VcH1AzUTKyj69+laRsQ7kZXPynDe2KdHDGP8Alnj8K0RmxzBAOij0HSnxIsikMiqPUNVCHS28RxvJJ+tMEaRP8oOPUtmsWaIsIePf2pySgdT9NwrFo1TFNxs5YoR2waYssLO3mJHk9e+aVn0uO662BhCWyhUevz8flTiM/wCrOf8AgVRfv99i15fdcbmVcMUZiB0UgioJL64QkfZZAPUNVxSe1iJSa6MbHfSsQVtnXuS3FTfanYjfGoxxgfMavl8yObyHl02kLGcn/pkaYJJBn5MA+vGaSXdjv2RCbmYEqVXPs1NeUsvJXPrWkUlsQ5N76EQjycb2+meKsIDj1x6CtIoiV+o/eQvfHuKA/wAvYfhVkjC0gHVQfXFRkXDYO9GI6DFYNmthn+mZz8uP9lQamjmuVA/csffgVDsylddCdLhgp3oE79aie5lxhFWQexJqeW3Urm8vkVvt8gfbIoA/3CDVhJVxlCg+oNJx82ClforoZNdXce0pFGy/3gc5pq307H96kZB7KDQoIHN9kSf2gVOFXr2KkU7+1sAB1z9Oark8xe0EXU4n6RsD9KSd4WQFhz24zTUXHzE5KXkQOY9uMNjsNtIEj2/xfTbjNap+RnZdxu1edq7f6frT0hdlyJG/4C55ql9xLEMjxcBps/gc09LknO/cfZkH+NNaAOUTyjLsY19AaUzJHncWPrmsWro1TsC38J6tge4NONxBMAFc59FJrFprbU1Ti9HoD2sLJhmbHo3SmJZwA5Bj46dqqM7kygiVJkiB+YnPbPFMa9jfcFwSPek43dxqSSsNa7mUbvLVB7tSHUHWLcYmHtkHNCh5sXP5EB1p0TAtHx6g4/lU0OqQyLlrd93q4z+tVZ9G0LnXVCyXdw5/cBMf7uaga+uQwLxIT6gYqlHzZLl5KwNcs7ZljOT6UmYznkp+JFaIhjMRqM+ac/72aljDsR+/z9GqkTYk8uRTnex+rVIszIMfOSfamB//2apR82S5eSsDXLO2ZYzk+lJmM//Y/+0O2lBob3Rvc2hvcCAzLjAAOEJJTQPtClJlc29sdXRpb24AAAAAEABIAAAAAQACAEgAAAABAAI4QklNBA0YRlggR2xvYmFsIExpZ2h0aW5nIEFuZ2xlAAAAAAQAAAAeOEJJTQQZEkZYIEdsb2JhbCBBbHRpdHVkZQAAAAAEAAAAHjhCSU0D8wtQcmludCBGbGFncwAAAAkAAAAAAAAAAAEAOEJJTQQKDkNvcHlyaWdodCBGbGFnAAAAAAEAADhCSU0nEBRKYXBhbmVzZSBQcmludCBGbGFncwAAAAAKAAEAAAAAAAAAAjhCSU0D9RdDb2xvciBIYWxmdG9uZSBTZXR0aW5ncwAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gXQ29sb3IgVHJhbnNmZXIgU2V0dGluZ3MAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAZHdWlkZXMAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4NVVJMIG92ZXJyaWRlcwAAAAQAAAAAOEJJTQQaBlNsaWNlcwAAAAB3AAAABgAAAAAAAAAAAAAAWgAAAHgAAAALAG8AcABlAHIAYQBfAGgAbwB1AHMAZQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAeAAAAFoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOEJJTQQREUlDQyBVbnRhZ2dlZCBGbGFnAAAAAQEAOEJJTQQUF0xheWVyIElEIEdlbmVyYXRvciBCYXNlAAAABAAAAAE4QklNBAwVTmV3IFdpbmRvd3MgVGh1bWJuYWlsAAALLwAAAAEAAABwAAAAVAAAAVAAAG5AAAALEwAYAAH/2P/gABBKRklGAAECAQBIAEgAAP/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIAFQAcAMBIgACEQEDEQH/3QAEAAf/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRygtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMFMoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePzRpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/AOmAU2VPf9ETHJSDURr7GCG6BaJJ6NMeKJzdpjwTahTMkkn5pnTGunx0SvZHdKKcoMDw0lrhIjXRRrrdZu1gjkHlX2yK2DwaPyKFjQ/nQ/vDlVvvGpsDzDY9nQUT5FoPBa6FGXcSiW1uY4h2s8HxTPrex217S13gdFZiYkDY2wGwTvo2an1VMiQh5F1VjdsSeyBCUICAu7KuM1VMITQiEJoT7WMNqbapwlCNqf/Q6sBTZW95hgkjUplZxPovI5JA+5Xck+GJLVhHikAiZjWCxu8DbMnVWbX+09/xTmAQO5/ImcNCfAKpPIZ1daNiEBG66snlrWD4D8iC53igesXAGeQITbydBr5JlrkhcJDiNxaQ4D4K48V31gO9zHag9xPcKqzGfAdZpOjWjklHawVAMBkfx5KVnTwVQa4wXk+54A7dynODW1pc63Y1oLnvdDWtaBue97ifaxjfpK0NeFx3+Md/1it6fX03peHc/DySPtmXUN8ydteJtq3W11bvfc9zP0v80pffyfvfgFnsw7Ovi5VGZQ3KxiXY9hd6NhEb2NcWNu2/mtt272fyEWFHpODlMxG0WUfZKMcMpxhbHqvrYxodfbSwv9H1Ld/p1P8A0npfzv6RR631PovQMcX9UyjW5wmrHrAddZH+ipn/AMEs2VKwM8BEXLWtdGA4ZWaGl90kJQhYN1uVh05N1P2Z17fUFBO5zGO91LbXQz9N6Wx9vt9n82jwpQbAPdjqi//R6D6xX9Qx+n+r0p9NWRuaHeqN52nT9CyW/pGrnas3602YRZZ1U15DrRcLamBpDWtLPs3t/wAE/wDnLPalaMzJqpdl0323k7R7txpDnH9J6jj9Gpuz6KakZlVjab632jtkMaQyR+bcyT6Lv/An/mJZcspHSxFOPGIjWiXSwfrP1LG6Re/qbftnWatwoZWw7Lmy30f5oNbvb+k9T+bVKr/GcW2DG6p0v7K+0hm8Pe0N3e3dtsbY13P76Fdhm1hrc/IIJgu0a4T+axzam+z+V/4IqdJtN/2V1GW2qpz2G+xrHVbBP2d9T3U/ztm36DvoKMSOui4xHd62/qfT8PGORk5NdWPUIdYXAzHthjQdz3Pj2LGx/wDGNg02usdjUuxjGwjIAytv77qXsON7/wDRttVduIwmRZYSNTLav/edK2Mf03tNl++xtRa4MhrX+19x9Khrv0aQl4JMPF23/wCMD6tsZRkOdkuGRW6yqsVDeGjcLH2TZsb/ADbm/SVGz/Gf0h5Apw7yyRNll1LC3X6fpNdY93/FrPx8pt2TkUV1PaKNgNjmQHEn3Gt30XMYpWFja33C+6QC8MYWdtdjG+kXJcfgrg8Xrx1/o7Ayx+ZWGW1WXNM/mVAWW7o+g/Z9Gt300uk/WPpfV7jX019zrGNFjvUpfUdjtGmsv/nNzv3Fy13S3041Vue4ltx/mTZVc2RB22Nqr/N3LPtycnp4fZgMymWAij7NW4hz2Wbv0mM/32VtRBO1I4eoL0H1w+u/7GZZhdJr+09Qb7brtu6nGJ/NsI9luV/wX0Kv8KvOul+n1P6wY9vX8hxquuD8vJvl5cGje2l+jttdzw2r9yqtWG4+O3Edl2dKvrq3loabbd5MbnvcyPo7js9T8+z/AItV2ZWDW8XO6blBp9zQXOLYafcR6gc16cCQQaWEWKt9iIL/AHghweNwc2C0g67mub7dqbYV5vifWTIxqaqsa+7Bqa8PrxcmpzWF8+r7bqf55tn+Eru9Nlq1/wDnn1+gzk4+PY0Qfax7ZB/PZayx9StDmY9QQ1zy8uhBf//SC/pmKPoOIJ7Ne7+9MOnVNH85aB4ixytuDWHbMHwCeAAZPPYj+KsSxw/dH2NeM5dz9rXHTTGl14/tlI4FjSP1rI8hvn8FbDARMRroSf4Byk3cCQWkjsY5CiOOPYMgnLuWj9iuDdMy6PEkEf8AUqIx8sGRnWgdx7T/AN9WkS3ktOneFGAHTB1TeCPZdxy7uZkYXUrdhZ1S1gHGgjy42qpZ0jrTy6OruI7BzT+UPW+Tydp2nvIj/NTzXzHuHiATHyThCKDOXd5odE6wyNnUmeGrXAfDlMenfWMBv+UK3bRDY3cf5hXSOuLCP0YduMl2g/6MlRc2ppLgzbPYnUf2DuR9sI9yXd5l+P8AWVp3DMa4wRydPL3M9qGLPrQ1wAu3RwHODm/9L81dHZsk7WwSBogOaOQ2T3AMpwwx8VpzScYH63kfzm4Dgeo0/wDVOSFv1tYI2jaeRLII/lAXLcZu2CA4eIOhUgNCdr4/OiSnfd4eP4f96t+8T8H/05PZkB28OboPzi7/AL6p1OJEz8Cf9qC4vBEPY13jAJj71HZlfmPZH9Uz+VWZFrC240tPmR2EGfkkHMaQBo4nUOEx+IVXfcwAWmrXncQD9wCT8qn6IDNwGo2kg/cmEWuum4TYCI2OB8AZ/wCqc1DLniR7te7SQNP5YZ7VUD73O2iljmd/T0Mf5zXf9FGDrhpWAHRoHgx83Nc5NqlwNsn5uMyA+yHd9Hc+b9j0qs3FfoHbxoZa0kT/AJqGLuonSxrXDuGz/wBUXKX2jJA1phvYOg/IJwH8rWkn+QZzjuJdIYXcgkA6eA9Ru1QYamglu93jALv836X/AFSTb8h3/aQx5QP+qTWixxaHVWb+4B0H4ohHl+SxdU7hrpI5cDz/AGoQvdOjRH3H7lElu73bh81DfXJDXAHydJ/KpAsJbQIiCSPiRP4p2BocXAy7xMfwQCS0Ai+Y/N3NEfDcFJj73HVu8eHt/wC+7U+1r//UGz0tvs/nO+6N0/20x+3bvZt2x7d0fjuXl6SsS2aw3/g+qV/bJHq7Nvlz89ym7kT6cfPn+wvKElGN/wDvWQ7f98+rH7Rr6e3nSP8AzJB/WIHr7v8Arcx5bvzti8vSTvs/7pb9v7H039N6b9vq+XO3+xv/ADkAftLc3Z9q/wCjt+Xqe1ecpIlH2vp1vrbB9t3bZ1mN3/R/QquPT3D0/V2eUxH/AFK85STo/RbL6/V9Lb638rbP50Qmd6kGfS51mV5qknrX0+v0tv5v9nd/FPp+bO3vG3/0Z7l5ekih/9kAOEJJTQQhGlZlcnNpb24gY29tcGF0aWJpbGl0eSBpbmZvAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAANgAuADAAAAABADhCSU0EBgxKUEVHIFF1YWxpdHkAAAAAB//+AAAAAQEA/+4ADkFkb2JlAGSAAAAAAf/bAIQAFBERGhIaKRgYKTMnICczJxwcHBwnIhcXFxcXIhEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAEVGhohHSEiGBgiFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAWgB4AwEiAAIRAQMRAf/dAAQACP/EARsAAAMBAQEBAQEBAQEAAAAAAAEAAgMEBQYHCAkKCwEBAQEBAQEBAQEBAQEAAAAAAAECAwQFBgcICQoLEAACAgEDAgMEBwYDAwYCATUBAAIRAyESMQRBUSITYXEygZGxQqEF0cEU8FIjcjNi4YLxQzSSorIV0lMkc8JjBoOT4vKjRFRkJTVFFiZ0NlVls4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9hEAAgIABQEGBgEDAQMFAwYvAAERAiEDMUESUWFxgZEiEzLwobEEwdHh8UJSI2JyFJIzgkMkorI0U0Rjc8LSg5OjVOLyBRUlBhYmNWRFVTZ0ZbOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hv/aAAwDAQACEQMRAD8A9dIiTwoDYJi+o85BjSGibVoDGMjqFN3RdsOgbIvl5O8M6Kso5pRIYt2yRPycqd1cow8CoanV33gPMrWpCcFZCJcOdNIaiApFNUtNITSppUD/0PaSrpiGtvpbhScEpcGdF32gCmigvG1pOqrAwAAQSyZVoxucGiyWsVAEON3w6RgQbUgGTF3j9DIwyL0WrtXaRjijlnD04mUiAByw+L1f4kOt6uOCEqwYzuyS+zOWP/31ifcx/wA2InEGiLelbTqZtWNCVay7cETPJIRiO8izCQnESHBFu009DDTQqmlaQ//R9bqs8elh6kgSP8IeDH+MmUZShilYraJfbXP1ks8KiAI9/wDE82OYlpwfB1a+yJWu7PV6L8Tj1tjaYGHxCTcfxXpJGvUA/qEovjysWQDfjfxPBLpISu47SNfJJ5ybg+p9SMyZRIMTwQ55epxYK9WQjfD5GCWXBAQjZA/i2f8AbcJdNOUjMynuPe4KRB9Thy4px3YpCQ8Ync2ckMY88gP6jtfk49NGN5BM2QYk2xL8Ph2s1/T/AO/VIg+rx9RjykjHKMq/gludgbflMEJdLLdCwT7YNZo5swAlI7QTLbu/i/8AKmFSIPo/2TD6nqbI7/4trxfif4xi/Dxt+LKeIfw/+PfNH4hk6bp/Rx0JjieSXwx/9+PiT6eWQ7pGJJ5lu+JskOnpZZvxjqonMbjHzyj9iMY/7v8A8yP1z8b0ccvTz3wkIn2S+J9+P4vGNDLEg/bl/wDAnrSyRztVs9OleWH4n009BOv6gVevJdTnxZ//0sSCAImAoeBWRMzZhqOPM9BJPKu3RGFdmXqS7wP0uOSEMkt08crHte0Jq3PE1yOYZa+zJP7QB9mX0PTtZMXPEvI4JjHKO0idXu0QevgNdsg+iIrsbxHI82H4nCE9+3cRp5wjJ+JY8hJmDR+yH0vT91olgHgD8m8ScjxcuTps/wAYkaG0fv6TOWXTZQBUogaAD/40+ueniR8I+hyl00DzEfQ3iycjyPR6Q95gfv8A+UnaEsGPSE5iP8JO+P8A7rez9kx3rEN/smH+FvBk5o5Tl6aX2iFen9ixfw/eVXtsvNH/06J1oNA+DBjE9liaezOKNBomrLIl4JJLk0VXtQdGdDoQgHwclLGq34MkS7EfNz/mX2+9pDY252Y66tDepvwpoBd6uZtJmfH7mTO3SMsFW1TAIDYmPEOkZDEX3VIKtB//1J0lwLX04ns19l55c93qzkb+mBxakyHA+lxj/qeg/P5MGBnsMvY3t2jU2svm49+6YRcowJ5+9aA03UiXbhwyc9vmgdIG74ZLu2nWX3PHj57fJ6u3b/V8TQEzB+0iz73Lx4SP3pqMlX4hom+AQx37uw4/N0QmMfaqnnsqB//Z"/>
+ </image>
+ <text y="60" text-anchor="middle">&lt;image&gt;</text>
+ </g>
+
+ <g transform="translate(420,210)">
+ <use xlink:href="#useA" font-size="30" fill="rgb(230,230,230)" text-anchor="middle" stroke="rgb(255,180,0)" font-weight="bold">
+ <animate id="useAnimate" attributeName="xlink:href" from="#useB" to="#useA" begin="0s;useAnimate.end" dur="2s"/>
+ </use>
+
+ <text y="60" text-anchor="middle">&lt;use&gt;</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-40-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-40-t-isvalid.html
new file mode 100644
index 0000000000..0e8682825a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-40-t-isvalid.html
@@ -0,0 +1,200 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-40-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-40-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-40-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="25" font-size="16">&lt;animate&gt; of x/y/width/height</text>
+
+ <g font-size="14">
+ <g transform="translate(60,90)">
+ <defs>
+ <rect id="posMarker" x="-3" y="-3" width="6" height="6"/>
+
+ <g id="markerGroup" fill="rgb(230,230,230)" stroke="rgb(255,180,0)">
+ <use id="topLeft" xlink:href="#posMarker" x="-15" y="-15"/>
+ <use id="topRight" xlink:href="#posMarker" x="15" y="-15"/>
+ <use id="bottomRight" xlink:href="#posMarker" x="15" y="15"/>
+ <use id="bottomLeft" xlink:href="#posMarker" x="-15" y="15"/>
+ <set xlink:href="#topLeft" attributeName="fill" to="rgb(255,180,0)" begin="0s;4s" dur="0.2s"/>
+ <set xlink:href="#topRight" attributeName="fill" to="rgb(255,180,0)" begin="1s" dur="0.2s"/>
+ <set xlink:href="#bottomRight" attributeName="fill" to="rgb(255,180,0)" begin="2s" dur="0.2s"/>
+ <set xlink:href="#bottomLeft" attributeName="fill" to="rgb(255,180,0)" begin="3s" dur="0.2s"/>
+ </g>
+
+ <path id="pathID" d="M 0 0 Q 20 0 20 -20 Q 0 -20 0 0 Q 0 -20 -20 -20 Q -20 0 0 0 Q -20 0 -20 20 Q 0 20 0 0 Q 0 20 20 20 Q20 0 0 0 Z" fill="rgb(230,230,230)" stroke="rgb(255,180,0)"/>
+ </defs>
+
+ <use xlink:href="#pathID" x="-15" y="-15">
+ <animate attributeName="x" values="-15;15;15;-15;-15" begin="0s" dur="4s"/>
+ <animate attributeName="y" values="-15;-15;15;15;-15" begin="0s" dur="4s"/>
+ </use>
+
+ <use xlink:href="#markerGroup"/>
+
+ <text text-anchor="middle" y="60">x/y on &lt;use&gt;</text>
+ </g>
+
+ <g transform="translate(180,90)">
+ <image xlink:href="data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACWAPADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCeSMqeDUDsy1YkPzHNRMFYcVZkQiQ0MA9IyEdKi3EGmBNGm1s4qfft4xUUL+tPlyTmkApYOORUDwgnNSbyKazmgCExBKjZgOKfIfeqsmexpgS5pjPimKSOvShsUAO3UhamZwaM0XAUtTC1ISaYxxQIcZKUMDVctQJMUwLOQBUbPUfm571Gz0ASmT1pPMqAvTd+eKALHmVJG/FU2bpU8bDbQIsb6XfkVXLUm+gCcmmlqhLn1qNpTQBK0mKhaQ1E0hNRlz60DPdL3wtZSJuhY7vTFc3PogiLjBG2vR2RSN2eTVeS0jlydoyaxUjSx5dLYsoJ/Kqb2slej6h4YF1h4GEZA+7jrWHL4WvwTiLOKrmQrHGEMnFKrO3Hauqk8Iakwz5OfxqhPoF5bMVeI5HpT5kKzMXGDTTkGrU1u6HlGGPaoSuTRcLEDsfTNVmOauPGeMVXMYGRRcdiNVLew9aQxndjmpFyv0p/BpXHYrMpHQcUzNWG7iq7DFFxWGsaiZqcTUT5qrisNLU0tUbEimbzRcViQsRTC5phehW5p3AC5HXikZu4NIzgnBqMnkgdKLiLAk+TFPWYYxVUA460hYgUXAuebR5lVN+B1o83FMCyZKjZ6rmamGagCdnpuc1B5tAlFAH0/DMjBdzLgjPXn8qs74UVT5sY3HjkcmvNzeloEAY7lGDk1SmuZe7H86x5DTmPWTIoH31Xd709rmOEfPnIHXHBryOLUp04ErD8a0f+EguZLI27uSOxPUUuRhzHdNqINwGS4/dsfmTris3U5YZpd0Qf8TXCNfyq4becjvmtXT9euFYKyLKvcMKfLYL3NJ0Vuqg/UVUl063kB/dKCe4FaLSxTqGjj2e2c0wKaZOqOautJ8rkDcp71Rl0wldwGBXaiHdxjNB01JBgp+VJstHnxsip6UGzbGQK71PDTSyYjbI9CtWo/Bs2QCY+ffpWUp9jWMU9zzNrZh1FV5bc+len3PgmfaTHtY+max7vwffopb7MxUegzS9o1uh+zXRnnrxY7VA0ZrqLzSJYAd0bD6isO4gKk8VaqJkODRmOBUDAVPMCCaquSK0TIcRrtUXmEUrZNRsrelO5NhTIKXzRVdgRTc+tO4r FrzeKjL5qEvSZOKdwJGkqNpsVE7EVCz0XETtNTDNVctSUXAsed70omqtS5ouB699q96YbgNxmszz885qNpiG4oEavmDGKYZSOhrPFz60puPemBdMmTyc1agvFj6dayPPFAm9DSsO508GrumMYrWj1qMoPlG761wq3BHep1uXxwamw7neW2uxo+JVA9CBWzbatp/mI0rAq3pxivMFuXPerEVy4P3qhwRopntdv9nkUSQFGB6FTmpq8r0jV57KdSrttyMgHrXo1jdG8jSVJAUI5XPIqb8ulh2vqXqKKK0IK13p9texGOeFWB74rz/WvAUxkZrRQ6H07V6GblN5VQWI64oS6jZyhO1h2asZKDejszaLmlqtDwe/8K3UDHK9KxpdIdPvDFfQ89vpVxIwljgZ26lh1rnPEPha3kjBtLYAgc44FTzOO+pVlLbQ8Re0EYORUOwHjbXa3+gyRKzPGVA9a564tthIxWsZpmUoNGHLb9TVKSMrWvMhFUpVPpV3IsZxHNDNxgVM6e1QslVcViJue9QsKsFKQx0CKpBpOlWNpz0o8lmHAoAr5pc1aSwlkPCE1bTRbggfu2NAHSp5i9cUrPgVrLaof+WfNVZbdQ+Gjz9KLisUPMphmwetbUGjwzpyShP6VI3hZGK4vVBPXK8CjmHYwhL707z/Q1sf8IlL2vIf1qGfwrfQjKFZe/wAtHMg5WUllyKk+0EVHJp97CcNA59wM1CySg4KMCPUUXFYti4NWIrk+tZYdl68VNHLzSKSN22uG3A5NdVomoXNtKkiSlVzyPauDTUbO3dUnuIo3borMBWlb6/ZRswe6jTYdp3naM/j1rOSNIux7jbXcN1CssbDB7Z5FNmvIolO7dxxxXkUHj3R4ZAqagnTqARz7cVcX4j2Hli6e4nVNwQ74zjnufb3qOaTHZI6++8SPBKwFsEHYkdaxG1xjKXEh3H3qvfeIbR0Y3N5aokgyod1H5Vz8txalfNW6iCZxneMZ+tNRT3DmZ0iX09zOziXGBkjPXFMn8S3suY2mfaOwNYEN5H9n81Z9iMSqsT9/tx696jaRVjaRpokUfeZnAA+pp8qFzM15tSMibZlDg1hXllBMxKOR7EVTk1/ToLe3nnvEWKckIxz261W/4S/SI7l4ZZoNgAKSiQMH9RgdOtJRS2G5t7kVzp7rkqcismaFgeRVi/8AG2kxyokLGQM2GZBwo/GsmfxjZeaQsO+PnnJB/LFWibkjRjPSm/Zy3RKx7vxfv/49rNU93Oaz/wDhJb8H/WAY6YGP/wBdMR1JsWxnbUJtD3WufXxRqHmFy6MD/wAs9vA/rW1Z6/ZXD26zy+SZGKvu6JgdSfQ07isXYNOMhHyHHsK0Y9EUn5GGR2NVrvxxpljA0dknnuhATPCsPXNUJfiOxjBjsU3kDq5wD34x+XNK7DlOqs7VYX+WBSR61PPkj5uPYVwM3xB1F5SYre2jQjAUqTj3zmqM/jDUpY8C4KsR8xCjg+3FGo7HrEdwv8P61YWQ9SBiqxhsIb6Kza4HnSqXUYPQf5P5VOwsbS3upLq+j/dhmVN4U4Azjmi6JsyQsxG8Y/OpIZ3m+R+Rn1xWZL4j8O2OjRXpvIp7hkVvsqSqzKSOh+nes/V/iBolvGz6ZEk86kY3h1B9ccUuYq1jsF+zFcbXVvXORWhZ2M0jYWQFOxzkV4tffEzV5XkFvHaxIRhWER3D82IqhbfEbxLbyB/t4YLkhWiXH6CpalbQtNX1PdNQENusrzybNoJztyDxxyB3rhNV8ZaRbQuFheWUj5DjaD/X9K8y1PxLrGsuTf6hcTqWLbHc7R9F6CqcZ3OM80JNIXU6q/8AFl1dogtI1typyzcNn25FZ8muapLuzd4yMfKij+QrP59KQjHWldhYa13dCYyNK5cnO7POfrSG4dslmJJPNRuwZT7VEHFVuIs+aaa0p5wTUYYnpSEHqQaVhjjKcdaDM5Xbk49M1F1oyfSmIe0zkAFiQowAT0pnmtyAxApDyM0zApgP3EjqaazcUH5elNJoAaTSFqDSUwDdTaO9GOK AD+VGaM8YpKYDqKTPvRmgB2SKaTRSHpQBoTXt5cyB57mZ2HG53JxVfcWbG+vRZNNsZUAkt0K/e+YHrVc6JpbAf6Ehz0IyKCbnCKuO5p231JruP7E0zBzbJgdfmPH601tE00/dthn/AHm/xoC5xDKvZj75FRHA9PrXbNomnA8W5HH981EdD05j/qj/AN/DQHMccM+9WrZgDgjntXS/2Dp/aJ/++zR/YtiuMI4P+8c0mrjUjDLtjOOKjZmP0rffTbNE+VXJ9N1EWkW03WORT7sKiw7nMOdoNMT5m7j1rso/C1vO3MjAZwMHOa1NP+HtvdsoW5I3gENjIpOpGO5ShJ7I4IMMYHFLgHAzz3r1uL4P2rKS2pENzgbCMn8cUyb4VWEPJ1FiMfeGCM/gay9tDuaeyn2PI5UAwV/Koeetel3ngPT4CQL0kYz82Af51jSeGLJM7Jy2O/StI1IshwaONPTJBNIsbsM4OK6d9AgDEZOKfBpVtBuDJnjjJq29NCDlXBXr+lM2n0rop9KtyxIX9TVc6dAvGz9apCuYRBHem4OO9bhsYP7lJ9hg/uUxcyMPn0o/A1tmxg/ufrQbKD+5QHMjEo4rZNjAf4f1phsYM48tvrziiwcyMmjFaxsIB/AfzNJ9jgH8P60BzIyiDTTxWr9lhx939aabWEn7v60D5jvPMLEDG9c5xtzj9aTMxxtBAPXA5FM2yDlZuOmM/wCAoInONzp7k5oIHNCXGGyfrzmkEW1cjP600RlckTAnPJ3daBIATudyTwOn5Uhjdw28cj1I61EzEMdx2jvyP6VO7K+FLLnPQn/Cojhckuvt83+NMGG3IGORjseRSFycLhgcYwf/AK1ROA+0CQY7ndmkjXYpETqc9BvJoET5kw3G/wCnaiPerYZl+h7fz/lUexmxtbkcnDEf0qaBXbA37SOSwPbtUsuJqWkjAKfMKg84GP8AP4V1ulWaTywsty5c/KcFuM9+D6etc5a217wIIl8tgAXYYAPXrg811NgbuO3dN0yuDx5TBR9STnofpXFVZ2U0bB2WiYNxwPk+8VCe5Bb+Z/KoiFETPayo8GfnbBIB6HgY7nr7VqCO4FlHI9vdGfaN0v2mNdgz6nGB+tU5hIYpJWjicsBmVJ0JI5Gdy/1zWFja5yuphoJn2Mp3ccRcj3weT/8AXrmr53OCeVJI5Qiuk1SCJpI/LkuEduVEeBz6bsA/l+NYFzatuSNRIqYyD5mc++StdFMwmY0yvkHcB6Z//VVNzKe5/E1eeHaXkEko74ZVOPpxVNuR8+T6/d/pXTE52VmLHrx7VBLnGc1LhS3Q4HrUUuMVojNkJJ9qQUE+lMzVEj80mabnPWjpmgBSaaaM5ppNAgJzTSaMnv8ApSE5NAxpNITRznGePpTT9f0pDOzbMeAsasPRmP8AQUfIGy6rgnquT/SociRM4IHokf8A9fNIpAHLOQOMYyKBFjY3O1VK+7Y/pQ3AIXH54FQiT5QAsjHrkjA/PFMkuiv3lAXPJYhR+HNAyUgqcEoAenem+WVbkHb7etVJJlL7oU3Hvtbr/jTPtJ3/ALxYoh6SOOfwoAszADHyhCOhxz/OkDcA/Mw75O0f41Cwt8h2iXI7quf5ZpAIw29Rj6gj+dAizh8kpGioT134P8quRxr5gaUEHHeXkj6nOD+FUgQcKY5H3cDbz/WrFu6RzbzPiRzjPlud3PJzzUSZpFHR6YJkkUQmZiOTHK4YBe/GMEf5wa6PT3AKpZt5sSNmRZAYmP4bea57TL6ztrp0ku/MRR8ojtmBDY/hIHXjk961LTxH5kbwqr+dsJDNHODuIP8AdHPOeCMVxTu+h2waXU68HUtryWpgYAYEUriTH0GAV+gqtcNqgjUmxtwSoD+XO6que5AQ/wBPxzWJNaC809mkURLt2YH2iLJ654znp3B7UQ2MMcI8vUb6SVU2BopC8n4EqD9M/wD1qyt3LK+qWstxGy3V3LK2MILd3Axkcnt2/KuYntoLJWtpLRmIO4FQWJP/AAIjity60+aMSKL67kBUbkkk3BjjPIMTZrM e2t1sWRJn3sG2iNN/Ab/cAwORnA5raDsZS1OflmkjY7rCTG3gJEmMe/P9apySg5PksMdeB1/CtKZGA8pzJweoTB/+vxWPKjHAjkuGDD1PP6V1ROaRFLIoJAjYc1Wdtx5B/GpHDA4eTOfUkf0qBgAfvc/jWqMmITjtgUzdz1FKSfqKYeRnFMQ7PNJmm5Pekz6/yoAcTSHmkzSZoAX6HFN6Um8HvmgmgAJPpSA0lJuOSMEUhnWpAVJCJEM8Z2AfyFVrm3cxly21ccgMeg+mKKKCRY4IvKDCNSo7Hn+eaHRbcFhCgwMkK2Pb0oooGRP5QI326sTwPnNMVLUSErbjOeh6UUUATIsTqc7wM9AelBgiWNmCbgP7x70UUDKwlt4jkxFivJJAresLkTW8twYd4jXP+sKHrjsD/k0UVEldGkXZ6F2yne5PlLugDjARX3pgezDg/nXX2HzXS2gjEkhUOqySMI24z8w57e1FFcdXex1U9rl+GDVFcNZQWUEkxJVvPkA465CBc9B61japp3jGBWVNbtTF5WXzH82D77ST+dFFTFJMJSdjBNvrJuUtry7t7kQLkFlIPQnGRjP3epqp9g1YiW6E1pDHCmfLi34OTjr17+tFFboybdzHv7y/uLl55JUl52AtuXgcDgHFZpkmkXcywj5scKT/ADooreKVjCTdyCVmJwZGAPZQAKYVZcKDRRVEkbsQeSSTTCc8UUVQCZpM0UUgAg/hTM0UUxDHlCEAg0gmDHABoopFBvyO9LuJoooEf//Z" x="-15" y="-15" width="50" height="50" preserveAspectRatio="none">
+ <animate attributeName="x" values="-15;15;15;-15;-15" begin="0s" dur="4s"/>
+ <animate attributeName="y" values="-15;-15;15;15;-15" begin="0s" dur="4s"/>
+ </image>
+
+ <use xlink:href="#markerGroup"/>
+
+ <text text-anchor="middle" y="60">x/y on &lt;image&gt;</text>
+ </g>
+
+ <g transform="translate(300,90)">
+ <rect x="-15" y="-15" width="50" height="20" fill="black" stroke="rgb(255,180,0)">
+ <animate attributeName="x" values="-15;15;15;-15;-15" begin="0s" dur="4s"/>
+ <animate attributeName="y" values="-15;-15;15;15;-15" begin="0s" dur="4s"/>
+ </rect>
+
+ <use xlink:href="#markerGroup"/>
+
+ <text text-anchor="middle" y="60">x/y on &lt;rect&gt;</text>
+ </g>
+
+
+ <g transform="translate(300,90)">
+ <rect x="-15" y="-15" width="50" height="20" fill="black" stroke="rgb(255,180,0)">
+ <animate attributeName="x" values="-15;15;15;-15;-15" begin="0s" dur="4s"/>
+ <animate attributeName="y" values="-15;-15;15;15;-15" begin="0s" dur="4s"/>
+ </rect>
+
+ <use xlink:href="#markerGroup"/>
+
+ <text text-anchor="middle" y="60">x/y on &lt;rect&gt;</text>
+ </g>
+
+ <g transform="translate(420,90)">
+ <defs>
+ <font id="MyDecFont" horiz-adv-x="466">
+ <font-face font-family="MyDecFont"/>
+ <missing-glyph horiz-adv-x="233" d="M 50 0 L50 700 200 700 200 0 z"/>
+ <glyph unicode="1" glyph-name="one" horiz-adv-x="558" d="M458 716L100 534V428L357 552V97H241V380L140 328V0H458V716Z"/>
+ <glyph unicode="2" glyph-name="two" horiz-adv-x="585" d="M69 509Q82 523 102 541T147 575T203 603T268 614Q311 614 342 599T392 560T421 505T430 443Q430 420 423 398T405 352L343 201H444L492 309Q508 345 519 379T531 448Q531 504 511 552T454 635T369 691T262 711Q231 711 204 704T152 684T106 655T69 623V509ZM535 97H187L309 422Q316 441 315 457T306 483T287 500T265 506Q261 506 254 505T239 499T224 485T211 461L50 0H535V97Z"/>
+ <glyph unicode="3" glyph-name="three" horiz-adv-x="542" d="M58 553Q109 588 148 601T220 614Q255 614 282 604T328 575T356 535T366 488Q366 475 364 460T355 429T336 397T302 368Q311 363 325 353T352 326T376 286T386 232Q386 203 376 177T345 130T295 98T227 86Q179 86 134 104T50 153V45Q59 38 74 29T111 10T163 -5T231 -11Q296 -11 345 8T426 58T475 131T492 218Q492 251 486 276T469 320T446 354T421 378Q438 396 454 425T470 503Q470 546 454 584T406 650T332 695T233 711Q179 711 137 696T58 655V553ZM156 255Q156 229 173 212T217 194Q243 194 260 211T278 255Q278 281 261 298T217 316Q191 316 174 299T156 255ZM161 467Q161 444 177 428T216 412Q225 412 234 415T252 425T265 442T271 467Q271 491 256 506T216 522Q202 522 192 517T174 503T164 486T161 467Z"/>
+ </font>
+ </defs>
+
+ <text id="textID" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" font-family="MyDecFont" font-size="40" x="-15" y="-15">123</text>
+ <animate xlink:href="#textID" attributeName="x" values="-15;15;15;-15;-15" begin="0s" dur="4s"/>
+ <animate xlink:href="#textID" attributeName="y" values="-15;-15;15;15;-15" begin="0s" dur="4s"/>
+
+
+ <use xlink:href="#markerGroup"/>
+
+ <text text-anchor="middle" y="60">x/y on &lt;text&gt;</text>
+ </g>
+
+
+ <g transform="translate(60,210)">
+ <defs>
+ <g id="markerGroup2" fill="rgb(230,230,230)" stroke="rgb(255,180,0)">
+ <use id="topLeft2" xlink:href="#posMarker" x="-15" y="-15"/>
+ <use id="topRight2" xlink:href="#posMarker" x="15" y="-15"/>
+ <use id="bottomRight2" xlink:href="#posMarker" x="15" y="15"/>
+ <use id="bottomLeft2" xlink:href="#posMarker" x="-15" y="15"/>
+ <set xlink:href="#topLeft2" attributeName="fill" to="rgb(255,180,0)" begin="0s;4s" dur="0.2s"/>
+ <set xlink:href="#topRight2" attributeName="fill" to="rgb(255,180,0)" begin="3s" dur="0.2s"/>
+ <set xlink:href="#bottomRight2" attributeName="fill" to="rgb(255,180,0)" begin="2s" dur="0.2s"/>
+ <set xlink:href="#bottomLeft2" attributeName="fill" to="rgb(255,180,0)" begin="1s" dur="0.2s"/>
+ </g>
+ </defs>
+
+ <text id="text2ID" fill="rgb(230,230,230)" stroke="rgb(255,180,0)" font-family="MyDecFont" font-size="40" x="-35 5" y="-15 -15">12</text>
+ <animate xlink:href="#text2ID" attributeName="x" values="-35 5;-5 5;-5 35;-35 35;-35 5" begin="0s" dur="4s"/>
+ <animate xlink:href="#text2ID" attributeName="y" values="-15 -15;-15 15;15 15;15 -15;-15 -15" begin="0s" dur="4s"/>
+
+ <use xlink:href="#markerGroup" x="-20"/>
+ <use xlink:href="#markerGroup2" x="20"/>
+
+ <text text-anchor="middle" y="60">x/y on &lt;text&gt;(2)</text>
+ </g>
+
+ <g transform="translate(180,210)">
+ <image xlink:href="data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACWAPADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCeSMqeDUDsy1YkPzHNRMFYcVZkQiQ0MA9IyEdKi3EGmBNGm1s4qfft4xUUL+tPlyTmkApYOORUDwgnNSbyKazmgCExBKjZgOKfIfeqsmexpgS5pjPimKSOvShsUAO3UhamZwaM0XAUtTC1ISaYxxQIcZKUMDVctQJMUwLOQBUbPUfm571Gz0ASmT1pPMqAvTd+eKALHmVJG/FU2bpU8bDbQIsb6XfkVXLUm+gCcmmlqhLn1qNpTQBK0mKhaQ1E0hNRlz60DPdL3wtZSJuhY7vTFc3PogiLjBG2vR2RSN2eTVeS0jlydoyaxUjSx5dLYsoJ/Kqb2slej6h4YF1h4GEZA+7jrWHL4WvwTiLOKrmQrHGEMnFKrO3Hauqk8Iakwz5OfxqhPoF5bMVeI5HpT5kKzMXGDTTkGrU1u6HlGGPaoSuTRcLEDsfTNVmOauPGeMVXMYGRRcdiNVLew9aQxndjmpFyv0p/BpXHYrMpHQcUzNWG7iq7DFFxWGsaiZqcTUT5qrisNLU0tUbEimbzRcViQsRTC5phehW5p3AC5HXikZu4NIzgnBqMnkgdKLiLAk+TFPWYYxVUA460hYgUXAuebR5lVN+B1o83FMCyZKjZ6rmamGagCdnpuc1B5tAlFAH0/DMjBdzLgjPXn8qs74UVT5sY3HjkcmvNzeloEAY7lGDk1SmuZe7H86x5DTmPWTIoH31Xd709rmOEfPnIHXHBryOLUp04ErD8a0f+EguZLI27uSOxPUUuRhzHdNqINwGS4/dsfmTris3U5YZpd0Qf8TXCNfyq4becjvmtXT9euFYKyLKvcMKfLYL3NJ0Vuqg/UVUl063kB/dKCe4FaLSxTqGjj2e2c0wKaZOqOautJ8rkDcp71Rl0wldwGBXaiHdxjNB01JBgp+VJstHnxsip6UGzbGQK71PDTSyYjbI9CtWo/Bs2QCY+ffpWUp9jWMU9zzNrZh1FV5bc+len3PgmfaTHtY+max7vwffopb7MxUegzS9o1uh+zXRnnrxY7VA0ZrqLzSJYAd0bD6isO4gKk8VaqJkODRmOBUDAVPMCCaquSK0TIcRrtUXmEUrZNRsrelO5NhTIKXzRVdgRTc+tO4r FrzeKjL5qEvSZOKdwJGkqNpsVE7EVCz0XETtNTDNVctSUXAsed70omqtS5ouB699q96YbgNxmszz885qNpiG4oEavmDGKYZSOhrPFz60puPemBdMmTyc1agvFj6dayPPFAm9DSsO508GrumMYrWj1qMoPlG761wq3BHep1uXxwamw7neW2uxo+JVA9CBWzbatp/mI0rAq3pxivMFuXPerEVy4P3qhwRopntdv9nkUSQFGB6FTmpq8r0jV57KdSrttyMgHrXo1jdG8jSVJAUI5XPIqb8ulh2vqXqKKK0IK13p9texGOeFWB74rz/WvAUxkZrRQ6H07V6GblN5VQWI64oS6jZyhO1h2asZKDejszaLmlqtDwe/8K3UDHK9KxpdIdPvDFfQ89vpVxIwljgZ26lh1rnPEPha3kjBtLYAgc44FTzOO+pVlLbQ8Re0EYORUOwHjbXa3+gyRKzPGVA9a564tthIxWsZpmUoNGHLb9TVKSMrWvMhFUpVPpV3IsZxHNDNxgVM6e1QslVcViJue9QsKsFKQx0CKpBpOlWNpz0o8lmHAoAr5pc1aSwlkPCE1bTRbggfu2NAHSp5i9cUrPgVrLaof+WfNVZbdQ+Gjz9KLisUPMphmwetbUGjwzpyShP6VI3hZGK4vVBPXK8CjmHYwhL707z/Q1sf8IlL2vIf1qGfwrfQjKFZe/wAtHMg5WUllyKk+0EVHJp97CcNA59wM1CySg4KMCPUUXFYti4NWIrk+tZYdl68VNHLzSKSN22uG3A5NdVomoXNtKkiSlVzyPauDTUbO3dUnuIo3borMBWlb6/ZRswe6jTYdp3naM/j1rOSNIux7jbXcN1CssbDB7Z5FNmvIolO7dxxxXkUHj3R4ZAqagnTqARz7cVcX4j2Hli6e4nVNwQ74zjnufb3qOaTHZI6++8SPBKwFsEHYkdaxG1xjKXEh3H3qvfeIbR0Y3N5aokgyod1H5Vz8txalfNW6iCZxneMZ+tNRT3DmZ0iX09zOziXGBkjPXFMn8S3suY2mfaOwNYEN5H9n81Z9iMSqsT9/tx696jaRVjaRpokUfeZnAA+pp8qFzM15tSMibZlDg1hXllBMxKOR7EVTk1/ToLe3nnvEWKckIxz261W/4S/SI7l4ZZoNgAKSiQMH9RgdOtJRS2G5t7kVzp7rkqcismaFgeRVi/8AG2kxyokLGQM2GZBwo/GsmfxjZeaQsO+PnnJB/LFWibkjRjPSm/Zy3RKx7vxfv/49rNU93Oaz/wDhJb8H/WAY6YGP/wBdMR1JsWxnbUJtD3WufXxRqHmFy6MD/wAs9vA/rW1Z6/ZXD26zy+SZGKvu6JgdSfQ07isXYNOMhHyHHsK0Y9EUn5GGR2NVrvxxpljA0dknnuhATPCsPXNUJfiOxjBjsU3kDq5wD34x+XNK7DlOqs7VYX+WBSR61PPkj5uPYVwM3xB1F5SYre2jQjAUqTj3zmqM/jDUpY8C4KsR8xCjg+3FGo7HrEdwv8P61YWQ9SBiqxhsIb6Kza4HnSqXUYPQf5P5VOwsbS3upLq+j/dhmVN4U4Azjmi6JsyQsxG8Y/OpIZ3m+R+Rn1xWZL4j8O2OjRXpvIp7hkVvsqSqzKSOh+nes/V/iBolvGz6ZEk86kY3h1B9ccUuYq1jsF+zFcbXVvXORWhZ2M0jYWQFOxzkV4tffEzV5XkFvHaxIRhWER3D82IqhbfEbxLbyB/t4YLkhWiXH6CpalbQtNX1PdNQENusrzybNoJztyDxxyB3rhNV8ZaRbQuFheWUj5DjaD/X9K8y1PxLrGsuTf6hcTqWLbHc7R9F6CqcZ3OM80JNIXU6q/8AFl1dogtI1typyzcNn25FZ8muapLuzd4yMfKij+QrP59KQjHWldhYa13dCYyNK5cnO7POfrSG4dslmJJPNRuwZT7VEHFVuIs+aaa0p5wTUYYnpSEHqQaVhjjKcdaDM5Xbk49M1F1oyfSmIe0zkAFiQowAT0pnmtyAxApDyM0zApgP3EjqaazcUH5elNJoAaTSFqDSUwDdTaO9GOK AD+VGaM8YpKYDqKTPvRmgB2SKaTRSHpQBoTXt5cyB57mZ2HG53JxVfcWbG+vRZNNsZUAkt0K/e+YHrVc6JpbAf6Ehz0IyKCbnCKuO5p231JruP7E0zBzbJgdfmPH601tE00/dthn/AHm/xoC5xDKvZj75FRHA9PrXbNomnA8W5HH981EdD05j/qj/AN/DQHMccM+9WrZgDgjntXS/2Dp/aJ/++zR/YtiuMI4P+8c0mrjUjDLtjOOKjZmP0rffTbNE+VXJ9N1EWkW03WORT7sKiw7nMOdoNMT5m7j1rso/C1vO3MjAZwMHOa1NP+HtvdsoW5I3gENjIpOpGO5ShJ7I4IMMYHFLgHAzz3r1uL4P2rKS2pENzgbCMn8cUyb4VWEPJ1FiMfeGCM/gay9tDuaeyn2PI5UAwV/Koeetel3ngPT4CQL0kYz82Af51jSeGLJM7Jy2O/StI1IshwaONPTJBNIsbsM4OK6d9AgDEZOKfBpVtBuDJnjjJq29NCDlXBXr+lM2n0rop9KtyxIX9TVc6dAvGz9apCuYRBHem4OO9bhsYP7lJ9hg/uUxcyMPn0o/A1tmxg/ufrQbKD+5QHMjEo4rZNjAf4f1phsYM48tvrziiwcyMmjFaxsIB/AfzNJ9jgH8P60BzIyiDTTxWr9lhx939aabWEn7v60D5jvPMLEDG9c5xtzj9aTMxxtBAPXA5FM2yDlZuOmM/wCAoInONzp7k5oIHNCXGGyfrzmkEW1cjP600RlckTAnPJ3daBIATudyTwOn5Uhjdw28cj1I61EzEMdx2jvyP6VO7K+FLLnPQn/Cojhckuvt83+NMGG3IGORjseRSFycLhgcYwf/AK1ROA+0CQY7ndmkjXYpETqc9BvJoET5kw3G/wCnaiPerYZl+h7fz/lUexmxtbkcnDEf0qaBXbA37SOSwPbtUsuJqWkjAKfMKg84GP8AP4V1ulWaTywsty5c/KcFuM9+D6etc5a217wIIl8tgAXYYAPXrg811NgbuO3dN0yuDx5TBR9STnofpXFVZ2U0bB2WiYNxwPk+8VCe5Bb+Z/KoiFETPayo8GfnbBIB6HgY7nr7VqCO4FlHI9vdGfaN0v2mNdgz6nGB+tU5hIYpJWjicsBmVJ0JI5Gdy/1zWFja5yuphoJn2Mp3ccRcj3weT/8AXrmr53OCeVJI5Qiuk1SCJpI/LkuEduVEeBz6bsA/l+NYFzatuSNRIqYyD5mc++StdFMwmY0yvkHcB6Z//VVNzKe5/E1eeHaXkEko74ZVOPpxVNuR8+T6/d/pXTE52VmLHrx7VBLnGc1LhS3Q4HrUUuMVojNkJJ9qQUE+lMzVEj80mabnPWjpmgBSaaaM5ppNAgJzTSaMnv8ApSE5NAxpNITRznGePpTT9f0pDOzbMeAsasPRmP8AQUfIGy6rgnquT/SociRM4IHokf8A9fNIpAHLOQOMYyKBFjY3O1VK+7Y/pQ3AIXH54FQiT5QAsjHrkjA/PFMkuiv3lAXPJYhR+HNAyUgqcEoAenem+WVbkHb7etVJJlL7oU3Hvtbr/jTPtJ3/ALxYoh6SOOfwoAszADHyhCOhxz/OkDcA/Mw75O0f41Cwt8h2iXI7quf5ZpAIw29Rj6gj+dAizh8kpGioT134P8quRxr5gaUEHHeXkj6nOD+FUgQcKY5H3cDbz/WrFu6RzbzPiRzjPlud3PJzzUSZpFHR6YJkkUQmZiOTHK4YBe/GMEf5wa6PT3AKpZt5sSNmRZAYmP4bea57TL6ztrp0ku/MRR8ojtmBDY/hIHXjk961LTxH5kbwqr+dsJDNHODuIP8AdHPOeCMVxTu+h2waXU68HUtryWpgYAYEUriTH0GAV+gqtcNqgjUmxtwSoD+XO6que5AQ/wBPxzWJNaC809mkURLt2YH2iLJ654znp3B7UQ2MMcI8vUb6SVU2BopC8n4EqD9M/wD1qyt3LK+qWstxGy3V3LK2MILd3Axkcnt2/KuYntoLJWtpLRmIO4FQWJP/AAIjity60+aMSKL67kBUbkkk3BjjPIMTZrM e2t1sWRJn3sG2iNN/Ab/cAwORnA5raDsZS1OflmkjY7rCTG3gJEmMe/P9apySg5PksMdeB1/CtKZGA8pzJweoTB/+vxWPKjHAjkuGDD1PP6V1ROaRFLIoJAjYc1Wdtx5B/GpHDA4eTOfUkf0qBgAfvc/jWqMmITjtgUzdz1FKSfqKYeRnFMQ7PNJmm5Pekz6/yoAcTSHmkzSZoAX6HFN6Um8HvmgmgAJPpSA0lJuOSMEUhnWpAVJCJEM8Z2AfyFVrm3cxly21ccgMeg+mKKKCRY4IvKDCNSo7Hn+eaHRbcFhCgwMkK2Pb0oooGRP5QI326sTwPnNMVLUSErbjOeh6UUUATIsTqc7wM9AelBgiWNmCbgP7x70UUDKwlt4jkxFivJJAresLkTW8twYd4jXP+sKHrjsD/k0UVEldGkXZ6F2yne5PlLugDjARX3pgezDg/nXX2HzXS2gjEkhUOqySMI24z8w57e1FFcdXex1U9rl+GDVFcNZQWUEkxJVvPkA465CBc9B61japp3jGBWVNbtTF5WXzH82D77ST+dFFTFJMJSdjBNvrJuUtry7t7kQLkFlIPQnGRjP3epqp9g1YiW6E1pDHCmfLi34OTjr17+tFFboybdzHv7y/uLl55JUl52AtuXgcDgHFZpkmkXcywj5scKT/ADooreKVjCTdyCVmJwZGAPZQAKYVZcKDRRVEkbsQeSSTTCc8UUVQCZpM0UUgAg/hTM0UUxDHlCEAg0gmDHABoopFBvyO9LuJoooEf//Z" x="-40" y="-40" width="50" height="50" preserveAspectRatio="none">
+ <animate attributeName="width" values="50;80;20;50" begin="0s" dur="3s"/>
+ <animate attributeName="height" values="50;20;80;50" begin="0s" dur="3s"/>
+ </image>
+
+ <rect x="-40" y="-40" width="50" height="50" stroke="rgb(255,180,0)" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s;3s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-40" y="-40" width="80" height="20" stroke="rgb(255,180,0)" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-40" y="-40" width="20" height="80" stroke="rgb(255,180,0)" fill="none">
+ <set attributeName="stroke-width" to="4" begin="2s" dur="0.2s"/>
+ </rect>
+
+ <text text-anchor="middle" y="60">width/height</text>
+ <text text-anchor="middle" y="75">on &lt;image&gt;</text>
+ </g>
+
+
+ <g transform="translate(300,210)">
+ <rect x="-40" y="-40" width="50" height="50" fill="gray">
+ <animate attributeName="width" values="50;80;20;50" begin="0s" dur="3s"/>
+ <animate attributeName="height" values="50;20;80;50" begin="0s" dur="3s"/>
+ </rect>
+
+ <rect x="-40" y="-40" width="50" height="50" stroke="rgb(255,180,0)" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s;3s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-40" y="-40" width="80" height="20" stroke="rgb(255,180,0)" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-40" y="-40" width="20" height="80" stroke="rgb(255,180,0)" fill="none">
+ <set attributeName="stroke-width" to="4" begin="2s" dur="0.2s"/>
+ </rect>
+
+ <text text-anchor="middle" y="60">width/height</text>
+ <text text-anchor="middle" y="75">on &lt;rect&gt;</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-41-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-41-t-isvalid.html
new file mode 100644
index 0000000000..ff2a8c3f75
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-41-t-isvalid.html
@@ -0,0 +1,393 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-41-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-41-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-41-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="25" font-size="20">graphics</text>
+ <g transform="translate(80, 75)">
+ <g transform="translate(30,10)" text-anchor="end" font-size="12">
+ <text>fill</text>
+ <text y="20">fill-rule</text>
+ <text y="40">stroke</text>
+ <text y="60">stroke-width</text>
+ <text y="80">stroke-linecap</text>
+ <text y="100">stroke-linejoin</text>
+ <text y="120">stroke-miterlimit</text>
+ <text y="140">stroke-dashoffset</text>
+ <text y="160">display</text>
+ <text y="180">visibility</text>
+ <text y="200">color</text>
+ </g>
+
+ <g id="type" transform="translate(90, -20)" text-anchor="middle" font-size="14">
+ <text x="20" y="3">element</text>
+ <text x="130" y="3">&lt;g&gt;</text>
+ <text x="235" y="3">&lt;a&gt;</text>
+ </g>
+
+ <g transform="translate(80,0)" fill="rgb(204,0,102)">
+ <g id="setZero">
+ <defs>
+ <g id="animateZeroRef">
+ <rect x="10" y="-6" width="8" height="4" fill="rgb(204,0,102)"/>
+ <rect x="10" y="-6" width="8" height="4" fill="rgb(230,82,51)" transform="translate(15,0)"/>
+ <rect x="10" y="-6" width="8" height="4" fill="rgb(255,165,0)" transform="translate(30,0)"/>
+ </g>
+ </defs>
+ <use xlink:href="#animateZeroRef"/>
+ <use xlink:href="#animateZeroRef" x="110"/>
+ <use xlink:href="#animateZeroRef" x="220"/>
+
+ <rect x="10" width="8" height="8" fill="rgb(204,0,102)">
+ <animate attributeName="fill" to="rgb(255,165,0)" dur="3s" fill="freeze"/>
+ <animate attributeName="x" to="40" dur="3s" fill="freeze"/>
+ </rect>
+
+ <g transform="translate(110, 0)">
+ <rect x="10" width="8" height="8"/>
+ <animate attributeName="fill" to="rgb(255,165,0)" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <rect x="10" width="8" height="8"/>
+ <animate attributeName="fill" to="rgb(255,165,0)" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ </a>
+
+ </g>
+
+ <g id="setOne" transform="translate(5,15)" stroke="rgb(204,0,102)">
+ <defs>
+ <g id="setOneRef" fill="#ccc" stroke="none">
+ <polyline stroke-width="1" points="20,10,0,10,15,20,10,2,5,20,20,10"/>
+ <polyline fill-rule="evenodd" stroke-width="1" points="20,10,0,10,15,20,10,2,5,20,20,10" transform="translate(30,0)"/>
+ </g>
+ </defs>
+ <use xlink:href="#setOneRef"/>
+ <use xlink:href="#setOneRef" x="110"/>
+ <use xlink:href="#setOneRef" x="220"/>
+
+ <polyline points="20,10,0,10,15,20,10,2,5,20,20,10">
+ <animate attributeName="fill-rule" from="nonzero" to="evenodd" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ </polyline>
+
+ <g transform="translate(110, 0)">
+ <animate attributeName="fill-rule" from="nonzero" to="evenodd" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <polyline points="20,10,0,10,15,20,10,2,5,20,20,10"/>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="fill-rule" from="nonzero" to="evenodd" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <polyline points="20,10,0,10,15,20,10,2,5,20,20,10"/>
+ </a>
+
+ </g>
+
+ <g id="setTwo" transform="translate(0,45)" fill="none">
+ <defs>
+ <g id="setTwoRef" fill="none" stroke-width="4">
+ <rect x="10" width="8" height="8" stroke="rgb(204,0,102)"/>
+ <rect x="10" width="8" height="8" transform="translate(15,0)" stroke="rgb(230,82,51)"/>
+ <rect x="10" width="8" height="8" transform="translate(30,0)" stroke="rgb(255,165,0)"/>
+
+ </g>
+ </defs>
+ <use xlink:href="#setTwoRef"/>
+ <use xlink:href="#setTwoRef" x="110"/>
+ <use xlink:href="#setTwoRef" x="220"/>
+
+ <rect x="10" width="8" height="8" stroke-width="3">
+ <animate attributeName="stroke" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ </rect>
+
+ <g transform="translate(110, 0)">
+ <animate attributeName="stroke" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <rect x="10" width="8" height="8" stroke-width="3"/>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="stroke" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <rect x="10" width="8" height="8" stroke-width="3"/>
+ </a>
+ </g>
+
+ <g id="setThree" transform="translate(0,60)">
+ <defs>
+ <g id="setThreeRef">
+ <line x1="10" y1="3" x2="20" y2="3" stroke-width="1" stroke="gray"/>
+ <line x1="10" y1="3" x2="20" y2="3" stroke-width="5" stroke="gray" transform="translate(30,0)"/>
+ </g>
+ </defs>
+
+ <use xlink:href="#setThreeRef"/>
+ <use xlink:href="#setThreeRef" x="110"/>
+ <use xlink:href="#setThreeRef" x="220"/>
+
+ <line x1="10" y1="8" x2="20" y2="8" stroke="gray">
+ <animate attributeName="stroke-width" from="1" to="5" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ </line>
+
+ <g transform="translate(110, 0)">
+ <animate attributeName="stroke-width" from="1" to="5" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <line x1="10" y1="8" x2="20" y2="8" stroke="gray"/>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="stroke-width" from="1" to="5" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <line x1="10" y1="8" x2="20" y2="8" stroke="gray"/>
+ </a>
+ </g>
+
+ <g id="setFour" transform="translate(0,80)" stroke-width="4" stroke="rgb(204,0,102)">
+ <defs>
+ <g id="setFourRef" stroke-width="12">
+ <line x1="10" y1="8" x2="12" y2="8" stroke="#ccc"/>
+ <line x1="10" y1="8" x2="12" y2="8" stroke-linecap="round" stroke="#ccc" transform="translate(30,0)"/>
+ </g>
+ </defs>
+ <use xlink:href="#setFourRef"/>
+ <use xlink:href="#setFourRef" x="110"/>
+ <use xlink:href="#setFourRef" x="220"/>
+
+ <line x1="10" y1="8" x2="12" y2="8" stroke-width="12">
+ <animate attributeName="stroke-linecap" from="butt" to="round" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ </line>
+
+ <g transform="translate(110, 0)">
+ <animate attributeName="stroke-linecap" from="butt" to="round" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <line x1="10" y1="8" x2="12" y2="8" stroke-width="12"/>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="stroke-linecap" from="butt" to="round" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <line x1="10" y1="8" x2="12" y2="8" stroke-width="12"/>
+ </a>
+ </g>
+
+ <g id="setFive" transform="translate(5,100)" fill="none" stroke-miterlimit="10" stroke-width="3" stroke="rgb(204,0,102)">
+ <defs>
+ <g id="setFiveRef">
+ <polyline stroke="#ccc" points="5,2,20,5,5,8"/>
+ <polyline stroke="#ccc" points="5,2,20,5,5,8" stroke-linejoin="bevel" transform="translate(30,0)"/>
+ </g>
+ </defs>
+ <use xlink:href="#setFiveRef"/>
+ <use xlink:href="#setFiveRef" x="110"/>
+ <use xlink:href="#setFiveRef" x="220"/>
+
+ <polyline points="5,2,20,5,5,8">
+ <animate attributeName="stroke-linejoin" from="miter" to="bevel" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ </polyline>
+
+ <g transform="translate(110, 0)">
+ <animate attributeName="stroke-linejoin" from="miter" to="bevel" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <polyline points="5,2,20,5,5,8"/>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="stroke-linejoin" from="miter" to="bevel" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <polyline points="5,2,20,5,5,8"/>
+ </a>
+ </g>
+
+ <g id="setSix" transform="translate(5,120)" stroke-miterlimit="1" fill="none" stroke-width="3" stroke="rgb(204,0,102)">
+ <defs>
+ <g id="setSixRef">
+ <polyline points="5,0,20,5,5,10" stroke="#ccc"/>
+ <polyline points="5,0,20,5,5,10" stroke="#ccc" stroke-miterlimit="10" transform="translate(30,0)"/>
+ </g>
+ </defs>
+ <use xlink:href="#setSixRef"/>
+ <use xlink:href="#setSixRef" x="110"/>
+ <use xlink:href="#setSixRef" x="220"/>
+
+ <polyline points="5,0,20,5,5,10">
+ <animate attributeName="stroke-miterlimit" from="1" to="10" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ </polyline>
+
+ <g transform="translate(110, 0)">
+ <animate attributeName="stroke-miterlimit" from="1" to="10" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <polyline points="5,0,20,5,5,10"/>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="stroke-miterlimit" from="1" to="10" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <polyline points="5,0,20,5,5,10"/>
+ </a>
+
+ </g>
+
+ <g id="setSeven" transform="translate(-5,145)" stroke-dasharray="3,4,5" stroke-width="3" stroke="rgb(204,0,102)">
+ <defs>
+ <g id="setSevenRef">
+ <line x1="0" y1="0" x2="25" y2="0" stroke="#ccc"/>
+ <line x1="0" y1="0" x2="25" y2="0" stroke="#ccc" stroke-dashoffset="5.5" transform="translate(40,0)"/>
+ </g>
+ </defs>
+ <use xlink:href="#setSevenRef"/>
+ <use xlink:href="#setSevenRef" x="110"/>
+ <use xlink:href="#setSevenRef" x="220"/>
+
+ <line x1="0" y1="0" x2="25" y2="0">
+ <animate attributeName="stroke-dashoffset" from="0" to="5.5" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="40" dur="3s" fill="freeze" additive="sum"/>
+ </line>
+
+ <g transform="translate(110, 0)">
+ <animate attributeName="stroke-dashoffset" from="0" to="5.5" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="40" dur="3s" fill="freeze" additive="sum"/>
+ <line x1="0" y1="0" x2="25" y2="0"/>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="stroke-dashoffset" from="0" to="5.5" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="40" dur="3s" fill="freeze" additive="sum"/>
+ <line x1="0" y1="0" x2="25" y2="0"/>
+ </a>
+ </g>
+
+ <g id="setEight" transform="translate(0,160)">
+ <defs>
+ <g id="setEightRef">
+ <rect x="10" width="8" height="8" fill="#ccc"/>
+ <rect x="10" width="8" height="8" fill="#ccc" transform="translate(30,0)" display="none"/>
+ </g>
+ </defs>
+ <use xlink:href="#setEightRef"/>
+ <use xlink:href="#setEightRef" x="110"/>
+ <use xlink:href="#setEightRef" x="220"/>
+ <rect x="10" width="8" height="8">
+ <animate attributeName="display" from="inline" to="none" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ </rect>
+
+ <g transform="translate(110, 0)">
+ <animate attributeName="display" from="inline" to="none" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <rect x="10" width="8" height="8"/>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="display" from="inline" to="none" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <rect x="10" width="8" height="8"/>
+ </a>
+ </g>
+
+ <g id="setNine" transform="translate(0,180)">
+ <defs>
+ <g id="setNineRef">
+ <rect x="10" width="8" height="8" fill="#ccc"/>
+ </g>
+ </defs>
+ <use xlink:href="#setNineRef"/>
+ <use xlink:href="#setNineRef" x="110"/>
+ <use xlink:href="#setNineRef" x="220"/>
+
+ <rect x="10" width="8" height="8">
+ <animate attributeName="visibility" from="visible" to="hidden" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ </rect>
+
+ <g transform="translate(110, 0)">
+ <animate attributeName="visibility" from="visible" to="hidden" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <rect x="10" width="8" height="8"/>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <animate attributeName="visibility" from="visible" to="hidden" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <rect x="10" width="8" height="8"/>
+ </a>
+ </g>
+
+ <g id="setTen" color="rgb(204,0,102)" transform="translate(0,200)">
+ <defs>
+ <g id="animateTenRef">
+ <rect x="10" y="-6" width="8" height="4" fill="rgb(204,0,102)"/>
+ <rect x="10" y="-6" width="8" height="4" fill="rgb(230,82,51)" transform="translate(15,0)"/>
+ <rect x="10" y="-6" width="8" height="4" fill="rgb(255,165,0)" transform="translate(30,0)"/>
+ </g>
+ </defs>
+ <use xlink:href="#animateTenRef"/>
+ <use xlink:href="#animateTenRef" x="110"/>
+ <use xlink:href="#animateTenRef" x="220"/>
+
+ <rect x="10" width="8" height="8" fill="currentColor">
+ <animate attributeName="color" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ </rect>
+
+ <g transform="translate(110, 0)" fill="currentColor">
+ <animate attributeName="color" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <rect x="10" width="8" height="8"/>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)" fill="currentColor">
+ <animate attributeName="color" from="rgb(204,0,102)" to="rgb(255,165,0)" dur="3s" fill="freeze"/>
+ <animateTransform type="translate" attributeName="transform" from="0" to="30" dur="3s" fill="freeze" additive="sum"/>
+ <rect x="10" width="8" height="8"/>
+ </a>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-44-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-44-t-isvalid.html
new file mode 100644
index 0000000000..6a58cc71f8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-44-t-isvalid.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-44-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-44-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-44-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(40,0) scale(0.8)">
+ <!-- GRAY SILHOUETTES INDICATING TIME IN SECONDS-->
+ <path id="Number1" d="M 26.5,32.5 L 33.5,32.5 40.5,29.5 47.5,23.5 61.5,17.5 73.5,16.5 74.5,33.5 73.5,50.5 73.5,64.5 72.5,77.5 72.5,90.5 72.5,105.5 71.5,126.5 89.5,128.5 90.5,138.5 89.5,151.5 72.5,151.5 54.5,152.5 38.5,152.5 27.5,152.5 28.5,139.5 30.5,127.5 44.5,125.5 46.5,112.5 47.5,99.5 46.5,87.5 48.5,73.5 48.5,53.5 34.5,52.5 22.5,52.5 22.5,51.5 22.5,41.5 22.5,33.5 Z" fill="#ccc" stroke="rgb(0,0,0)" stroke-width="1"/>
+ <path id="Number2" d="M 108.5,38.5 L 123.5,26.5 148.5,16.5 172.5,17.5 188.5,19.5 202.5,23.5 206.5,26.5 210.5,37.5 213.5,44.5 215.5,57.5 209.5,68.5 203.5,81.5 187.5,98.5 164.5,120.5 206.5,121.5 224.5,121.5 220.5,149.5 194.5,147.5 181.5,147.5 167.5,146.5 150.5,147.5 133.5,149.5 117.5,148.5 117.5,136.5 118.5,124.5 133.5,115.5 151.5,97.5 170.5,78.5 186.5,59.5 179.5,43.5 159.5,35.5 139.5,40.5 125.5,49.5 Z" fill="#ccc" stroke="rgb(0,0,0)" stroke-width="1"/>
+ <path id="Number3" d="M 248.5,38.5 L 276.5,22.5 298.5,19.5 316.5,26.5 332.5,40.5 331.5,57.5 322.5,70.5 307.5,76.5 314.5,80.5 324.5,86.5 333.5,99.5 333.5,121.5 327.5,130.5 312.5,143.5 292.5,149.5 270.5,148.5 248.5,142.5 252.5,114.5 267.5,119.5 282.5,119.5 297.5,115.5 304.5,109.5 295.5,99.5 284.5,92.5 277.5,84.5 270.5,74.5 281.5,66.5 293.5,60.5 297.5,50.5 292.5,45.5 281.5,45.5 274.5,49.5 266.5,53.5 Z" fill="#ccc" stroke="rgb(0,0,0)" stroke-width="1"/>
+ <path id="Number4" d="M 427.5,17.5 L 439.5,15.5 449.5,15.5 449.5,29.5 447.5,44.5 447.5,59.5 465.5,60.5 466.5,74.5 465.5,89.5 450.5,87.5 449.5,102.5 449.5,123.5 449.5,140.5 449.5,153.5 420.5,154.5 421.5,137.5 420.5,123.5 420.5,111.5 419.5,99.5 392.5,97.5 367.5,99.5 366.5,79.5 367.5,69.5 376.5,43.5 381.5,27.5 384.5,17.5 412.5,16.5 406.5,36.5 400.5,49.5 394.5,70.5 419.5,71.5 423.5,49.5 424.5,33.5 Z" fill="#ccc" stroke="rgb(0,0,0)" stroke-width="1"/>
+ <!-- Gray silhouettes indicating the positions of the marker circle -->
+ <circle r="30" cx="50" cy="200" fill="#ccc"/>
+ <circle r="30" cx="173" cy="200" fill="#ccc"/>
+ <circle r="30" cx="297" cy="200" fill="#ccc"/>
+ <circle r="30" cx="420" cy="200" fill="#ccc"/>
+
+ <!-- Test the animation of the d attribute -->
+ <path id="animatedNumber" d="M 26.5,32.5 L 33.5,32.5 40.5,29.5 47.5,23.5 61.5,17.5 73.5,16.5 74.5,33.5 73.5,50.5 73.5,64.5 72.5,77.5 72.5,90.5 72.5,105.5 71.5,126.5 89.5,128.5 90.5,138.5 89.5,151.5 72.5,151.5 54.5,152.5 38.5,152.5 27.5,152.5 28.5,139.5 30.5,127.5 44.5,125.5 46.5,112.5 47.5,99.5 46.5,87.5 48.5,73.5 48.5,53.5 34.5,52.5 22.5,52.5 22.5,51.5 22.5,41.5 22.5,33.5 Z" fill="rgb(204,0,102)" stroke="rgb(0,0,0)" stroke-width="4">
+ <animate attributeName="d" values="M 26.5,32.5 L 33.5,32.5 40.5,29.5 47.5,23.5 61.5,17.5 73.5,16.5 74.5,33.5 73.5,50.5 73.5,64.5 72.5,77.5 72.5,90.5 72.5,105.5 71.5,126.5 89.5,128.5 90.5,138.5 89.5,151.5 72.5,151.5 54.5,152.5 38.5,152.5 27.5,152.5 28.5,139.5 30.5,127.5 44.5,125.5 46.5,112.5 47.5,99.5 46.5,87.5 48.5,73.5 48.5,53.5 34.5,52.5 22.5,52.5 22.5,51.5 22.5,41.5 22.5,33.5 Z; M 108.5,38.5 L 123.5,26.5 148.5,16.5 172.5,17.5 188.5,19.5 202.5,23.5 206.5,26.5 210.5,37.5 213.5,44.5 215.5,57.5 209.5,68.5 203.5,81.5 187.5,98.5 164.5,120.5 206.5,121.5 224.5,121.5 220.5,149.5 194.5,147.5 181.5,147.5 167.5,146.5 150.5,147.5 133.5,149.5 117.5,148.5 117.5,136.5 118.5,124.5 133.5,115.5 151.5,97.5 170.5,78.5 186.5,59.5 179.5,43.5 159.5,35.5 139.5,40.5 125.5,49.5 Z; M 248.5,38.5 L 276.5,22.5 298.5,19.5 316.5,26.5 332.5,40.5 331.5,57.5 322.5,70.5 307.5,76.5 314.5,80.5 324.5,86.5 333.5,99.5 333.5,121.5 327.5,130.5 312.5,143.5 292.5,149.5 270.5,148.5 248.5,142.5 252.5,114.5 267.5,119.5 282.5,119.5 297.5,115.5 304.5,109.5 295.5,99.5 284.5,92.5 277.5,84.5 270.5,74.5 281.5,66.5 293.5,60.5 297.5,50.5 292.5,45.5 281.5,45.5 274.5,49.5 266.5,53.5 Z; M 427.5,17.5 L 439.5,15.5 449.5,15.5 449.5,29.5 447.5,44.5 447.5,59.5 465.5,60.5 466.5,74.5 465.5,89.5 450.5,87.5 449.5,102.5 449.5,123.5 449.5,140.5 449.5,153.5 420.5,154.5 421.5,137.5 420.5,123.5 420.5,111.5 419.5,99.5 392.5,97.5 367.5,99.5 366.5,79.5 367.5,69.5 376.5,43.5 381.5,27.5 384.5,17.5 412.5,16.5 406.5,36.5 400.5,49.5 394.5,70.5 419.5,71.5 423.5,49.5 424.5,33.5 Z" fill="freeze" begin="1" dur="3s"/>
+ </path>
+
+ <!-- the "bouncing ball" circle that shows where the path should be -->
+ <circle r="30" cx="50" cy="200" fill="rgb(204,0,102)">
+ <animate attributeName="cx" values="50; 173; 297; 420" begin="1" dur="4" calcMode="discrete" fill="freeze"/>
+ </circle>
+ </g>
+ <text x="5" y="225" font-size="28">
+ Animation on the 'd'
+ attribute of path.
+ </text>
+ <text x="5" y="255" font-size="18">Digit should match outline at indicated time.</text>
+ <text x="5" y="275" font-size="18">Filled circle should follow morphing digit discretely.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-46-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-46-t-isvalid.html
new file mode 100644
index 0000000000..86d81826c6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-46-t-isvalid.html
@@ -0,0 +1,239 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-46-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-46-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-46-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F" font-weight="700">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSansBold.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F" font-style="italic">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSansItalic.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F" font-weight="700" font-style="italic">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSansBoldItalic.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="FreeSerif" unicode-range="U+0-7F" font-weight="bold">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/FreeSerifBold.svg#FreeSerifBold"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g transform="translate(80, 80)">
+ <g transform="translate(20,10)" text-anchor="end" font-size="14">
+ <text x="5" y="15">text-anchor</text>
+ <text x="5" y="50">font-size</text>
+ <text x="5" y="85">font-family</text>
+ <text x="5" y="120">font-style</text>
+ <text x="5" y="155">font-weight</text>
+ </g>
+
+ <g id="type" transform="translate(90, -10)" text-anchor="middle" font-size="14">
+ <text x="20" y="3">&lt;text&gt;</text>
+ <text x="135" y="3">&lt;g&gt;</text>
+ <text x="250" y="3">&lt;a&gt;</text>
+ </g>
+
+ <g transform="translate(80,5)" text-anchor="start" font-size="20" fill="rgb(204,0,102)">
+ <g id="animateZero">
+ <defs>
+ <g id="animateZeroRef" font-size="30" font-weight="bold">
+ <text x="0" y="20" fill="#aaa" text-anchor="end">A</text>
+ <rect x="-2" y="18" width="4" height="4" fill="#aaa"/>
+ <text x="0" y="20" fill="#aaa" text-anchor="middle" transform="translate(30,0)">A</text>
+ <rect x="-2" y="18" width="4" height="4" fill="#aaa" transform="translate(30,0)"/>
+ <text x="0" y="20" fill="#aaa" text-anchor="start" transform="translate(60,0)">A</text>
+ <rect x="-2" y="18" width="4" height="4" fill="#aaa" transform="translate(60,0)"/>
+ <rect x="-2" y="18" width="4" height="4">
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" dur="3s" fill="freeze" calcMode="discrete"/>
+ </rect>
+ </g>
+ </defs>
+
+ <use xlink:href="#animateZeroRef"/>
+ <use xlink:href="#animateZeroRef" x="110"/>
+ <use xlink:href="#animateZeroRef" x="220"/>
+
+ <text id="textID_0" x="0" y="20" text-anchor="end" font-size="30" font-weight="bold">A</text>
+ <animate xlink:href="#textID_0" attributeName="text-anchor" values="end;middle;start" dur="3s" fill="freeze"/>
+ <animateTransform xlink:href="#textID_0" attributeName="transform" type="translate" values="0;30;60" dur="3s" fill="freeze" calcMode="discrete"/>
+
+
+ <g transform="translate(110, 0)" text-anchor="end" font-size="30" font-weight="bold">
+ <animate attributeName="text-anchor" values="end;middle;start" dur="3s" fill="freeze"/>
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" additive="sum"/>
+ <text x="0" y="20">A</text>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)" text-anchor="end" font-size="30" font-weight="bold">
+ <animate attributeName="text-anchor" values="end;middle;start" dur="3s" fill="freeze"/>
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" additive="sum"/>
+ <text x="0" y="20">A</text>
+ </a>
+ </g>
+
+ <g id="animateOne" transform="translate(0,35)">
+ <defs>
+ <g id="animateOneRef" font-weight="bold" text-anchor="start">
+ <text x="0" y="20" fill="#aaa" font-size="30">A</text>
+ <text x="0" y="20" fill="#aaa" font-size="12" transform="translate(30,0)">A</text>
+ <text x="0" y="20" fill="#aaa" font-size="30" transform="translate(60,0)">A</text>
+ </g>
+ </defs>
+
+ <use xlink:href="#animateOneRef"/>
+ <use xlink:href="#animateOneRef" x="110"/>
+ <use xlink:href="#animateOneRef" x="220"/>
+
+ <text id="textID_1" x="0" y="20" font-size="12" font-weight="bold">A</text>
+ <animate xlink:href="#textID_1" attributeName="font-size" values="30;12;30" dur="3s" fill="freeze"/>
+ <animateTransform xlink:href="#textID_1" attributeName="transform" type="translate" from="0" to="60" dur="3s" fill="freeze"/>
+
+ <g transform="translate(110, 0)" font-size="12" font-weight="bold">
+ <animate attributeName="font-size" values="30;12;30" dur="3s" fill="freeze"/>
+ <animateTransform attributeName="transform" type="translate" from="0" to="60" dur="3s" fill="freeze" additive="sum"/>
+ <text x="0" y="20">A</text>
+ </g>
+
+ <a xlink:href="" transform="translate(220,0)" font-size="12" font-weight="bold">
+ <animate attributeName="font-size" values="30;12;30" dur="3s" fill="freeze"/>
+ <animateTransform attributeName="transform" type="translate" from="0" to="60" dur="3s" fill="freeze" additive="sum"/>
+ <text x="0" y="20">A</text>
+ </a>
+ </g>
+
+ <g id="animateTwo" transform="translate(0,70)">
+ <defs>
+ <g id="animateTwoRef" font-weight="bold" font-size="30">
+ <text x="0" y="20" fill="#aaa" font-family="SVGFreeSansASCII,sans-serif">A </text>
+ <text x="30" y="20" fill="#aaa" font-family="FreeSerif,serif">A</text>
+ <text x="60" y="20" font-size="30" fill="#aaa" font-family="SVGFreeSansASCII,sans-serif">A</text>
+ </g>
+ </defs>
+ <use xlink:href="#animateTwoRef"/>
+ <use xlink:href="#animateTwoRef" x="110"/>
+ <use xlink:href="#animateTwoRef" x="220"/>
+
+ <text id="textID_2" x="0" y="20" font-weight="bold" font-size="30">A</text>
+ <animate xlink:href="#textID_2" attributeName="font-family" values="SVGFreeSansASCII,sans-serif;FreeSerif,serif;SVGFreeSansASCII,sans-serif" dur="3s" fill="freeze"/>
+ <animateTransform xlink:href="#textID_2" attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze"/>
+
+ <g font-weight="bold" font-size="30" transform="translate(110,0)">
+ <animate attributeName="font-family" values="SVGFreeSansASCII,sans-serif;FreeSerif,serif;SVGFreeSansASCII,sans-serif" dur="3s" fill="freeze"/>
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" additive="sum"/>
+ <text x="0" y="20">A</text>
+ </g>
+
+ <a xlink:href="" font-weight="bold" font-size="30" transform="translate(220,0)">
+ <animate attributeName="font-family" values="SVGFreeSansASCII,sans-serif;FreeSerif,serif;SVGFreeSansASCII,sans-serif" dur="3s" fill="freeze"/>
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" additive="sum"/>
+ <text x="0" y="20">A</text>
+ </a>
+ </g>
+
+ <g id="animateThree" transform="translate(0,105)">
+ <defs>
+ <g id="animateThreeRef" font-size="30" font-weight="bold">
+ <text x="0" y="20" font-size="30" fill="#aaa" font-style="normal">A</text>
+ <text x="30" y="20" font-size="30" fill="#aaa" font-style="italic">A</text>
+ <text x="60" y="20" font-size="30" fill="#aaa" font-style="normal">A</text>
+ </g>
+ </defs>
+ <use xlink:href="#animateThreeRef"/>
+ <use xlink:href="#animateThreeRef" x="110"/>
+ <use xlink:href="#animateThreeRef" x="220"/>
+
+ <text id="textID_3" x="0" y="20" font-size="30" font-weight="bold">A</text>
+ <animate xlink:href="#textID_3" attributeName="font-style" values="normal;italic;normal" dur="3s" fill="freeze"/>
+ <animateTransform xlink:href="#textID_3" attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze"/>
+
+ <g transform="translate(110,0)" font-size="30" font-weight="bold">
+ <animate attributeName="font-style" values="normal;italic;normal" dur="3s" fill="freeze"/>
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" additive="sum"/>
+ <text x="0" y="20" font-size="30">A</text>
+ </g>
+
+ <a xlink:href="" transform="translate(220,0)" font-size="30" font-weight="bold">
+ <animate attributeName="font-style" values="normal;italic;normal" dur="3s" fill="freeze"/>
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" additive="sum"/>
+ <text x="0" y="20" font-size="30">A</text>
+ </a>
+
+ </g>
+
+ <g id="animateFour" transform="translate(0,140)">
+ <defs>
+ <g id="animateFourRef" font-size="30">
+ <text x="0" y="20" fill="#aaa" font-weight="bold">A</text>
+ <text x="30" y="20" fill="#aaa" font-weight="normal">A</text>
+ <text x="60" y="20" fill="#aaa" font-weight="bold">A</text>
+ </g>
+ </defs>
+
+ <use xlink:href="#animateFourRef"/>
+ <use xlink:href="#animateFourRef" x="110"/>
+ <use xlink:href="#animateFourRef" x="220"/>
+
+ <text id="textID_4" x="0" y="20" font-size="30">A</text>
+ <animate xlink:href="#textID_4" attributeName="font-weight" values="bold;normal;bold" calcMode="discrete" dur="3s" fill="freeze"/>
+ <animateTransform xlink:href="#textID_4" attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze"/>
+
+ <g transform="translate(110,0)" font-size="30">
+ <animate attributeName="font-weight" values="bold;normal;bold" calcMode="discrete" dur="3s" fill="freeze"/>
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" additive="sum"/>
+ <text x="0" y="20">A</text>
+ </g>
+
+ <a xlink:href="" transform="translate(220,0)" font-size="30">
+ <animate attributeName="font-weight" values="bold;normal;bold" calcMode="discrete" dur="3s" fill="freeze"/>
+ <animateTransform attributeName="transform" type="translate" values="0;30;60" calcMode="discrete" dur="3s" fill="freeze" additive="sum"/>
+ <text x="0" y="20">A</text>
+ </a>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-52-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-52-t-isvalid.html
new file mode 100644
index 0000000000..83430f9f9d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-52-t-isvalid.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-52-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-52-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-52-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="65" y="50" font-size="30" stroke="none" fill="black">A</text>
+ <text x="165" y="50" font-size="30" stroke="none" fill="black">B</text>
+ <text x="265" y="50" font-size="30" stroke="none" fill="black">C</text>
+ <text x="365" y="50" font-size="30" stroke="none" fill="black">D</text>
+
+ <g transform="translate(0,45)">
+ <g id="A" fill="rgb(126,143,250)">
+ <rect x="30" y="15" rx="5" ry="5" width="90" height="40" stroke="#000000" fill="inherit" stroke-width="2"/>
+ <text x="50" y="40" font-size="20" stroke="none" fill="black">click A</text>
+ </g>
+
+ <g id="B" fill="rgb(126,143,250)">
+ <rect x="130" y="15" rx="5" ry="5" width="90" height="40" stroke="#000000" fill="inherit" stroke-width="2"/>
+ <text x="135" y="40" font-size="20" stroke="none" fill="black">click B+2</text>
+ </g>
+
+ <g id="C" fill="rgb(126,143,250)">
+ <rect x="230" y="15" rx="5" ry="5" width="90" height="40" stroke="#000000" fill="inherit" stroke-width="2"/>
+ <text x="235" y="40" font-size="20" stroke="none" fill="black">click C+4</text>
+ </g>
+
+ <g fill="rgb(126,143,250)">
+ <rect x="330" y="15" rx="5" ry="5" width="90" height="40" stroke="#000000" fill="inherit" stroke-width="2"/>
+ <text x="350" y="40" font-size="20" stroke="none" fill="black">never</text>
+ <set begin="click" fill="freeze" xlink:href="#A" attributeName="fill" to="yellow"/>
+ <set begin="click+2" fill="freeze" xlink:href="#B" attributeName="fill" to="yellow"/>
+ <set begin="click+4" fill="freeze" xlink:href="#C" attributeName="fill" to="yellow"/>
+ </g>
+ </g>
+
+ <text x="15" y="175" font-size="28">Test of Eventbase targets.</text>
+ <text x="15" y="245" font-size="18">Note that clicking rect D should give no result.</text>
+ <text x="15" y="205" font-size="18">Clicking a rectangle should change its color at the </text>
+ <text x="15" y="225" font-size="18">time for the click + delay as indicated in each rect.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-53-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-53-t-isvalid.html
new file mode 100644
index 0000000000..1b1bebc7a8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-53-t-isvalid.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-53-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-53-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-53-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <polygon id="p" points="0,0 30,0 30,30 0,30" fill="none" stroke="black"/>
+ </defs>
+ <g transform="translate(0,0)">
+ <use xlink:href="#p" x="10" y="10"/>
+ <text x="15" y="35" font-size="20">0s</text>
+ <use xlink:href="#p" x="10" y="50"/>
+ <text x="15" y="75" font-size="20">3s</text>
+ <use xlink:href="#p" x="10" y="130"/>
+ <text x="15" y="155" font-size="20">6s</text>
+ <rect x="10" y="130" width="58.28" height="58.28" fill="none" stroke="black"/>
+ <text x="45" y="185" font-size="20">9s</text>
+ <polygon id="LG" points="0,0 30,0 30,30 0,30" fill="none" stroke="green">
+ <animate attributeName="points" begin="0" dur="9" fill="freeze" values="10,10 40,10 40,40 10,40; 10,50 40,50 40,80 10,80; 10,130 40,130 40,160 10,160; 10,130 68.28,130 68.28,188.28 10,188.28"/>
+ </polygon>
+ <g transform="translate(70,10)">
+ <polygon id="RG" points="0,0 30,0 30,30 0,30" fill="none" stroke="green">
+ <animateMotion values="0,0;0,40;0,120" begin="0" dur="6" calcMode="linear" fill="freeze"/>
+ <animateTransform attributeName="transform" type="scale" from="1" to="1.9428" begin="6" dur="3" fill="freeze"/>
+ </polygon>
+ </g>
+ </g>
+ <g transform="translate(120,0)">
+ <use xlink:href="#p" x="10" y="10"/>
+ <text x="15" y="35" font-size="20">0s</text>
+ <use xlink:href="#p" x="10" y="50"/>
+ <text x="15" y="75" font-size="20">2.22s</text>
+ <use xlink:href="#p" x="10" y="130"/>
+ <text x="15" y="155" font-size="20">6.66s</text>
+ <rect x="10" y="130" width="58.28" height="58.28" fill="none" stroke="black"/>
+ <text x="45" y="185" font-size="20">8s</text>
+ <polygon id="LR" points="10,10 40,10 40,40 10,40" fill="none" stroke="blue">
+ <animate attributeName="points" begin="0" dur="8" calcMode="paced" fill="freeze" values="10,10 40,10 40,40 10,40; 10,50 40,50 40,80 10,80; 10,130 40,130 40,160 10,160; 10,130 68.28,130 68.28,188.28 10,188.28"/>
+ </polygon>
+ <g transform="translate(70,10)">
+ <polygon id="RR" points="0,0 30,0 30,30 0,30" fill="none" stroke="blue">
+ <animateMotion values="0,0;0,40;0,120" begin="0" dur="6.66" fill="freeze"/>
+ <animateTransform attributeName="transform" type="scale" from="1" to="1.9428" begin="6.66" dur="1.34" fill="freeze"/>
+ </polygon>
+ </g>
+ </g>
+ <text x="5" y="225" font-size="26">Animation on: 'points' with 'calc-mode'.</text>
+ <text x="5" y="255" font-size="16">Coloblue and black squares should match at indicated time.</text>
+ <text x="5" y="275" font-size="16">Same coloblue squares (green and blue) should match at all times</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-60-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-60-t-isvalid.html
new file mode 100644
index 0000000000..057df82b79
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-60-t-isvalid.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-60-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-60-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-60-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="30" font-size="20">begin</text>
+ <g transform="translate(100, 80)">
+ <g transform="translate(80,5)" text-anchor="end" font-size="14">
+ <text>unspecified</text>
+ <text y="25">offset</text>
+ <text y="50">event base</text>
+ <text y="75">sync base</text>
+ <text y="100">indefinite</text>
+ <text y="125">repeat()</text>
+ <text y="150">accessKey()</text>
+ <text y="175">wallclock()</text>
+ </g>
+
+ <g id="timeMarkersText" transform="translate(100, -15)" text-anchor="middle" font-size="8">
+ <text>0s</text>
+ <text x="12">1s</text>
+ <text x="24">2s</text>
+ <text x="36">3s</text>
+ <text x="48">4s</text>
+ <text x="60">5s</text>
+ <text x="72">6s</text>
+ <text x="84">7s</text>
+ <text x="96">8s</text>
+ <text x="120">0s</text>
+ <text x="132">1s</text>
+ <text x="144">2s</text>
+ </g>
+
+ <g id="timeMarkers" transform="translate(94, -10) scale(1, 8)">
+ <rect width="12" height="25" fill="#eee"/>
+ <rect x="12" width="12" height="25" fill="#ddd"/>
+ <rect x="24" width="12" height="25" fill="#eee"/>
+ <rect x="36" width="12" height="25" fill="#ddd"/>
+ <rect x="48" width="12" height="25" fill="#eee"/>
+ <rect x="60" width="12" height="25" fill="#ddd"/>
+ <rect x="72" width="12" height="25" fill="#eee"/>
+ <rect x="84" width="12" height="25" fill="#ddd"/>
+ <rect x="96" width="12" height="25" fill="#eee"/>
+ <rect x="120" width="12" height="25" fill="#eee"/>
+ <rect x="132" width="12" height="25" fill="#ddd"/>
+ <rect x="144" width="12" height="25" fill="#eee"/>
+ </g>
+
+ <g transform="translate(100,0)">
+ <g id="setOne">
+ <rect x="-6" y="-6" width="12" height="12" fill="#F33">
+ <set attributeName="fill" to="#3F3" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setTwo" transform="translate(0, 25)">
+ <rect x="-6" y="-6" width="12" height="12" fill="#F33" transform="translate(24,0)">
+ <set id="secondSet" attributeName="fill" to="#3F3" begin="2s" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setThree" transform="translate(0, 50)">
+ <rect id="setThreeTarget" x="-6" y="-6" width="12" height="12" fill="#F33" transform="translate(120,0)">
+ <set attributeName="fill" id="thirdSet" to="#3F3" begin="setThreeTarget.click" dur="indefinite"/>
+ </rect>
+ <rect x="-6" y="-6" width="12" height="12" fill="#F33" transform="translate(144,0)">
+ <set attributeName="fill" id="thirdSetOffset" to="#3F3" begin="setThreeTarget.click + 2s" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setFour" transform="translate(0, 75)">
+ <set id="endBase" attributeName="display" to="inline" begin="7s" dur="1s"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="#F33" transform="translate(24,0)">
+ <set attributeName="fill" to="#3F3" begin="secondSet.begin" dur="indefinite"/>
+ </rect>
+ <rect x="-6" y="-6" width="12" height="12" fill="#F33" transform="translate(48,0)">
+ <set attributeName="fill" to="#3F3" begin="secondSet.begin + 2s" dur="indefinite"/>
+ </rect>
+ <rect x="-6" y="-6" width="12" height="12" fill="#F33" transform="translate(72,0)">
+ <set attributeName="fill" to="#3F3" begin="endBase.end - 2s" dur="indefinite"/>
+ </rect>
+ <rect x="-6" y="-6" width="12" height="12" fill="#F33" transform="translate(96,0)">
+ <set attributeName="fill" to="#3F3" begin="endBase.end" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setFive" transform="translate(0, 100)">
+ <rect x="-6" y="-6" width="12" height="12" fill="#3F3">
+ <set attributeName="fill" to="#F33" begin="indefinite" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setSix" transform="translate(0, 125)">
+ <set id="repeatingSet" attributeName="display" to="inline" begin="0s" dur="1s" repeatCount="4"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="#F33" transform="translate(36,0)">
+ <set attributeName="fill" to="#3F3" begin="repeatingSet.repeat(3)" dur="indefinite"/>
+ </rect>
+ <rect x="-6" y="-6" width="12" height="12" fill="#F33" transform="translate(60,0)">
+ <set attributeName="fill" to="#3F3" begin="repeatingSet.repeat(3) + 2s" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setSeven" transform="translate(0, 150)">
+ <rect x="-6" y="-6" width="12" height="12" fill="#F33" transform="translate(120,0)">
+ <set attributeName="fill" to="#3F3" begin="accessKey(a)" dur="indefinite"/>
+ </rect>
+ <rect x="-6" y="-6" width="12" height="12" fill="#F33" transform="translate(144,0)">
+ <set attributeName="fill" to="#3F3" begin="accessKey(a) + 2s" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setEight" transform="translate(0, 175)">
+ <rect x="-6" y="-6" width="12" height="12" fill="#3F3">
+ <set attributeName="fill" to="#F33" begin="wallclock(2000-06-10T12:34:56Z)" dur="indefinite"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-61-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-61-t-isvalid.html
new file mode 100644
index 0000000000..c1abfb35e2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-61-t-isvalid.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-61-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-61-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-61-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="30" font-size="20">multiple begin</text>
+ <g transform="translate(100, 100)">
+ <g transform="translate(80,25)" text-anchor="end" font-size="14">
+ <text>2 offsets</text>
+ <text y="25">2 sync bases</text>
+ <text y="50">2 repeat</text>
+ <text y="100">2 event base</text>
+ <text y="125">2 accessKeys</text>
+ <text y="150">misc</text>
+ </g>
+
+ <g id="timeMarkersText" transform="translate(150, 5)" text-anchor="middle" font-size="14">
+ <text>0-1s</text>
+ <text y="-20">2s-4s</text>
+ <text y="-40">&gt; 5s</text>
+ <g transform="translate(40,0)">
+ <text>1-2s</text>
+ <text y="-20">4-5s</text>
+ </g>
+ </g>
+
+ <g transform="translate(150,20)" stroke="black">
+ <defs>
+ <rect id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1"/>
+ </defs>
+ <g id="setOne">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="40"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set id="firstSet" attributeName="x" to="34" begin="1s; 4s" dur="1s"/>
+ </rect>
+ </g>
+ <g id="setTwo" transform="translate(0, 25)">
+ <set id="syncBase" attributeName="display" to="inline" begin="0s" dur="indefinite"/>
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="40"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="34" begin="syncBase.begin + 1s; syncBase.begin + 4s" dur="1s"/>
+ </rect>
+ </g>
+ <g id="setThree" transform="translate(0, 50)">
+ <set id="repeatBase" attributeName="display" to="inline" begin="0s" dur="1s" repeatDur="indefinite"/>
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="40"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="34" begin="repeatBase.repeat(1);repeatBase.repeat(4)" dur="1s"/>
+ </rect>
+ </g>
+ <g id="setFour" transform="translate(0, 100)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="40"/>
+ <rect id="setFourTarget" x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="34" begin="setFourTarget.click + 0s; setFourTarget.click+4s" dur="1s"/>
+ </rect>
+ </g>
+ <g id="setFive" transform="translate(0, 125)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="40"/>
+ <rect id="setFiveTarget" x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="34" begin="accessKey(a) + 0s;accessKey(a)+4s" dur="1s"/>
+ </rect>
+ </g>
+ <g id="setSix" transform="translate(0, 150)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="40"/>
+ <rect id="setSixTarget" x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="34" begin="1s;4s;setSixTarget.click;accessKey(b)" dur="1s"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-62-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-62-t-isvalid.html
new file mode 100644
index 0000000000..9154bf0ea9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-62-t-isvalid.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-62-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-62-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-62-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="30" font-size="20">end</text>
+ <g transform="translate(100, 80)">
+ <g transform="translate(80,5)" text-anchor="end" font-size="14">
+ <text>unspecified</text>
+ <text y="25">offset</text>
+ <text y="50">event base</text>
+ <text y="75">sync base</text>
+ <text y="100">indefinite</text>
+ <text y="125">repeat()</text>
+ <text y="150">accessKey()</text>
+ <text y="175">wallclock()</text>
+ </g>
+
+ <g id="timeMarkersText" transform="translate(100, -15)" text-anchor="middle" font-size="8">
+ <text>0s</text>
+ <text x="12">1s</text>
+ <text x="24">2s</text>
+ <text x="36">3s</text>
+ <text x="48">4s</text>
+ <text x="60">5s</text>
+ <text x="72">6s</text>
+ <text x="84">7s</text>
+ <text x="96">8s</text>
+ <text x="120">0s</text>
+ <text x="132">1s</text>
+ <text x="144">2s</text>
+ </g>
+
+ <g id="timeMarkers" transform="translate(94, -10) scale(1, 8)">
+ <rect width="12" height="25" fill="#eee"/>
+ <rect x="12" width="12" height="25" fill="#ddd"/>
+ <rect x="24" width="12" height="25" fill="#eee"/>
+ <rect x="36" width="12" height="25" fill="#ddd"/>
+ <rect x="48" width="12" height="25" fill="#eee"/>
+ <rect x="60" width="12" height="25" fill="#ddd"/>
+ <rect x="72" width="12" height="25" fill="#eee"/>
+ <rect x="84" width="12" height="25" fill="#ddd"/>
+ <rect x="96" width="12" height="25" fill="#eee"/>
+ <rect x="120" width="12" height="25" fill="#eee"/>
+ <rect x="132" width="12" height="25" fill="#ddd"/>
+ <rect x="144" width="12" height="25" fill="#eee"/>
+ </g>
+
+ <g transform="translate(100,0)">
+ <g id="setOne">
+ <rect x="-6" y="-6" width="12" height="12" fill="#F33">
+ <set attributeName="fill" to="#3F3" begin="0s" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setTwo" transform="translate(0, 25)">
+ <rect x="-6" y="-6" width="12" height="12" fill="#3F3" transform="translate(24,0)">
+ <set id="secondSet" attributeName="fill" to="#F33" begin="0s" end="2s" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setThree" transform="translate(0, 50)">
+ <rect id="setThreeTarget" x="-6" y="-6" width="12" height="12" fill="#3F3" transform="translate(120,0)">
+ <set attributeName="fill" id="thirdSet" to="#F33" end="setThreeTarget.click" dur="indefinite"/>
+ </rect>
+ <rect x="-6" y="-6" width="12" height="12" fill="#F33" transform="translate(144,0)">
+ <set attributeName="fill" id="thirdSetOffset" to="#3F3" begin="setThreeTarget.click + 2s" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setFour" transform="translate(0, 75)">
+ <set id="endBase" attributeName="display" to="inline" begin="7s" dur="1s"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="#3F3" transform="translate(24,0)">
+ <set attributeName="fill" to="#F33" end="secondSet.begin + 2s" dur="indefinite"/>
+ </rect>
+ <rect x="-6" y="-6" width="12" height="12" fill="#3F3" transform="translate(48,0)">
+ <set attributeName="fill" to="#F33" end="secondSet.begin + 4s" dur="indefinite"/>
+ </rect>
+ <rect x="-6" y="-6" width="12" height="12" fill="#3F3" transform="translate(72,0)">
+ <set attributeName="fill" to="#F33" end="endBase.end - 2s" dur="indefinite"/>
+ </rect>
+ <rect x="-6" y="-6" width="12" height="12" fill="#3F3" transform="translate(96,0)">
+ <set attributeName="fill" to="#F33" end="endBase.end" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setFive" transform="translate(0, 100)">
+ <rect x="-6" y="-6" width="12" height="12" fill="#F33">
+ <set attributeName="fill" to="#3F3" end="indefinite" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setSix" transform="translate(0, 125)">
+ <set id="repeatingSet" attributeName="display" to="inline" begin="0s" dur="1s" repeatCount="4"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="#3F3" transform="translate(36,0)">
+ <set attributeName="fill" to="#F33" end="repeatingSet.repeat(3)" dur="indefinite"/>
+ </rect>
+ <rect x="-6" y="-6" width="12" height="12" fill="#3F3" transform="translate(60,0)">
+ <set attributeName="fill" to="#F33" end="repeatingSet.repeat(3) + 2s" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setSeven" transform="translate(0, 150)">
+ <rect x="-6" y="-6" width="12" height="12" fill="#3F3" transform="translate(120,0)">
+ <set attributeName="fill" to="#F33" end="accessKey(a)" dur="indefinite"/>
+ </rect>
+ <rect x="-6" y="-6" width="12" height="12" fill="#3F3" transform="translate(144,0)">
+ <set attributeName="fill" to="#F33" end="accessKey(a) + 2s" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setEight" transform="translate(0, 175)">
+ <rect x="-6" y="-6" width="12" height="12" fill="#F33">
+ <set attributeName="fill" to="#3F3" end="wallclock(2200-06-10T12:34:56Z)" dur="indefinite"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-63-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-63-t-isvalid.html
new file mode 100644
index 0000000000..287450592b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-63-t-isvalid.html
@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-63-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-63-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-63-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="30" font-size="20">multiple end</text>
+ <g transform="translate(100, 100)">
+ <g transform="translate(80,25)" text-anchor="end" font-size="14">
+ <text>2 offsets</text>
+ <text y="25">2 sync bases</text>
+ <text y="50">2 repeat</text>
+ <text y="100">2 event base</text>
+ <text y="125">2 accessKeys</text>
+ <text y="150">misc</text>
+ </g>
+
+ <g id="timeMarkersText" transform="translate(150, 5)" text-anchor="middle" font-size="14">
+ <text>0-1s</text>
+ <text y="-20">2s-4s</text>
+ <text y="-40">&gt; 5s</text>
+ <g transform="translate(40,0)">
+ <text>1-2s</text>
+ <text y="-20">4-5s</text>
+ </g>
+ </g>
+
+ <g transform="translate(150,20)" stroke="black">
+ <defs>
+ <rect id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1"/>
+ </defs>
+
+ <g id="setOne">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="40"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set id="firstSet" attributeName="x" to="34" begin="1s; 4s" end="2s; 5s" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setTwo" transform="translate(0, 25)">
+ <set id="syncBase" attributeName="display" to="inline" begin="0s" dur="indefinite"/>
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="40"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="34" begin="1s; 4s" end="syncBase.begin+2s;syncBase.begin + 5s" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setThree" transform="translate(0, 50)">
+ <set id="repeatBase" attributeName="display" to="inline" begin="0s" dur="1s" repeatDur="indefinite"/>
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="40"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="34" begin="1s; 4s" end="repeatBase.repeat(2);repeatBase.repeat(5)" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setFour" transform="translate(0, 100)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="40"/>
+
+ <rect id="setFourTarget" x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="34" begin="0s" end="setFourTarget.click -5s; setFourTarget.click + 5s" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setFive" transform="translate(0, 125)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="40"/>
+ <rect id="setFiveTarget" x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="34" begin="0s" end="accessKey(a) - 5s;accessKey(a)+5s" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setSix" transform="translate(0, 150)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="40"/>
+ <rect id="setSixTarget" x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="34" begin="1s;4s" end="2s;5s;setSixTarget.click;accessKey(b)" dur="indefinite"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-64-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-64-t-isvalid.html
new file mode 100644
index 0000000000..4a6871f47e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-64-t-isvalid.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-64-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-64-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-64-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="30" font-size="20">dur</text>
+ <g transform="translate(100, 100)">
+ <g transform="translate(80,25)" text-anchor="end" font-size="14">
+ <text>clock value</text>
+ <text y="65">indefinite</text>
+ <text y="130">media</text>
+ </g>
+
+ <g id="timeMarkersText" transform="translate(150, 5)" text-anchor="middle" font-size="14">
+ <text>&gt; 2s</text>
+ <text x="80">0s-2s</text>
+
+ <g transform="translate(0, 65)">
+ <text>never</text>
+ <text x="80">&gt; 0s</text>
+ </g>
+
+ <g transform="translate(0, 130)">
+ <text>never</text>
+ <text x="80">&gt; 0s</text>
+ </g>
+ </g>
+
+ <g transform="translate(150,20)" stroke="black">
+ <defs>
+ <rect id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1"/>
+ </defs>
+
+ <g id="setOne">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set id="firstSet" attributeName="x" to="74" dur="2s"/>
+ </rect>
+ </g>
+
+ <g id="setTwo" transform="translate(0, 65)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setThree" transform="translate(0, 130)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="media"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-65-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-65-t-isvalid.html
new file mode 100644
index 0000000000..ae4d9d1ab1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-65-t-isvalid.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-65-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-65-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-65-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="30" font-size="20">min</text>
+
+ <g transform="translate(100, 50)">
+
+ <g transform="translate(120,45)" text-anchor="end" font-size="14">
+ <text>no min / media</text>
+ <text y="25">invalid min</text>
+ <text y="50">min &lt; active dur</text>
+ <text y="75">min &gt; active dur</text>
+ <text y="100">min &lt; repeat dur</text>
+ <text y="125">min &gt; repeat dur, remove</text>
+ <text y="180">min &gt; repeat dur, freeze</text>
+ </g>
+
+ <g id="timeMarkersText" transform="translate(150, 25)" text-anchor="middle" font-size="14">
+ <text>&gt; 5s</text>
+ <text x="80">0s-5s</text>
+
+ <g transform="translate(0, 180)">
+ <text>never</text>
+ <text x="80">&gt; 0s</text>
+ </g>
+ </g>
+
+ <g transform="translate(150,40)" stroke="black">
+ <defs>
+ <rect id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1"/>
+ </defs>
+
+ <g id="setOne">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set id="firstSet" attributeName="x" to="74" end="5s"/>
+ </rect>
+
+ <g transform="translate(20, 0)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" end="5s" min="media"/>
+ </rect>
+ </g>
+ </g>
+
+ <g id="setTwo" transform="translate(0, 25)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="-6s" end="5s"/>
+ </rect>
+ </g>
+
+ <g id="setThree" transform="translate(0, 50)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="3s" end="5s"/>
+ </rect>
+ </g>
+
+ <g id="setFour" transform="translate(0, 75)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="5s" dur="indefinite" end="2s"/>
+ </rect>
+ </g>
+
+ <g id="setFive" transform="translate(0, 100)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="5s" end="2s" dur="1s" repeatCount="7"/>
+ </rect>
+ </g>
+
+ <g id="setSix" transform="translate(0, 125)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="8s" end="2s" dur="1s" repeatCount="5" fill="remove"/>
+ </rect>
+ </g>
+
+ <g id="setSeven" transform="translate(0, 180)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="8s" end="2s" dur="1s" repeatCount="5" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-66-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-66-t-isvalid.html
new file mode 100644
index 0000000000..35674a7ef2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-66-t-isvalid.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-66-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-66-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-66-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="30" font-size="20">max</text>
+ <text text-anchor="middle" x="240" y="190" font-size="20">min &amp; max</text>
+ <g transform="translate(100, 30)">
+ <g transform="translate(120,45)" text-anchor="end" font-size="14">
+ <text>no max / media</text>
+ <text y="25">invalid max values</text>
+ <text y="50">max &lt; active dur</text>
+ <text y="75">max &gt; active dur</text>
+ <text y="150">min &lt; max</text>
+ <text y="175">min = max</text>
+ <text y="200">min &gt; max (both ignored)</text>
+ </g>
+ <g id="timeMarkersText" transform="translate(150, 25)" text-anchor="middle" font-size="14">
+ <text>&gt; 5s</text>
+ <text x="80">0s-5s</text>
+ </g>
+
+ <g transform="translate(150,40)" stroke="black">
+ <defs>
+ <rect id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1"/>
+ </defs>
+
+ <g id="setOne">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set id="firstSet" attributeName="x" to="74" end="5s"/>
+ </rect>
+
+ <g transform="translate(20, 0)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" end="5s" max="media"/>
+ </rect>
+ </g>
+ </g>
+
+ <g id="setTwo" transform="translate(0, 25)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" max="-6s" end="5s"/>
+ </rect>
+
+ <g transform="translate(20, 0)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" end="5s" max="foo"/>
+ </rect>
+ </g>
+ </g>
+
+ <g id="setThree" transform="translate(0, 50)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" max="5s" end="8s"/>
+ </rect>
+ </g>
+
+ <g id="setFour" transform="translate(0, 75)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" max="8s" dur="indefinite" end="5s"/>
+ </rect>
+ </g>
+
+ <g id="setFive" transform="translate(0, 150)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="2s" max="5s" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setSix" transform="translate(0, 175)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="5s" max="5s" dur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setSeven" transform="translate(0, 200)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" min="8s" max="2s" end="5s"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-67-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-67-t-isvalid.html
new file mode 100644
index 0000000000..1975b64f51
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-67-t-isvalid.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-67-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-67-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-67-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="30" font-size="20">restart</text>
+
+ <g transform="translate(130, 80)">
+
+ <g transform="translate(120,45)" text-anchor="end" font-size="14">
+ <text>no restart (defaults to always)</text>
+ <text y="25">restart="always"</text>
+ <text y="50">restart="whenNotActive"</text>
+ <text y="75">restart="never"</text>
+ <text y="100">reference</text>
+ </g>
+
+ <g id="timeMarkersText" transform="translate(180, 25)" text-anchor="middle" font-size="14">
+ <text>&gt; 5s</text>
+ <text x="80">0s-5s</text>
+ </g>
+
+ <g transform="translate(180,40)" stroke="black">
+ <defs>
+ <rect id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1"/>
+ </defs>
+
+ <g id="setOne">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set id="firstSet" attributeName="x" to="74" begin="0s;1s" dur="4s"/>
+ </rect>
+
+ </g>
+
+ <g id="setTwo" transform="translate(0, 25)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" begin="0s;1s" dur="4s" restart="always"/>
+ </rect>
+
+ </g>
+
+ <g id="setThree" transform="translate(0, 50)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" begin="0s;1s" dur="5s" restart="whenNotActive"/>
+ </rect>
+
+ <g transform="translate(20,0)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" begin="0s;2.5s" dur="2.5s" restart="whenNotActive"/>
+ </rect>
+ </g>
+ </g>
+
+ <g id="setFour" transform="translate(0, 75)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" begin="0s;5s" dur="5s" restart="never"/>
+ </rect>
+ </g>
+
+ <g id="reference" transform="translate(0, 100)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="5s"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-68-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-68-t-isvalid.html
new file mode 100644
index 0000000000..927dfe08ee
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-68-t-isvalid.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-68-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-68-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-68-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="30" font-size="20">repeatCount</text>
+ <g transform="translate(130, 80)">
+ <g transform="translate(120,45)" text-anchor="end" font-size="14">
+ <text>dur=5s repeatCount unspecified</text>
+ <text y="25">dur=1s repeatCount=5</text>
+ <text y="50">dur=10s repeatCount=0.5</text>
+ <text y="75">dur=1s repeatCount=indefinite</text>
+ <text y="90">end=5s</text>
+ </g>
+
+ <g id="timeMarkersText" transform="translate(180, 25)" text-anchor="middle" font-size="14">
+ <text>&gt; 5s</text>
+ <text x="80">0s-5s</text>
+ </g>
+ <g transform="translate(180,40)" stroke="black">
+ <defs>
+ <rect id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1"/>
+ </defs>
+
+ <g id="setOne">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set id="firstSet" attributeName="x" to="74" dur="5s"/>
+ </rect>
+
+ </g>
+
+ <g id="setTwo" transform="translate(0, 25)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="1s" repeatCount="5"/>
+ </rect>
+
+ </g>
+
+ <g id="setThree" transform="translate(0, 50)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="10s" repeatCount="0.5"/>
+ </rect>
+ </g>
+
+ <g id="setFour" transform="translate(0, 75)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="1s" end="5s" repeatCount="indefinite"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-69-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-69-t-isvalid.html
new file mode 100644
index 0000000000..7b28226b38
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-69-t-isvalid.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-69-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-69-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-69-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="30" font-size="20">repeatDur</text>
+ <g transform="translate(130, 80)">
+ <g transform="translate(120,45)" text-anchor="end" font-size="14">
+ <text>dur=5s repeatDur unspecified</text>
+ <text y="25">dur=1s repeatDur=5s</text>
+ <text y="50">dur=0.5s repeatDur=5s</text>
+ <text y="75">dur=1s repeatDur=indefinite</text>
+ <text y="90">end=5s</text>
+ <text y="125">dur=0.7s repeatDur=5s</text>
+ </g>
+
+ <g id="timeMarkersText" transform="translate(180, 25)" text-anchor="middle" font-size="14">
+ <text>&gt; 5s</text>
+ <text x="80">0s-5s</text>
+ </g>
+
+ <g transform="translate(180,40)" stroke="black">
+ <defs>
+ <rect id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1"/>
+ </defs>
+
+ <g id="setOne">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set id="firstSet" attributeName="x" to="74" dur="5s"/>
+ </rect>
+
+ </g>
+
+ <g id="setTwo" transform="translate(0, 25)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="1s" repeatDur="5s"/>
+ </rect>
+
+ </g>
+
+ <g id="setThree" transform="translate(0, 50)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="0.5s" repeatDur="5s"/>
+ </rect>
+ </g>
+
+ <g id="setFour" transform="translate(0, 75)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="1s" end="5s" repeatDur="indefinite"/>
+ </rect>
+ </g>
+
+ <g id="setFive" transform="translate(0, 125)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set attributeName="x" to="74" dur="0.7s" repeatDur="5s"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-70-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-70-t-isvalid.html
new file mode 100644
index 0000000000..5754fdf378
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-70-t-isvalid.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-70-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-70-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-70-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="30" font-size="20">fill</text>
+ <g transform="translate(130, 60)">
+ <g transform="translate(120,45)" text-anchor="end" font-size="14">
+ <text>fill unspecified (remove)</text>
+ <text y="25">fill=remove</text>
+ <text y="100">fill=freeze (with restart)</text>
+ <text y="125">fill=freeze (no restart)</text>
+ </g>
+
+ <g id="timeMarkersText" transform="translate(180, 125)" text-anchor="middle" font-size="14">
+ <text y="-15">never</text>
+ <text>here</text>
+ <text y="-15" x="80">always</text>
+ <text x="80">here</text>
+ </g>
+
+ <g transform="translate(180,40)" stroke="black">
+ <defs>
+ <rect id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1"/>
+ </defs>
+
+ <g id="setOne">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set id="firstSet" attributeName="x" to="74" begin="0s; firstSet.end + 1s" dur="1s"/>
+ </rect>
+
+ </g>
+
+ <g id="setTwo" transform="translate(0, 25)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set id="secondSet" attributeName="x" to="74" begin="0s; secondSet.end + 1s" dur="1s" fill="remove"/>
+ </rect>
+
+ </g>
+
+ <g id="setThree" transform="translate(0, 100)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set id="thirdSet" attributeName="x" to="74" begin="0s; thirdSet.end + 1s" dur="1s" fill="freeze"/>
+ </rect>
+ </g>
+
+
+ <g id="setFour" transform="translate(0, 125)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <set id="fourthSet" attributeName="x" to="74" begin="0s" dur="1s" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-77-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-77-t-isvalid.html
new file mode 100644
index 0000000000..8cfc4cbd82
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-77-t-isvalid.html
@@ -0,0 +1,287 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-77-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-77-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-77-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="FreeSerif" unicode-range="U+0-7F" font-weight="400">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/FreeSerif.svg#FreeSerif"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="FreeSerif" unicode-range="U+0-7F" font-weight="700">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/FreeSerifBold.svg#FreeSerifBold"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="FreeSerif" unicode-range="U+0-7F" font-weight="400" font-style="italic">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/FreeSerifItalic.svg#FreeSerifItalic"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="FreeSerif" unicode-range="U+0-7F" font-weight="700" font-style="italic">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/FreeSerifBoldItalic.svg#FreeSerifBoldItalic"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="FreeSerif, serif" font-size="18">
+ <text text-anchor="middle" x="240" y="30" font-size="20">text</text>
+ <g transform="translate(80, 80)">
+ <g transform="translate(20,10)" text-anchor="end" font-size="14">
+ <text x="5" y="15">transform</text>
+ <text x="5" y="50">text-anchor</text>
+ <text x="5" y="85">font-size</text>
+ <text x="5" y="120">font-family</text>
+ <text x="5" y="155">font-style</text>
+ <text x="5" y="190">font-weight</text>
+ </g>
+
+ <g id="type" transform="translate(90, -10)" text-anchor="middle" font-size="14">
+ <text x="20" y="3">&lt;text&gt;</text>
+ <text x="135" y="3">&lt;g&gt;</text>
+ <text x="250" y="3">&lt;a&gt;</text>
+ </g>
+
+ <g transform="translate(80,5)" text-anchor="start" font-size="20" fill="rgb(204,0,102)">
+ <text id="one" x="10" y="20" fill="#aaa">A </text>
+
+ <g id="setOne">
+ <defs>
+ <g id="setOneRef">
+ <text x="10" y="20" fill="#aaa">A </text>
+ <text x="10" y="20" fill="#aaa" transform="translate(30,0)">A </text>
+ </g>
+ </defs>
+
+ <use xlink:href="#setOneRef"/>
+ <use xlink:href="#setOneRef" x="110"/>
+ <use xlink:href="#setOneRef" x="220"/>
+
+ <text x="10" y="20">
+ A
+ <animateTransform attributeName="transform" id="firstSet" type="translate" from="30,0" to="30,0" begin="0s; firstSet.end + 1s" dur="1s"/>
+ </text>
+
+ <g transform="translate(110, 0)">
+ <animateTransform attributeName="transform" id="secondSet" type="translate" from="140,0" to="140,0" begin="0s; secondSet.end + 1s" dur="1s"/>
+ <text x="10" y="20">A</text>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <animateTransform attributeName="transform" id="thirdSet" type="translate" from="250,0" to="250,0" begin="0s; thirdSet.end + 1s" dur="1s"/>
+ <text x="10" y="20">A</text>
+ </a>
+ </g>
+
+ <g id="setTwo" transform="translate(0,35)">
+ <defs>
+ <g id="setTwoRef">
+ <text x="10" y="20" fill="#aaa">A </text>
+ <text x="10" y="20" fill="#aaa" transform="translate(40,0)" text-anchor="end">A</text>
+ </g>
+ </defs>
+
+ <use xlink:href="#setTwoRef"/>
+ <use xlink:href="#setTwoRef" x="110"/>
+ <use xlink:href="#setTwoRef" x="220"/>
+
+ <text x="10" y="20">
+ A
+ <set id="secondSet1" attributeName="text-anchor" to="end" begin="0s; secondSet1.end + 1s" dur="1s"/>
+ <animateTransform attributeName="transform" id="secondSet1_1" type="translate" from="40,0" to="40,0" begin="0s; secondSet1_1.end + 1s" dur="1s"/>
+ </text>
+
+ <g>
+ <set id="secondSet2" attributeName="text-anchor" to="end" begin="0s; secondSet2.end + 1s" dur="1s"/>
+ <text x="120" y="20">
+ A
+ <animateTransform attributeName="transform" id="secondSet2_1" type="translate" from="40,0" to="40,0" begin="0s; secondSet2_1.end + 1s" dur="1s"/>
+ </text>
+ </g>
+
+ <a>
+ <set id="secondSet3" attributeName="text-anchor" to="end" begin="0s; secondSet3.end + 1s" dur="1s"/>
+ <text x="230" y="20">
+ A
+ <animateTransform attributeName="transform" id="secondSet3_1" type="translate" from="40,0" to="40,0" begin="0s; secondSet3_1.end + 1s" dur="1s"/>
+ </text>
+ </a>
+ </g>
+
+ <g id="setThree" transform="translate(0,70)">
+ <defs>
+ <g id="setThreeRef">
+ <text x="10" y="20" fill="#aaa">A </text>
+ <text x="40" y="20" font-size="30" fill="#aaa">A</text>
+ </g>
+ </defs>
+ <use xlink:href="#setThreeRef"/>
+ <use xlink:href="#setThreeRef" x="110"/>
+ <use xlink:href="#setThreeRef" x="220"/>
+
+ <text x="10" y="20">
+ A
+ <set id="thirdSet1" attributeName="font-size" to="30" begin="0s; thirdSet1.end + 1s" dur="1s"/>
+ <animateTransform attributeName="transform" id="thirdSet1_1" type="translate" from="30,0" to="30,0" begin="0s; thirdSet1_1.end + 1s" dur="1s"/>
+ </text>
+
+ <g>
+ <set id="thirdSet2" attributeName="font-size" to="30" begin="0s; thirdSet2.end + 1s" dur="1s"/>
+ <text x="120" y="20">
+ A
+ <animateTransform attributeName="transform" id="thirdSet2_1" type="translate" from="30,0" to="30,0" begin="0s; thirdSet2_1.end + 1s" dur="1s"/>
+ </text>
+ </g>
+
+ <a>
+ <set id="thirdSet3" attributeName="font-size" to="30" begin="0s; thirdSet3.end + 1s" dur="1s"/>
+ <text x="230" y="20">
+ A
+ <animateTransform attributeName="transform" id="thirdSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; thirdSet3_1.end + 1s" dur="1s"/>
+ </text>
+ </a>
+ </g>
+
+ <g id="setFour" transform="translate(0,105)">
+ <defs>
+ <g id="setFourRef">
+ <text x="10" y="20" font-size="30" fill="#aaa" font-family="sans-serif">A</text>
+ <text x="40" y="20" font-size="30" fill="#aaa" font-family="serif">A</text>
+ </g>
+ </defs>
+ <use xlink:href="#setFourRef"/>
+ <use xlink:href="#setFourRef" x="110"/>
+ <use xlink:href="#setFourRef" x="220"/>
+
+ <text x="10" y="20" font-size="30" font-family="sans-serif">
+ A
+ <set id="fourthSet1" attributeName="font-family" to="serif" begin="0s; fourthSet1.end + 1s" dur="1s"/>
+ <animateTransform attributeName="transform" id="fourthSet1_1" type="translate" from="30,0" to="30,0" begin="0s; fourthSet1_1.end + 1s" dur="1s"/>
+ </text>
+
+ <g transform="translate(110,0)" font-family="sans-serif">
+ <set id="fourthSet2" attributeName="font-family" to="serif" begin="0s; fourthSet2.end + 1s" dur="1s"/>
+ <text x="10" y="20" font-size="30">
+ A
+ <animateTransform attributeName="transform" id="fourthSet2_1" type="translate" from="30,0" to="30,0" begin="0s; fourthSet2_1.end + 1s" dur="1s"/>
+ </text>
+ </g>
+
+ <a xlink:href="" transform="translate(220,0)" font-family="sans-serif">
+ <set id="fourthSet3" attributeName="font-family" to="serif" begin="0s; fourthSet3.end + 1s" dur="1s"/>
+ <text x="10" y="20" font-size="30">
+ A
+ <animateTransform attributeName="transform" id="fourthSet3_1" type="translate" from="30,0" to="30,0" begin="0s; fourthSet2_1.end + 1s" dur="1s"/>
+ </text>
+ </a>
+
+ </g>
+
+ <g id="setFive" transform="translate(0,140)">
+ <defs>
+ <g id="setFiveRef">
+ <text x="10" y="20" fill="#aaa">A</text>
+ <text x="40" y="20" fill="#aaa" font-style="italic">A</text>
+ </g>
+ </defs>
+
+ <use xlink:href="#setFiveRef"/>
+ <use xlink:href="#setFiveRef" x="110"/>
+ <use xlink:href="#setFiveRef" x="220"/>
+
+ <text x="10" y="20">
+ A
+ <set id="fifthSet1" attributeName="font-style" to="italic" begin="0s; fifthSet1.end + 1s" dur="1s"/>
+ <animateTransform attributeName="transform" id="fifthSet1_1" type="translate" from="30,0" to="30,0" begin="0s; fifthSet1_1.end + 1s" dur="1s"/>
+ </text>
+
+ <g transform="translate(110,0)">
+ <set id="fifthSet2" attributeName="font-style" to="italic" begin="0s; fifthSet2.end + 1s" dur="1s"/>
+ <text x="10" y="20">
+ A
+ <animateTransform attributeName="transform" id="fifthSet2_1" type="translate" from="30,0" to="30,0" begin="0s; fifthSet2_1.end + 1s" dur="1s"/>
+ </text>
+ </g>
+
+ <a xlink:href="" transform="translate(220,0)">
+ <set id="fifthSet3" attributeName="font-style" to="italic" begin="0s; fifthSet3.end + 1s" dur="1s"/>
+ <text x="10" y="20">
+ A
+ <animateTransform attributeName="transform" id="fifthSet3_1" type="translate" from="30,0" to="30,0" begin="0s; fifthSet3_1.end + 1s" dur="1s"/>
+ </text>
+ </a>
+ </g>
+
+ <g id="setSix" transform="translate(0,175)">
+ <defs>
+ <g id="setSixRef">
+ <text x="10" y="20" fill="#aaa">A</text>
+ <text x="40" y="20" fill="#aaa" font-weight="bold">A</text>
+ </g>
+ </defs>
+
+ <use xlink:href="#setSixRef"/>
+ <use xlink:href="#setSixRef" x="110"/>
+ <use xlink:href="#setSixRef" x="220"/>
+
+ <text x="10" y="20">
+ A
+ <set id="sixthSet1" attributeName="font-weight" to="bold" begin="0s; sixthSet1.end + 1s" dur="1s"/>
+ <animateTransform attributeName="transform" id="sixthSet1_1" type="translate" from="30,0" to="30,0" begin="0s; sixthSet1_1.end + 1s" dur="1s"/>
+ </text>
+
+ <g transform="translate(110,0)">
+ <set id="sixthSet2" attributeName="font-weight" to="bold" begin="0s; sixthSet2.end + 1s" dur="1s"/>
+ <text x="10" y="20">
+ A
+ <animateTransform attributeName="transform" id="sixthSet2_1" type="translate" from="30,0" to="30,0" begin="0s; sixthSet2_1.end + 1s" dur="1s"/>
+ </text>
+ </g>
+
+ <a xlink:href="" transform="translate(220,0)">
+ <set id="sixthSet3" attributeName="font-weight" to="bold" begin="0s; sixthSet3.end + 1s" dur="1s"/>
+ <text x="10" y="20">
+ A
+ <animateTransform attributeName="transform" id="sixthSet3_1" type="translate" from="30,0" to="30,0" begin="0s; sixthSet3_1.end + 1s" dur="1s"/>
+ </text>
+ </a>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-78-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-78-t-isvalid.html
new file mode 100644
index 0000000000..675d0c74a6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-78-t-isvalid.html
@@ -0,0 +1,423 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-78-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-78-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-78-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="25" font-size="20">graphics</text>
+ <g transform="translate(80, 75)">
+ <g transform="translate(30,10)" text-anchor="end" font-size="12">
+ <text>fill</text>
+ <text y="20">fill-rule</text>
+ <text y="40">stroke</text>
+ <text y="60">stroke-width</text>
+ <text y="80">stroke-linecap</text>
+ <text y="100">stroke-linejoin</text>
+ <text y="120">stroke-miterlimit</text>
+ <text y="140">stroke-dashoffset</text>
+ <text y="160">display</text>
+ <text y="180">visibility</text>
+ <text y="200">color</text>
+ </g>
+
+ <g id="type" transform="translate(90, -20)" text-anchor="middle" font-size="14">
+ <text x="20" y="3">'Basic Shape'</text>
+ <text x="130" y="3">&lt;g&gt;</text>
+ <text x="235" y="3">&lt;a&gt;</text>
+ </g>
+
+ <g transform="translate(80,0)" fill="rgb(204,0,102)">
+ <rect x="10" width="8" height="8" fill="#ccc"/>
+
+ <g id="setOne">
+ <defs>
+ <g id="setOneRef">
+ <rect x="10" width="8" height="8" fill="#ccc"/>
+ <rect x="10" width="8" height="8" fill="#ccc" transform="translate(30,0)"/>
+ </g>
+ </defs>
+ <use xlink:href="#setOneRef"/>
+ <use xlink:href="#setOneRef" x="110"/>
+ <use xlink:href="#setOneRef" x="220"/>
+
+ <rect x="10" width="8" height="8">
+ <set id="firstSet1" attributeName="fill" to="rgb(255, 165, 0)" begin="0s; firstSet1.end + 1s" dur="1s"/>
+ <animateTransform attributeName="transform" id="firstSet1_1" type="translate" from="30,0" to="30,0" begin="0s; firstSet1_1.end + 1s" dur="1s"/>
+ </rect>
+
+ <g transform="translate(110, 0)">
+ <set id="firstSet2" attributeName="fill" to="rgb(255, 165, 0)" begin="0s; firstSet2.end + 1s" dur="1s"/>
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" id="firstSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; firstSet2_1.end + 1s" dur="1s"/>
+ </rect>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <set id="firstSet3" attributeName="fill" to="rgb(255, 165, 0)" begin="0s; firstSet3.end + 1s" dur="1s"/>
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" id="firstSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; firstSet3_1.end + 1s" dur="1s"/>
+ </rect>
+ </a>
+
+ </g>
+ <g id="setTwo" transform="translate(5,15)" stroke="rgb(204,0,102)">
+ <defs>
+ <g id="setTwoRef">
+ <polyline fill="#ccc" stroke="#ccc" stroke-width="1" points="20,10,0,10,15,20,10,2,5,20,20,10">
+ </polyline>
+ <polyline fill="#ccc" stroke="#ccc" fill-rule="evenodd" stroke-width="1" points="20,10,0,10,15,20,10,2,5,20,20,10" transform="translate(30,0)">
+ </polyline>
+ </g>
+ </defs>
+ <use xlink:href="#setTwoRef"/>
+ <use xlink:href="#setTwoRef" x="110"/>
+ <use xlink:href="#setTwoRef" x="220"/>
+
+ <polyline points="20,10,0,10,15,20,10,2,5,20,20,10">
+ <set id="secondSet1" attributeName="fill-rule" to="evenodd" begin="0s; secondSet1_1.end + 1s" dur="1s"/>
+ <animateTransform attributeName="transform" id="secondSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; secondSet1_1.end + 1s" dur="1s"/>
+ </polyline>
+
+ <g transform="translate(110, 0)">
+ <set id="secondSet2" attributeName="fill-rule" to="evenodd" begin="0s; secondSet2_1.end + 1s" dur="1s"/>
+ <polyline points="20,10,0,10,15,20,10,2,5,20,20,10">
+ <animateTransform attributeName="transform" id="secondSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; secondSet2_1.end + 1s" dur="1s"/>
+ </polyline>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <set id="secondSet3" attributeName="fill-rule" to="evenodd" begin="0s; secondSet3_1.end + 1s" dur="1s"/>
+ <polyline points="20,10,0,10,15,20,10,2,5,20,20,10">
+ <animateTransform attributeName="transform" id="secondSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; secondSet3_1.end + 1s" dur="1s"/>
+ </polyline>
+ </a>
+
+ </g>
+
+ <g id="setThree" transform="translate(0,45)" fill="none">
+ <defs>
+ <g id="setThreeRef">
+ <rect x="10" width="8" height="8" fill="#ccc"/>
+ <rect x="10" width="8" height="8" fill="#ccc" transform="translate(30,0)"/>
+ </g>
+ </defs>
+ <use xlink:href="#setThreeRef"/>
+ <use xlink:href="#setThreeRef" x="110"/>
+ <use xlink:href="#setThreeRef" x="220"/>
+
+ <rect x="10" width="8" height="8">
+ <set id="thirdSet1" attributeName="stroke" to="rgb(204,0,102)" begin="0s; thirdSet1.end + 1s" dur="1s"/>
+ <animateTransform attributeName="transform" id="thirdSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; thirdSet1_1.end + 1s" dur="1s"/>
+ </rect>
+
+ <g transform="translate(110, 0)">
+ <set id="thirdSet2" attributeName="stroke" to="rgb(204,0,102)" begin="0s; thirdSet2.end + 1s" dur="1s"/>
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" id="thirdSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; thirdSet2_1.end + 1s" dur="1s"/>
+ </rect>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <set id="thirdSet3" attributeName="stroke" to="rgb(204,0,102)" begin="0s; thirdSet3.end + 1s" dur="1s"/>
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" id="thirdSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; thirdSet3_1.end + 1s" dur="1s"/>
+ </rect>
+ </a>
+ </g>
+
+ <g id="setFour" transform="translate(0,60)" stroke="rgb(204,0,102)">
+ <defs>
+ <g id="setFourRef">
+ <line x1="10" y1="8" x2="20" y2="0" stroke="#ccc">
+ </line>
+ <line x1="10" y1="8" x2="20" y2="0" stroke-width="4" stroke="#ccc" transform="translate(30,0)">
+ </line>
+ </g>
+ </defs>
+ <use xlink:href="#setFourRef"/>
+ <use xlink:href="#setFourRef" x="110"/>
+ <use xlink:href="#setFourRef" x="220"/>
+
+ <line x1="10" y1="8" x2="20" y2="0">
+ <set id="fourthSet1" attributeName="stroke-width" to="4" begin="0s; fourthSet1.end + 1s" dur="1s"/>
+ <animateTransform attributeName="transform" id="fourthSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; fourthSet1_1.end + 1s" dur="1s"/>
+ </line>
+
+ <g transform="translate(110, 0)">
+ <set id="fourthSet2" attributeName="stroke-width" to="4" begin="0s; fourthSet2.end + 1s" dur="1s"/>
+ <line x1="10" y1="8" x2="20" y2="0">
+ <animateTransform attributeName="transform" id="fourthSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; fourthSet2_1.end + 1s" dur="1s"/>
+ </line>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <set id="fourthSet3" attributeName="stroke-width" to="4" begin="0s; fourthSet3.end + 1s" dur="1s"/>
+ <line x1="10" y1="8" x2="20" y2="0">
+ <animateTransform attributeName="transform" id="fourthSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; fourthSet3_1.end + 1s" dur="1s"/>
+ </line>
+ </a>
+ </g>
+
+ <g id="setFive" transform="translate(0,80)" stroke-width="4" stroke="rgb(204,0,102)">
+ <defs>
+ <g id="setFiveRef">
+ <line x1="10" y1="8" x2="20" y2="0" stroke="#ccc">
+ </line>
+ <line x1="10" y1="8" x2="20" y2="0" stroke-linecap="round" stroke="#ccc" transform="translate(30,0)">
+ </line>
+ </g>
+ </defs>
+ <use xlink:href="#setFiveRef"/>
+ <use xlink:href="#setFiveRef" x="110"/>
+ <use xlink:href="#setFiveRef" x="220"/>
+
+ <line x1="10" y1="8" x2="20" y2="0">
+ <set id="fifthSet1" attributeName="stroke-linecap" to="round" begin="0s; fifthSet1.end + 1s" dur="1s"/>
+ <animateTransform attributeName="transform" id="fifthSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; fifthSet1_1.end + 1s" dur="1s"/>
+ </line>
+
+ <g transform="translate(110, 0)">
+ <set id="fifthSet2" attributeName="stroke-linecap" to="round" begin="0s; fifthSet2.end + 1s" dur="1s"/>
+ <line x1="10" y1="8" x2="20" y2="0">
+ <animateTransform attributeName="transform" id="fifthSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; fifthSet2_1.end + 1s" dur="1s"/>
+ </line>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <set id="fifthSet3" attributeName="stroke-linecap" to="round" begin="0s; fifthSet3.end + 1s" dur="1s"/>
+ <line x1="10" y1="8" x2="20" y2="0">
+ <animateTransform attributeName="transform" id="fifthSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; fifthSet3_1.end + 1s" dur="1s"/>
+ </line>
+ </a>
+ </g>
+
+ <g id="setSix" transform="translate(5,100)" fill="none" stroke-miterlimit="10" stroke-width="3" stroke="rgb(204,0,102)">
+ <defs>
+ <g id="setSixRef">
+ <polyline stroke="#ccc" points="5,2,20,5,5,8">
+ </polyline>
+ <polyline stroke="#ccc" points="5,2,20,5,5,8" stroke-linejoin="bevel" transform="translate(30,0)">
+ </polyline>
+ </g>
+ </defs>
+ <use xlink:href="#setSixRef"/>
+ <use xlink:href="#setSixRef" x="110"/>
+ <use xlink:href="#setSixRef" x="220"/>
+
+ <polyline points="5,2,20,5,5,8">
+ <set id="sixthSet1" attributeName="stroke-linejoin" to="bevel" begin="0s; sixthSet1.end + 1s" dur="1s"/>
+ <animateTransform attributeName="transform" id="sixthSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; sixthSet1_1.end + 1s" dur="1s"/>
+ </polyline>
+
+ <g transform="translate(110, 0)">
+ <set id="sixthSet2" attributeName="stroke-linejoin" to="bevel" begin="0s; sixthSet2.end + 1s" dur="1s"/>
+ <polyline points="5,2,20,5,5,8">
+ <animateTransform attributeName="transform" id="sixthSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; sixthSet2_1.end + 1s" dur="1s"/>
+ </polyline>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <set id="sixthSet3" attributeName="stroke-linejoin" to="bevel" begin="0s; sixthSet3.end + 1s" dur="1s"/>
+ <polyline points="5,2,20,5,5,8">
+ <animateTransform attributeName="transform" id="sixthSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; sixthSet3_1.end + 1s" dur="1s"/>
+ </polyline>
+ </a>
+ </g>
+
+ <g id="setSeven" transform="translate(5,120)" stroke-miterlimit="1" fill="none" stroke-width="3" stroke="rgb(204,0,102)">
+ <defs>
+ <g id="setSevenRef">
+ <polyline points="5,0,20,5,5,10" stroke="#ccc"/>
+ <polyline points="5,0,20,5,5,10" stroke="#ccc" stroke-miterlimit="10" transform="translate(30,0)"/>
+ </g>
+ </defs>
+ <use xlink:href="#setSevenRef"/>
+ <use xlink:href="#setSevenRef" x="110"/>
+ <use xlink:href="#setSevenRef" x="220"/>
+
+ <polyline points="5,0,20,5,5,10">
+ <set id="seventhSet1" attributeName="stroke-miterlimit" to="10" begin="0s; seventhSet1.end + 1s" dur="1s"/>
+ <animateTransform attributeName="transform" id="seventhSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; seventhSet1_1.end + 1s" dur="1s"/>
+ </polyline>
+
+ <g transform="translate(110, 0)">
+ <set id="seventhSet2" attributeName="stroke-miterlimit" to="10" begin="0s; seventhSet2.end + 1s" dur="1s"/>
+ <polyline points="5,0,20,5,5,10">
+ <animateTransform attributeName="transform" id="seventhSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; seventhSet2_1.end + 1s" dur="1s"/>
+ </polyline>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <set id="seventhSet3" attributeName="stroke-miterlimit" to="10" begin="0s; seventhSet3.end + 1s" dur="1s"/>
+ <polyline points="5,0,20,5,5,10">
+ <animateTransform attributeName="transform" id="seventhSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; seventhSet3_1.end + 1s" dur="1s"/>
+ </polyline>
+ </a>
+
+ </g>
+
+ <g id="setEight" transform="translate(-5,145)" stroke-dasharray="3,4,5" stroke-width="3" stroke="rgb(204,0,102)">
+ <defs>
+ <g id="setEightRef">
+ <line x1="0" y1="0" x2="25" y2="0" stroke="#ccc"/>
+ <line x1="0" y1="0" x2="25" y2="0" stroke="#ccc" stroke-dashoffset="5.5" transform="translate(40,0)"/>
+ </g>
+ </defs>
+ <use xlink:href="#setEightRef"/>
+ <use xlink:href="#setEightRef" x="110"/>
+ <use xlink:href="#setEightRef" x="220"/>
+
+ <line x1="0" y1="0" x2="25" y2="0">
+ <set id="eighthSet1" attributeName="stroke-dashoffset" to="5.5" begin="0s; eighthSet1.end + 1s" dur="1s"/>
+ <animateTransform attributeName="transform" id="eighthSet1_1" type="translate" from="40, 0" to="40,0" begin="0s; eighthSet1_1.end + 1s" dur="1s"/>
+ </line>
+
+ <g transform="translate(110, 0)">
+ <set id="eighthSet2" attributeName="stroke-dashoffset" to="5.5" begin="0s; eighthSet2.end + 1s" dur="1s"/>
+ <line x1="0" y1="0" x2="25" y2="0">
+ <animateTransform attributeName="transform" id="eighthSet2_1" type="translate" from="40, 0" to="40,0" begin="0s; eighthSet2_1.end + 1s" dur="1s"/>
+ </line>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <set id="eighthSet3" attributeName="stroke-dashoffset" to="5.5" begin="0s; eighthSet3.end + 1s" dur="1s"/>
+ <line x1="0" y1="0" x2="25" y2="0">
+ <animateTransform attributeName="transform" id="eighthSet3_1" type="translate" from="40, 0" to="40,0" begin="0s; eighthSet3_1.end + 1s" dur="1s"/>
+ </line>
+ </a>
+ </g>
+
+ <g id="setNine" transform="translate(0,160)">
+ <defs>
+ <g id="setNineRef">
+ <rect x="10" width="8" height="8" fill="#ccc"/>
+ <rect x="10" width="8" height="8" fill="#ccc" transform="translate(30,0)"/>
+ </g>
+ </defs>
+ <use xlink:href="#setNineRef"/>
+ <use xlink:href="#setNineRef" x="110"/>
+ <use xlink:href="#setNineRef" x="220"/>
+ <rect x="10" width="8" height="8">
+ <set id="ninthSet1" attributeName="display" to="none" begin="0s; ninthSet1.end + 1s" dur="1s"/>
+ <animateTransform attributeName="transform" id="ninthSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; ninthSet1_1.end + 1s" dur="1s"/>
+ </rect>
+
+ <g transform="translate(110, 0)">
+ <set id="ninthSet2" attributeName="display" to="none" begin="0s; ninthSet2.end + 1s" dur="1s"/>
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" id="ninthSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; ninthSet2_1.end + 1s" dur="1s"/>
+ </rect>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <set id="ninthSet3" attributeName="display" to="none" begin="0s; ninthSet3.end + 1s" dur="1s"/>
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" id="ninthSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; ninthSet3_1.end + 1s" dur="1s"/>
+ </rect>
+ </a>
+ </g>
+
+ <g id="setTen" transform="translate(0,180)">
+ <defs>
+ <g id="setTenRef">
+ <rect x="10" width="8" height="8" fill="#ccc"/>
+ <rect x="10" width="8" height="8" fill="#ccc" transform="translate(30,0)"/>
+ </g>
+ </defs>
+ <use xlink:href="#setTenRef"/>
+ <use xlink:href="#setTenRef" x="110"/>
+ <use xlink:href="#setTenRef" x="220"/>
+
+ <rect x="10" width="8" height="8">
+ <set id="tenthSet1" attributeName="visibility" to="hidden" begin="0s; tenthSet1.end + 1s" dur="1s"/>
+ <animateTransform attributeName="transform" id="tenthSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; tenthSet1_1.end + 1s" dur="1s"/>
+ </rect>
+
+ <g transform="translate(110, 0)">
+ <set id="tenthSet2" attributeName="visibility" to="hidden" begin="0s; tenthSet2.end + 1s" dur="1s"/>
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" id="tenthSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; tenthSet2_1.end + 1s" dur="1s"/>
+ </rect>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)">
+ <set id="tenthSet3" attributeName="visibility" to="hidden" begin="0s; tenthSet3.end + 1s" dur="1s"/>
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" id="tenthSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; tenthSet3_1.end + 1s" dur="1s"/>
+ </rect>
+ </a>
+ </g>
+
+ <g id="setEleven" color="rgb(204,0,102)" transform="translate(0,200)">
+ <defs>
+ <g id="setElevenRef">
+ <rect x="10" width="8" height="8" fill="#ccc"/>
+ <rect x="10" width="8" height="8" fill="#ccc" transform="translate(30,0)"/>
+ </g>
+ </defs>
+ <use xlink:href="#setElevenRef"/>
+ <use xlink:href="#setElevenRef" x="110"/>
+ <use xlink:href="#setTenRef" x="220"/>
+
+ <rect x="10" width="8" height="8" fill="currentColor">
+ <set id="eleventhSet1" attributeName="color" to="rgb(255, 165, 0)" begin="0s; eleventhSet1.end + 1s" dur="1s"/>
+ <animateTransform attributeName="transform" id="eleventhSet1_1" type="translate" from="30, 0" to="30,0" begin="0s; eleventhSet1_1.end + 1s" dur="1s"/>
+ </rect>
+
+ <g transform="translate(110, 0)" fill="currentColor">
+ <set id="eleventhSet2" attributeName="color" to="rgb(255, 165, 0)" begin="0s; eleventhSet2.end + 1s" dur="1s"/>
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" id="eleventhSet2_1" type="translate" from="30, 0" to="30,0" begin="0s; eleventhSet2_1.end + 1s" dur="1s"/>
+ </rect>
+ </g>
+
+ <a xlink:href="" transform="translate(220, 0)" fill="currentColor">
+ <!-- This first 'set' is because 'color' on the 'a' might well be a different color from that
+ inherited from its parent, due to UA style sheet ":visited { color: something }" rules. -->
+ <set attributeName="color" to="rgb(204,0,102)"/>
+ <set id="eleventhSet3" attributeName="color" to="rgb(255, 165, 0)" begin="0s; eleventhSet3.end + 1s" dur="1s"/>
+ <rect x="10" width="8" height="8">
+ <animateTransform attributeName="transform" id="eleventhSet3_1" type="translate" from="30, 0" to="30,0" begin="0s; eleventhSet3_1.end + 1s" dur="1s"/>
+ </rect>
+ </a>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-80-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-80-t-isvalid.html
new file mode 100644
index 0000000000..f72ab64f5a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-80-t-isvalid.html
@@ -0,0 +1,252 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-80-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-80-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-80-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="25" font-size="16">&lt;animateTransform&gt;</text>
+ <defs>
+ <g id="ref" stroke="rgb(192,192,192)" fill="none">
+ <circle stroke-width="2" r="40"/>
+ <line x1="-45" x2="45"/>
+ <line y1="-45" y2="45"/>
+ </g>
+ </defs>
+ <g transform="translate(0,0)" font-size="14">
+ <g transform="translate(60,90)">
+ <use xlink:href="#ref"/>
+
+ <line x1="40" x2="40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="rotate(0)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2s;4s;6s" dur="0.2s"/>
+ </line>
+
+ <line x1="40" x2="40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="rotate(90)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2.5s;5.5s" dur="0.2s"/>
+ </line>
+
+ <line x1="40" x2="40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="rotate(180)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3s;5s" dur="0.2s"/>
+ </line>
+
+ <line x1="40" x2="40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="rotate(270)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3.5s;4.5s" dur="0.2s"/>
+ </line>
+
+ <line x2="40" stroke-width="10" stroke-linecap="round" stroke="rgb(200,80,80)">
+ <animateTransform attributeName="transform" type="rotate" values="0;360;0" begin="2s" dur="4s"/>
+ </line>
+
+ <text y="60" text-anchor="middle">type=rotate</text>
+ </g>
+
+ <g transform="translate(180,110)">
+ <line y2="-40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="skewX(0)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2s;4s;6s" dur="0.2s"/>
+ </line>
+
+ <line y2="-40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="skewX(45)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3.333s" dur="0.2s"/>
+ </line>
+
+ <line y2="-40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="skewX(-45)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="4.666s" dur="0.2s"/>
+ </line>
+
+ <line y2="-40" stroke-width="10" stroke-linecap="round" stroke="rgb(200,80,80)">
+ <animateTransform attributeName="transform" type="skewX" values="0;45;-45;0" begin="2s" dur="4s"/>
+ </line>
+ <text y="40" text-anchor="middle">type=skewX</text>
+ </g>
+
+ <g transform="translate(300,90)">
+ <g transform="translate(15,0)">
+ <line x2="-40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="skewY(0)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2s;4s;6s" dur="0.2s"/>
+ </line>
+
+ <line x2="-40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="skewY(30)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3.333s" dur="0.2s"/>
+ </line>
+
+ <line x2="-40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="skewY(-30)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="4.666s" dur="0.2s"/>
+ </line>
+
+ <line x2="-40" stroke-width="10" stroke-linecap="round" stroke="rgb(200,80,80)">
+ <animateTransform attributeName="transform" type="skewY" values="0;30;-30;0" begin="2s" dur="4s"/>
+ </line>
+ </g>
+
+ <text y="60" text-anchor="middle">type=skewY</text>
+ </g>
+
+ <g transform="translate(420,90)">
+ <circle stroke="rgb(192,192,192)" stroke-width="4" r="40" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2s" dur="0.2s"/>
+ </circle>
+
+ <circle stroke="rgb(192,192,192)" stroke-width="4" r="30" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3s" dur="0.2s"/>
+ </circle>
+
+ <circle stroke="rgb(192,192,192)" stroke-width="4" r="20" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="4s" dur="0.2s"/>
+ </circle>
+
+ <circle stroke="rgb(192,192,192)" stroke-width="4" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="5s" dur="0.2s"/>
+ </circle>
+
+ <circle fill="rgb(200,80,80)" r="10" transform="scale(4)">
+ <animateTransform attributeName="transform" type="scale" values="4,4;3,3;2,2;1,1" begin="2s" dur="3s" fill="freeze"/>
+ </circle>
+ <text y="60" text-anchor="middle">type=scale</text>
+ <text y="75" text-anchor="middle">(sx and sy)</text>
+ </g>
+
+
+ <g transform="translate(20,180)">
+ <use xlink:href="#ref" x="40" y="40"/>
+
+ <line x1="80" y1="40" x2="80" y2="40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="rotate(0,40,40)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2s;4s;6s" dur="0.2s"/>
+ </line>
+
+ <line x1="80" y1="40" x2="80" y2="40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="rotate(90,40,40)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2.5s;5.5s" dur="0.2s"/>
+ </line>
+
+ <line x1="80" y1="40" x2="80" y2="40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="rotate(180,40,40)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3s;5s" dur="0.2s"/>
+ </line>
+
+ <line x1="80" y1="40" x2="80" y2="40" stroke-width="15" stroke-linecap="round" stroke="rgb(192,192,192)" transform="rotate(270,40,40)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3.5s;4.5s" dur="0.2s"/>
+ </line>
+
+ <line x1="40" y1="40" x2="80" y2="40" stroke-width="10" stroke-linecap="round" stroke="rgb(200,80,80)">
+ <animateTransform attributeName="transform" type="rotate" values="0 40 40;360 40 40;0 40 40" begin="2s" dur="4s"/>
+ </line>
+
+ <text y="100" x="40" text-anchor="middle">type=rotate</text>
+ <text y="115" x="40" text-anchor="middle">(with cx/cy)</text>
+ </g>
+
+ <g transform="translate(180,220)">
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="-40" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2s" dur="0.2s"/>
+ </circle>
+
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="-20" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3s" dur="0.2s"/>
+ </circle>
+
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="0" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="4s" dur="0.2s"/>
+ </circle>
+
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="20" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="5s" dur="0.2s"/>
+ </circle>
+
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="40" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="6s" dur="0.2s"/>
+ </circle>
+
+ <circle fill="rgb(200,80,80)" r="6" transform="translate(-40,0)">
+ <animateTransform attributeName="transform" type="translate" values="-40;-20;0;20;40" begin="2s" dur="4s" fill="freeze"/>
+ </circle>
+ <text y="60" text-anchor="middle">type=translate</text>
+ <text y="75" text-anchor="middle">(tx only)</text>
+ </g>
+
+ <g transform="translate(300,220)">
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="-40" cy="30" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2s" dur="0.2s"/>
+ </circle>
+
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="-20" cy="15" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3s" dur="0.2s"/>
+ </circle>
+
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="0" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="4s" dur="0.2s"/>
+ </circle>
+
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="20" cy="-15" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="5s" dur="0.2s"/>
+ </circle>
+
+ <circle stroke="rgb(192,192,192)" stroke-width="4" cx="40" cy="-30" r="10" fill="none">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="6s" dur="0.2s"/>
+ </circle>
+
+ <circle fill="rgb(200,80,80)" r="6" transform="translate(-40,30)">
+ <animateTransform attributeName="transform" type="translate" values="-40,30;-20,15;0,0;20,-15;40,-30" begin="2s" dur="4s" fill="freeze"/>
+ </circle>
+ <text y="60" text-anchor="middle">type=translate</text>
+ <text y="75" text-anchor="middle">(tx and ty)</text>
+ </g>
+
+ <g transform="translate(420,220)">
+ <circle stroke="rgb(192,192,192)" stroke-width="1" r="10" fill="none" transform="scale(4,4)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="2s" dur="0.2s"/>
+ </circle>
+
+ <circle stroke="rgb(192,192,192)" stroke-width="1.3333" r="10" fill="none" transform="scale(3,3)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="3s" dur="0.2s"/>
+ </circle>
+
+ <circle stroke="rgb(192,192,192)" stroke-width="2" r="10" fill="none" transform="scale(2,2)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="4s" dur="0.2s"/>
+ </circle>
+
+ <circle stroke="rgb(192,192,192)" stroke-width="4" r="10" fill="none" transform="scale(1,1)">
+ <set attributeName="stroke" to="rgb(250,200,30)" begin="5s" dur="0.2s"/>
+ </circle>
+
+ <circle fill="rgb(200,80,80)" r="10" transform="scale(4,4)">
+ <animateTransform attributeName="transform" type="scale" values="4;3;2;1" begin="2s" dur="3s" fill="freeze"/>
+ </circle>
+ <text y="60" text-anchor="middle">type=scale</text>
+ <text y="75" text-anchor="middle">(sx only)</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-81-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-81-t-isvalid.html
new file mode 100644
index 0000000000..0198df2524
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-81-t-isvalid.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-81-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-81-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-81-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="25" font-size="16">&lt;animateTransform&gt;</text>
+ <defs>
+ <g id="ref" stroke="rgb(192,192,192)" fill="none">
+ <circle stroke-width="2" r="40"/>
+ <line x1="-45" x2="45"/>
+ <line y1="-45" y2="45"/>
+ </g>
+ </defs>
+ <g transform="translate(0,0)" font-size="14">
+ <g transform="translate(60,90)">
+ <rect x="-15" y="-15" width="30" height="30" transform="skewX(30)" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0" to="90" dur="5s" additive="replace" fill="freeze"/>
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" from="1,1" to="2,2" dur="5s" additive="replace" fill="freeze"/>
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="scale(2,2)" stroke="rgb(255,180,0)" stroke-width="4" fill="none"/>
+ <text y="60" text-anchor="middle">additive=replace</text>
+ </g>
+
+ <g transform="translate(180,90)">
+ <rect x="-15" y="-15" width="30" height="30" transform="skewX(30)" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="0" to="90" dur="5s" additive="sum" fill="freeze"/>
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" from="1,1" to="2,2" dur="5s" additive="sum" fill="freeze"/>
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="skewX(30) rotate(90) scale(2,2)" stroke="rgb(255,180,0)" stroke-width="4" fill="none"/>
+ <text y="60" text-anchor="middle">additive=sum</text>
+ </g>
+
+ <g transform="translate(300,90)">
+ <rect x="-15" y="-15" width="30" height="30" transform="skewX(30)" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" from="1,1" to="2,2" dur="2.5s" repeatCount="2" accumulate="none" fill="freeze" additive="replace"/>
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="scale(2,2)" stroke="rgb(255,180,0)" stroke-width="4" fill="none"/>
+ <text y="60" text-anchor="middle">accumulate=none</text>
+ <text y="75" text-anchor="middle">additive=replace</text>
+ </g>
+
+ <g transform="translate(420,90)">
+ <rect x="-7.5" y="-7.5" width="15" height="15" transform="skewX(30)" stroke="gray" stroke-width="2" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" from="0,0" to="2,2" dur="2.5s" repeatCount="2" accumulate="sum" fill="freeze" additive="replace"/>
+ </rect>
+ <rect x="-7.5" y="-7.5" width="15" height="15" transform="scale(4,4)" stroke="rgb(255,180,0)" stroke-width="2" fill="none"/>
+ <text y="60" text-anchor="middle">accumulate=sum</text>
+ <text y="75" text-anchor="middle">additive=replace</text>
+ </g>
+
+ <g transform="translate(300,220)">
+ <rect x="-15" y="-15" width="30" height="30" transform="skewX(30)" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" from="1,1" to="2,2" dur="2.5s" repeatCount="2" accumulate="none" fill="freeze" additive="sum"/>
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="skewX(30) scale(2,2)" stroke="rgb(255,180,0)" stroke-width="4" fill="none"/>
+ <text y="60" text-anchor="middle">accumulate=none</text>
+ <text y="75" text-anchor="middle">additive=sum</text>
+ </g>
+
+ <g transform="translate(420,220)">
+ <rect x="-7.5" y="-7.5" width="15" height="15" transform="skewX(30)" stroke="gray" stroke-width="2" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" from="0,0" to="2,2" dur="2.5s" repeatCount="2" accumulate="sum" fill="freeze" additive="sum"/>
+ </rect>
+ <rect x="-7.5" y="-7.5" width="15" height="15" transform="skewX(30) scale(4,4)" stroke="rgb(255,180,0)" stroke-width="2" fill="none"/>
+ <text y="60" text-anchor="middle">accumulate=sum</text>
+ <text y="75" text-anchor="middle">additive=sum</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-82-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-82-t-isvalid.html
new file mode 100644
index 0000000000..bdbff9d35e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-82-t-isvalid.html
@@ -0,0 +1,213 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-82-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-82-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-82-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="25" font-size="16">&lt;animateTransform&gt;</text>
+ <defs>
+ <g id="ref" stroke="rgb(192,192,192)" fill="none">
+ <circle stroke-width="2" r="40"/>
+ <line x1="-45" x2="45"/>
+ <line y1="-45" y2="45"/>
+ </g>
+ </defs>
+ <g transform="translate(0,0)" font-size="14">
+ <g transform="translate(60,90)">
+ <rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="45" to="90" dur="3s" additive="replace" fill="freeze"/>
+ </rect>
+
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(45)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(67.5)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(90)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="3s" dur="0.2s"/>
+ </rect>
+
+ <text y="60" text-anchor="middle">same rotation</text>
+ <text y="75" text-anchor="middle">center</text>
+ </g>
+
+ <g transform="translate(180,90)">
+ <rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="45,0,0" to="90,-15,-15" dur="3s" additive="replace" fill="freeze"/>
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(45,0,0)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(67.5,-7.5,-7.5)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(90,-15,-15)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="3s" dur="0.2s"/>
+ </rect>
+
+ <text y="60" text-anchor="middle">different rotation</text>
+ <text y="75" text-anchor="middle">centers</text>
+ </g>
+
+ <g transform="translate(300,90)">
+ <rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="translate" values="-40,40;-20,20;40,-40" dur="3s" calcMode="paced" additive="replace" fill="freeze"/>
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="translate(-40,40)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-15" y="-15" width="30" height="30" transform="translate(0,0)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-15" y="-15" width="30" height="30" transform="translate(40,-40)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="3s" dur="0.2s"/>
+ </rect>
+
+ <text y="75" text-anchor="middle">paced translation</text>
+ </g>
+
+ <g transform="translate(415,90)">
+ <rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="translate" values="-40,40;-20,-20;40,-40" dur="3s" calcMode="linear" additive="replace" fill="freeze"/>
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="translate(-40,40)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-15" y="-15" width="30" height="30" transform="translate(-20,-20)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-15" y="-15" width="30" height="30" transform="translate(40,-40)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="3s" dur="0.2s"/>
+ </rect>
+
+ <text y="75" text-anchor="middle">linear translation</text>
+
+ </g>
+
+ <g transform="translate(60,220)">
+ <rect x="-15" y="-15" width="30" height="30" stroke="none" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" values="1,2;3,2;1,1" dur="3s" calcMode="paced" fill="freeze"/>
+ </rect>
+
+ <rect x="-15" y="-30" width="30" height="60" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-45" y="-30" width="90" height="60" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-15" y="-15" width="30" height="30" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="3s" dur="0.2s"/>
+ </rect>
+
+ <text y="60" text-anchor="middle">paced scale</text>
+ </g>
+
+ <g transform="translate(180,220)">
+ <rect x="-15" y="-15" width="30" height="30" stroke="none" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="scale" values="1,2;3,2;1,1" dur="3s" calcMode="linear" fill="freeze"/>
+ </rect>
+
+ <rect x="-15" y="-30" width="30" height="60" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-45" y="-30" width="90" height="60" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-15" y="-15" width="30" height="30" transform="scale(1,1)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="3s" dur="0.2s"/>
+ </rect>
+
+ <text y="60" text-anchor="middle">linear scale</text>
+ </g>
+
+ <g transform="translate(275,220)">
+ <rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="rotate" values="0,0,0;45,-15,-20;180,30,50" dur="3s" calcMode="paced" additive="replace" fill="freeze"/>
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(0,0,0)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(90,0,5)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(180,30,50)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="3s" dur="0.2s"/>
+ </rect>
+
+ <text y="75" text-anchor="middle">paced rotation</text>
+ </g>
+
+ <g transform="translate(395,220)">
+ <rect x="-15" y="-15" width="30" height="30" stroke="gray" stroke-width="4" fill="rgb(230,230,230)">
+ <animateTransform attributeName="transform" attributeType="XML" type="rotate" values="0,0,0;45,-15,-20;180,30,50" dur="3s" calcMode="linear" additive="replace" fill="freeze"/>
+ </rect>
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(0,0,0)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="0s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(45,-15,-20)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1.5s" dur="0.2s"/>
+ </rect>
+
+ <rect x="-15" y="-15" width="30" height="30" transform="rotate(180,30,50)" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="3s" dur="0.2s"/>
+ </rect>
+
+ <text y="75" text-anchor="middle">linear rotation</text>
+ </g>
+
+
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-83-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-83-t-isvalid.html
new file mode 100644
index 0000000000..ed0bf103ca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-83-t-isvalid.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-83-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-83-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-83-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="25" font-size="16">&lt;animate&gt; on &lt;path&gt;'s d attribute</text>
+
+ <defs>
+ <g id="ref" stroke="rgb(192,192,192)" fill="none">
+ <circle stroke-width="2" r="40"/>
+ <line x1="-45" x2="45"/>
+ <line y1="-45" y2="45"/>
+ </g>
+ </defs>
+
+ <g transform="translate(0,0)" font-size="12">
+ <g id="test_1" transform="translate(120,90)">
+ <path d="M -15 0 C -15 0 0 -15 0 -15 C 0 -15 15 0 15 0 C 15 0 0 15 0 15 C 0 15 -15 0 -15 0 Z" stroke="none" stroke-width="4" fill="rgb(230,230,230)">
+ <animate attributeName="d" from="M -15 0 C -15 0 0 -15 0 -15 C 0 -15 15 0 15 0 C 15 0 0 15 0 15 C 0 15 -15 0 -15 0 Z" to="M 0 0 C -50 -15 -15 -50 0 0 C 15 -50 50 -15 0 0 C 50 15 15 50 0 0 C -15 50 -50 15 0 0 Z" dur="3s" fill="freeze" begin="1s"/>
+ </path>
+
+ <path d="M -15 0 C -15 0 0 -15 0 -15 C 0 -15 15 0 15 0 C 15 0 0 15 0 15 C 0 15 -15 0 -15 0 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1s" dur="0.2s"/>
+ </path>
+
+ <path d="M 0 0 C -50 -15 -15 -50 0 0 C 15 -50 50 -15 0 0 C 50 15 15 50 0 0 C -15 50 -50 15 0 0 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="4s" dur="0.2s"/>
+ </path>
+
+ <text y="60" text-anchor="middle">#1: from-to animation</text>
+ </g>
+
+ <g id="test_2" transform="translate(240,90)">
+ <path d="M -15 0 C -15 0 0 -15 0 -15 C 0 -15 15 0 15 0 C 15 0 0 15 0 15 C 0 15 -15 0 -15 0 Z" stroke="none" stroke-width="4" fill="rgb(230,230,230)">
+ <animate attributeName="d" to="M 0 0 C -50 -15 -15 -50 0 0 C 15 -50 50 -15 0 0 C 50 15 15 50 0 0 C -15 50 -50 15 0 0 Z" dur="3s" fill="freeze" begin="1s"/>
+ </path>
+
+ <path d="M -15 0 C -15 0 0 -15 0 -15 C 0 -15 15 0 15 0 C 15 0 0 15 0 15 C 0 15 -15 0 -15 0 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1s" dur="0.2s"/>
+ </path>
+
+ <path d="M 0 0 C -50 -15 -15 -50 0 0 C 15 -50 50 -15 0 0 C 50 15 15 50 0 0 C -15 50 -50 15 0 0 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="4s" dur="0.2s"/>
+ </path>
+
+ <text y="60" text-anchor="middle">#2: to animation</text>
+ </g>
+
+ <g id="test_3" transform="translate(360,90)">
+ <path d="M -15 0 C -15 0 0 -15 0 -15 C 0 -15 15 0 15 0 C 15 0 0 15 0 15 C 0 15 -15 0 -15 0 Z" stroke="none" stroke-width="4" fill="rgb(230,230,230)">
+ <animate attributeName="d" values="M -15 0 C -15 0 0 -15 0 -15 C 0 -15 15 0 15 0 C 15 0 0 15 0 15 C 0 15 -15 0 -15 0 Z; M 0 0 C -50 -15 -15 -50 0 0 C 15 -50 50 -15 0 0 C 50 15 15 50 0 0 C -15 50 -50 15 0 0 Z; M -45 0 C -15 0 0 -15 0 -45 C 0 -15 15 0 45 0 C 15 0 0 15 0 45 C 0 15 -15 0 -45 0 Z" dur="3s" fill="freeze" begin="1s"/>
+ </path>
+
+ <path d="M -15 0 C -15 0 0 -15 0 -15 C 0 -15 15 0 15 0 C 15 0 0 15 0 15 C 0 15 -15 0 -15 0 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1s" dur="0.2s"/>
+ </path>
+
+ <path d="M 0 0 C -50 -15 -15 -50 0 0 C 15 -50 50 -15 0 0 C 50 15 15 50 0 0 C -15 50 -50 15 0 0 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="2.5s" dur="0.2s"/>
+ </path>
+
+ <path d="M -45 0 C -15 0 0 -15 0 -45 C 0 -15 15 0 45 0 C 15 0 0 15 0 45 C 0 15 -15 0 -45 0 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="4s" dur="0.2s"/>
+ </path>
+
+ <text y="60" text-anchor="middle">#3: values animation</text>
+ </g>
+
+ <g id="test_4" transform="translate(120,200)">
+ <path d="M -30 -30 L 30 0 V 30 H 0 Z" stroke="none" stroke-width="4" fill="rgb(230,230,230)">
+ <animate attributeName="d" from="M -30 -30 L 30 0 V 30 H 0 Z" to="M 30 30 l -60 -30 v -30 h 30 Z" dur="3s" fill="freeze" begin="1s"/>
+ </path>
+
+ <path d="M -30 -30 L 30 0 V 30 H 0 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1s" dur="0.2s"/>
+ </path>
+
+ <path d="M 30 30 l -60 -30 v -30 h 30 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="4s" dur="0.2s"/>
+ </path>
+
+ <text y="60" text-anchor="middle">#4: from-to animation</text>
+ <text y="75" text-anchor="middle">compatible H/h, V/v,</text>
+ <text y="90" text-anchor="middle">L/l segments</text>
+ </g>
+
+ <g id="test_5" transform="translate(240,200)">
+ <path d="M -20 -20 C 20 -20 20 -20 20 20 S 20 40 -20 20 Z" stroke="none" stroke-width="4" fill="rgb(230,230,230)">
+ <animate attributeName="d" from="M -20 -20 C 20 -20 20 -20 20 20 S 20 40 -20 20 Z" to="M -20 -20 c 0 40 0 40 40 40 s 40 0 0 -40 z" dur="3s" fill="freeze" begin="1s"/>
+ </path>
+
+ <path d="M -20 -20 C 20 -20 20 -20 20 20 S 20 40 -20 20 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1s" dur="0.2s"/>
+ </path>
+
+ <path d="M -20 -20 c 0 40 0 40 40 40 s 40 0 0 -40 z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="4s" dur="0.2s"/>
+ </path>
+
+ <text y="60" text-anchor="middle">#5: from-to animation</text>
+ <text y="75" text-anchor="middle">compatible C/c</text>
+ <text y="90" text-anchor="middle">s/S segments</text>
+ </g>
+
+ <g id="test_6" transform="translate(360,200)">
+ <path d="M -30 -30 Q 30 -30 30 0 T -30 30 Z" stroke="none" stroke-width="4" fill="rgb(230,230,230)">
+ <animate attributeName="d" from="M -30 -30 Q 30 -30 30 0 T -30 30 Z" to="M -30 -30 q 30 0 30 30 t -30 30 z" dur="3s" fill="freeze" begin="1s"/>
+ </path>
+
+ <path d="M -30 -30 Q 30 -30 30 0 T -30 30 Z" stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="1s" dur="0.2s"/>
+ </path>
+
+ <path d="M -30 -30 q 30 0 30 30 t -30 30 " stroke="rgb(255,180,0)" stroke-width="1" fill="none">
+ <set attributeName="stroke-width" to="4" begin="4s" dur="0.2s"/>
+ </path>
+
+ <text y="60" text-anchor="middle">#6: from-to animation</text>
+ <text y="75" text-anchor="middle">compatible Q/q, T/t</text>
+ <text y="90" text-anchor="middle">segments</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-84-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-84-t-isvalid.html
new file mode 100644
index 0000000000..f451aa14fb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-84-t-isvalid.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-84-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-84-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-84-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(1.1) translate (50,20)">
+ <rect color="green" fill="#000000" height="100" width="100">
+ <animateColor attributeName="fill" from="#f00" to="currentColor" begin="2s" dur="5s" fill="freeze"/>
+ </rect>
+ <rect color="red" fill="#000000" height="100" width="100" y="150">
+ <animateColor attributeName="fill" from="currentColor" to="green" begin="2s" dur="5s" fill="freeze"/>
+ </rect>
+ <rect color="green" fill="#000000" x="120" height="100" width="100" y="75">
+ <animateColor attributeName="fill" from="#f00" to="green" begin="2s" dur="5s" fill="freeze"/>
+ </rect>
+ <g fill="#070">
+ <rect color="green" fill="#000000" x="240" height="100" width="100">
+ <animateColor attributeName="fill" from="#f00" to="inherit" begin="2s" dur="5s" fill="freeze"/>
+ </rect>
+ </g>
+ <g fill="#F00">
+ <rect color="green" fill="#000000" x="240" height="100" width="100" y="150">
+ <animateColor attributeName="fill" from="inherit" to="green" begin="2s" dur="5s" fill="freeze"/>
+ </rect>
+ </g>
+ <g text-anchor="middle" font-size="14">
+ <text x="50" y="130">currentColor</text>
+ <text x="170" y="55">green</text>
+ <text x="290" y="130">inherit</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-85-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-85-t-isvalid.html
new file mode 100644
index 0000000000..ccb5a36088
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-85-t-isvalid.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-85-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-85-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-85-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g id="subtest_1">
+ <rect fill="#f00" x="30" y="50" height="100" width="90">
+ <!-- basic test from two numeric hex values -->
+ <animateColor attributeName="fill" from="#000000" to="#008000" begin="0s" dur="5s" fill="freeze"/>
+ </rect>
+ <rect fill="#f00" x="140" y="50" height="100" width="90">
+ <!-- same, check color keywords accepted in animations -->
+ <animateColor attributeName="fill" from="#000000" to="green" begin="0s" dur="5s" fill="freeze"/>
+ </rect>
+ <rect color="green" fill="#f00" x="250" y="50" height="100" width="90">
+ <!-- same, static value of currentColor in 'to' -->
+ <animateColor attributeName="fill" from="#000000" to="currentColor" begin="0s" dur="5s" fill="freeze"/>
+ </rect>
+ <rect color="black" fill="#f00" x="360" y="50" height="100" width="90">
+ <!-- same, static value of currentColor in 'from' -->
+ <animateColor attributeName="fill" to="#008000" from="currentColor" begin="0s" dur="5s" fill="freeze"/>
+ </rect>
+ </g>
+ <g id="subtest_2">
+ <rect color="black" fill="blue" x="100" y="180" height="60" width="280">
+ <animateColor attributeName="color" to="cyan" from="blue" begin="5s" dur="5s" fill="freeze"/>
+ <animateColor attributeName="fill" from="#008000" to="currentColor" begin="5s" dur="5s" fill="freeze"/>
+ </rect>
+ <rect color="black" fill="blue" x="100" y="245" height="60" width="280">
+ <animateColor attributeName="fill" from="#008000" to="currentColor" begin="5s" dur="5s" fill="freeze"/>
+ <animateColor attributeName="color" to="cyan" from="blue" begin="5s" dur="5s" fill="freeze"/>
+ </rect>
+ <!--
+ color fill
+ 4s #000000 #0000ff
+ 5s #0000ff #008000
+ 7.5s #0080ff #008080
+ 10s #00ffff #00ffff
+ -->
+ <circle r="30" cx="100" cy="240" fill="#0000ff"/>
+ <circle r="30" cx="193" cy="240" fill="#008000"/>
+ <circle r="30" cx="287" cy="240" fill="#008080"/>
+ <circle r="30" cx="380" cy="240" fill="#00ffff"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-86-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-86-t-isvalid.html
new file mode 100644
index 0000000000..605adfd890
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-86-t-isvalid.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-86-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-86-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-86-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="30" font-size="20">fill="freeze" with discrete calcMode</text>
+
+ <g transform="translate(100, 100)">
+ <g transform="translate(80,25)" text-anchor="end" font-size="14">
+ <text>discrete</text>
+ </g>
+
+ <g id="timeMarkersText" transform="translate(150, 5)" text-anchor="middle" font-size="14">
+ <text>&gt; 2s</text>
+ <text x="80">0s-2s</text>
+ </g>
+
+ <g transform="translate(150,20)" stroke="black">
+ <defs>
+ <rect id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1"/>
+ </defs>
+
+ <g id="setOne">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <animate id="firstSet" calcMode="discrete" attributeName="x" values="74;-6" dur="4s" end="2s" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-87-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-87-t-isvalid.html
new file mode 100644
index 0000000000..6be01ce816
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-87-t-isvalid.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-87-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-87-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-87-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='40'>Test zero value of a scale transform animation</text>
+
+ <g transform='translate(150,150)'>
+ <circle r='80' fill='#ccc'/>
+ <circle r='80' fill='orange'>
+ <animate attributeName='r' values='0; 80' begin='1s' dur='3s' fill='freeze'/>
+ </circle>
+ <text y='100' text-anchor='middle' font-size='12'>Reference</text>
+ </g>
+ <g transform='translate(350,150)'>
+ <circle r='80' fill='#ccc'/>
+ <circle r='80' fill='blue'>
+ <animateTransform attributeName='transform' type='scale' begin='1s' dur='3s' by='1' fill='freeze'/>
+ </circle>
+ <text y='100' text-anchor='middle' font-size='12'>&lt;animateTransform type='scale' by='1'/&gt;</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-88-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-88-t-isvalid.html
new file mode 100644
index 0000000000..83965435e7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-88-t-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-88-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-88-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-88-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='40'>Test values attribute list syntax</text>
+
+ <rect x='10' y='50' width='50' height='0'>
+ <animate attributeName='height' values=' 0 ; 50 ' dur='4s' fill='freeze'/>
+ </rect>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-89-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-89-t-isvalid.html
new file mode 100644
index 0000000000..07885c3a8c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-89-t-isvalid.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-89-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-89-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-89-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="SVGFreeSansASCII" font-size="20">
+
+<!-- guide lines and labelling -->
+ <g transform="translate(10,50)">
+ <text x="0" y="203">0 sec.</text>
+ <text x="0" y="170">3 sec. </text>
+ <text x="0" y="114">6 sec. </text>
+ <text x="3" y="3">9+ sec. </text>
+ <g stroke="#AAA" stroke-width="4">
+ <line x1="70" y1="200" x2="450" y2="200"/>
+ <line x1="70" y1="167" x2="450" y2="167"/>
+ <line x1="70" y1="111" x2="450" y2="111"/>
+ <line x1="70" y1="0" x2="450" y2="0"/>
+ </g>
+ </g>
+
+<!-- first set of three subtests, keySplines on animation element -->
+ <g transform="translate(60,50)">
+
+ <rect x="140" y="-10" width="50" height="210" fill="rgb(34, 139, 34)" stroke="#555" stroke-width="4">
+ <animate attributeName="height" calcMode="spline" keySplines="0,0,1,1;0,0,1,1;.75,0,0,.75" values="210;177;121;10" begin="0s" dur="9s" fill="freeze"/>
+<!-- commas -->
+ </rect>
+ <rect x="90" y="-10" width="50" height="210" fill="rgb(50, 205, 50)" stroke="#555" stroke-width="4">
+ <animate attributeName="height" calcMode="spline" keySplines="0 0 1 1;0 0 1 1;.75 0 0 .75" values="210;177;121;10" begin="0s" dur="9s" fill="freeze"/>
+<!-- spaces -->
+ </rect>
+ <rect x="40" y="-10" width="50" height="210" fill="rgb(154, 205, 50)" stroke="#555" stroke-width="4">
+ <animate attributeName="height" calcMode="spline" keySplines="0 , 0 , 1 , 1;0 , 0 , 1 , 1;.75 , 0 , 0 , .75" values="210;177;121;10" begin="0s" dur="9s" fill="freeze"/>
+<!-- commas and spaces -->
+ </rect>
+ </g>
+
+<!-- second set of three subtests, keySplines on animateMotion element -->
+ <g transform="translate(250,50)">
+
+ <rect x="140" y="-10" width="60" height="10" fill="rgb(235, 110, 0)" stroke="#555" stroke-width="4">
+ <animateMotion calcMode="spline" keySplines="0,0,1,1;0,0,1,1;.75,0,0,.75" values="0,200; 0,167; 0,111; 0,0" begin="0s" dur="9s" fill="freeze"/>
+<!-- commas -->
+ </rect>
+ <rect x="90" y="-10" width="60" height="10" fill="rgb(255, 180, 30)" stroke="#555" stroke-width="4">
+ <animateMotion calcMode="spline" keySplines="0 0 1 1;0 0 1 1;.75 0 0 .75" values="0,200; 0 167; 0 111; 0 0" begin="0s" dur="9s" fill="freeze"/>
+<!-- spaces -->
+ </rect>
+ <rect x="40" y="-10" width="60" height="10" fill="rgb(255, 220, 60)" stroke="#555" stroke-width="4">
+ <animateMotion calcMode="spline" keySplines="0 , 0 , 1 , 1;0 , 0 , 1 , 1;.75 , 0 , 0 , .75" values="0 , 200; 0 , 167; 0 , 111; 0 , 0" begin="0s" dur="9s" fill="freeze"/>
+<!-- commas and spaces -->
+ </rect>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-90-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-90-b-isvalid.html
new file mode 100644
index 0000000000..40e7face85
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-90-b-isvalid.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-90-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-90-b-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2010 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-90-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <style>
+ .start {visibility: hidden }
+ .midway {visibility: visible; fill: rgb(0,0,255); }
+ #test-body-content .final {fill: rgb(128,0,0); }
+ .hideme {display: none;}
+ </style>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Guide objects to show where the animation elements belong at which time -->
+ <g font-family="Verdana" font-size="12">
+ <text x="15" y="55">Color at start</text>
+ <rect x="15" y="60" width="30" height="30"/>
+ <circle cx="30" cy="75" r="10" fill="#000"/>
+ <text x="15" y="145">Color at 3s</text>
+ <rect x="15" y="150" width="30" height="30"/>
+ <circle cx="30" cy="165" r="10" fill="rgb(0,0,255)"/>
+ <text x="15" y="235">Color at 5s</text>
+ <rect x="15" y="240" width="30" height="30"/>
+ <circle cx="30" cy="255" r="10" fill="rgb(128,0,0)"/>
+ </g>
+
+ <g>
+ <rect x="150" y="50" width="240" height="240" stroke="black" fill="black"/>
+ <circle cx="270" cy="170" r="110" class="start">
+ <set attributeName="class" attributeType="XML" to="midway" begin="2s" dur="2s" fill="freeze"/>
+ <animate attributeName="class" attributeType="XML" from="midway" to="final midway" begin="3s" dur="4s" fill="freeze"/>
+ </circle>
+ </g>
+ <text x="270" y="170" text-anchor="middle" font-size="40" fill="#F69" class="hideme">CSS not supported</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-91-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-91-t-isvalid.html
new file mode 100644
index 0000000000..8815c7b40f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-91-t-isvalid.html
@@ -0,0 +1,186 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-91-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-91-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-91-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x="10" y="40">Testing &lt;animate to=""&gt; with non-interpolable attributes</text>
+
+ <g font-size="16">
+
+ <text x="207.5" y="75" text-anchor="middle">0s-2s</text>
+ <text x="307.5" y="75" text-anchor="middle">> 2s</text>
+
+ <!-- Reference: using <set> -->
+ <g transform="translate(0,85)">
+ <text x="30" y="12">(reference)</text>
+ <rect x="200" width="12" height="12" stroke="black" fill="rgb(204,0,102)">
+ <set attributeName="fill" to="#ccc" begin="2s" dur="2s" fill="freeze"/>
+ </rect>
+ <rect x="300" width="12" height="12" stroke="black" fill="#ccc">
+ <set attributeName="fill" to="rgb(204,0,102)" begin="2s" dur="2s" fill="freeze"/>
+ </rect>
+ </g>
+
+ <!-- Sub-test 1: class on <rect> -->
+ <g transform="translate(0,110)">
+ <style>.on { fill: rgb(204,0,102) } .off { fill: #ccc }</style>
+ <text x="30" y="12">class</text>
+ <rect x="200" width="12" height="12" stroke="black" class="on">
+ <animate attributeName="class" to="off" begin="2s" dur="2s" fill="freeze"/>
+ </rect>
+ <rect x="300" width="12" height="12" stroke="black" class="off">
+ <animate attributeName="class" to="on" begin="2s" dur="2s" fill="freeze"/>
+ </rect>
+ </g>
+
+ <!-- Sub-test 2: clipPathUnits on <clipPath> -->
+ <g transform="translate(0,135)">
+ <text x="30" y="12">clipPathUnits</text>
+ <clipPath id="c1" clipPathUnits="objectBoundingBox">
+ <rect width="1" height="1"/>
+ <animate attributeName="clipPathUnits" to="userSpaceOnUse" begin="2s" dur="2s" fill="freeze"/>
+ </clipPath>
+ <rect x="200" width="12" height="12" stroke="black" fill="#ccc"/>
+ <rect x="200" width="12" height="12" stroke="black" fill="rgb(204,0,102)" clip-path="url(#c1)"/>
+ <rect x="300" width="12" height="12" stroke="black" fill="rgb(204,0,102)"/>
+ <rect x="300" width="12" height="12" stroke="black" fill="#ccc" clip-path="url(#c1)"/>
+ </g>
+
+ <!-- Sub-test 3: in on <feComposite> -->
+ <g transform="translate(0,160)">
+ <text x="30" y="12">in</text>
+ <filter id="f1" x="0" y="0" width="1" height="1">
+ <feFlood flood-color="#ccc" result="off"/>
+ <feFlood flood-color="rgb(204,0,102)" result="on"/>
+ <feComposite in="on" in2="SourceGraphic">
+ <animate attributeName="in" to="off" begin="2s" dur="2s" fill="freeze"/>
+ </feComposite>
+ </filter>
+ <filter id="f2" x="0" y="0" width="1" height="1">
+ <feFlood flood-color="#ccc" result="off"/>
+ <feFlood flood-color="rgb(204,0,102)" result="on"/>
+ <feComposite in="off" in2="SourceGraphic">
+ <animate attributeName="in" to="on" begin="2s" dur="2s" fill="freeze"/>
+ </feComposite>
+ </filter>
+ <rect x="200" width="12" height="12" fill="none" filter="url(#f1)"/>
+ <rect x="200" width="12" height="12" stroke="black" fill="none"/>
+ <rect x="300" width="12" height="12" fill="none" filter="url(#f2)"/>
+ <rect x="300" width="12" height="12" stroke="black" fill="none"/>
+ </g>
+
+ <!-- Sub-test 4: preserveAspectRatio on <svg> -->
+ <g transform="translate(0,185)">
+ <text x="30" y="12">preserveAspectRatio</text>
+ <rect x="200" width="12" height="12" fill="#ccc"/>
+ <rect x="300" width="12" height="12" fill="rgb(204,0,102)"/>
+ <clipPath id="c2" clipPathUnits="userSpaceOnUse">
+ <rect x="200" y="0" width="112" height="12"/>
+ </clipPath>
+ <g clip-path="url(#c2)">
+ <svg width="200" height="100" viewBox="0 0 400 400" preserveAspectRatio="none" overflow="visible">
+ <rect x="400" width="24" height="48" fill="rgb(204,0,102)"/>
+ <rect x="600" width="24" height="48" fill="#ccc"/>
+ <animate attributeName="preserveAspectRatio" to="xMinYMin" begin="2s" dur="2s" fill="freeze"/>
+ </svg>
+ </g>
+ <rect x="200" width="12" height="12" stroke="black" fill="none"/>
+ <rect x="300" width="12" height="12" stroke="black" fill="none"/>
+ </g>
+
+ <!-- Sub-test 5: spreadMethod on <linearGradient> -->
+ <g transform="translate(0,210)">
+ <text x="30" y="12">spreadMethod</text>
+ <linearGradient id="g1" gradientUnits="objectBoundingBox" x1="1" y1="0" x2="2" y2="0" spreadMethod="reflect">
+ <stop offset="0" stop-color="rgb(204,0,102)" stop-opacity="0"/>
+ <stop offset="0" stop-color="rgb(204,0,102)"/>
+ <stop offset="1" stop-color="rgb(204,0,102)"/>
+ <stop offset="1" stop-color="rgb(204,0,102)" stop-opacity="0"/>
+ <animate attributeName="spreadMethod" to="pad" begin="2s" dur="2s" fill="freeze"/>
+ </linearGradient>
+ <linearGradient id="g2" gradientUnits="objectBoundingBox" x1="1" y1="0" x2="2" y2="0" spreadMethod="reflect">
+ <stop offset="0" stop-color="#ccc" stop-opacity="0"/>
+ <stop offset="0" stop-color="#ccc"/>
+ <stop offset="1" stop-color="#ccc"/>
+ <stop offset="1" stop-color="#ccc" stop-opacity="0"/>
+ <animate attributeName="spreadMethod" to="pad" begin="2s" dur="2s" fill="freeze"/>
+ </linearGradient>
+ <rect x="200" width="12" height="12" fill="#ccc"/>
+ <rect x="300" width="12" height="12" fill="rgb(204,0,102)"/>
+ <rect x="200" width="12" height="12" stroke="black" fill="url(#g1)"/>
+ <rect x="300" width="12" height="12" stroke="black" fill="url(#g2)"/>
+ </g>
+
+ <!-- Sub-test 6: xlink:href on <use> -->
+ <g transform="translate(0,235)">
+ <text x="30" y="12">xlink:href</text>
+ <g display="none">
+ <rect id="r1" width="12" height="12" fill="rgb(204,0,102)" stroke="black"/>
+ <rect id="r2" width="12" height="12" fill="#ccc" stroke="black"/>
+ </g>
+ <use xlink:href="#r1" x="200">
+ <animate attributeName="xlink:href" to="#r2" begin="2s" dur="2s" fill="freeze"/>
+ </use>
+ <use xlink:href="#r2" x="300">
+ <animate attributeName="xlink:href" to="#r1" begin="2s" dur="2s" fill="freeze"/>
+ </use>
+ </g>
+
+ <!-- Sub-test 7: display on <rect> -->
+ <g transform="translate(0,260)">
+ <text x="30" y="12">display</text>
+ <g>
+ <rect x="200" width="12" height="12" fill="rgb(204,0,102)" stroke="black"/>
+ <rect x="300" width="12" height="12" fill="#ccc" stroke="black"/>
+ <animate attributeName="display" to="none" begin="2s" dur="2s" fill="freeze"/>
+ </g>
+ <g display="none">
+ <rect x="200" width="12" height="12" fill="#ccc" stroke="black"/>
+ <rect x="300" width="12" height="12" fill="rgb(204,0,102)" stroke="black"/>
+ <animate attributeName="display" to="inline" begin="2s" dur="2s" fill="freeze"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-92-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-92-t-isvalid.html
new file mode 100644
index 0000000000..c785fccd8e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-92-t-isvalid.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-elem-92-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-elem-92-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-elem-92-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text text-anchor="middle" x="240" y="30" font-size="20">discrete to-animation</text>
+ <g transform="translate(100, 70)">
+ <g transform="translate(80,25)" text-anchor="end" font-size="14">
+ <text>without freezing</text>
+ <text y="55">with freezing</text>
+ <text y="110">with keyTimes</text>
+ </g>
+
+ <g id="timeMarkersText" transform="translate(150, 5)" text-anchor="middle" font-size="14">
+ <text>0s-2s</text>
+ <text y="-16">&gt; 4s</text>
+ <text x="80">2s-4s</text>
+
+ <g transform="translate(0, 55)">
+ <text>0s-2s</text>
+ <text x="80">&gt; 2s</text>
+ </g>
+
+ <g transform="translate(0, 110)">
+ <text>0s-2s</text>
+ <text x="80">&gt; 2s</text>
+ </g>
+ </g>
+
+ <g transform="translate(150,20)" stroke="black">
+ <defs>
+ <rect id="shadow" x="-6" y="-6" width="12" height="12" fill="#ccc" stroke="black" stroke-width="1"/>
+ </defs>
+
+ <g>
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <animate attributeName="x" calcMode="discrete" to="74" dur="4s"/>
+ </rect>
+ </g>
+
+ <g transform="translate(0, 55)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <animate attributeName="x" calcMode="discrete" to="74" dur="4s" fill="freeze"/>
+ </rect>
+ </g>
+
+ <g transform="translate(0, 110)">
+ <use xlink:href="#shadow" x="0"/>
+ <use xlink:href="#shadow" x="80"/>
+
+ <rect x="-6" y="-6" width="12" height="12" fill="rgb(204,0,102)">
+ <animate attributeName="x" calcMode="discrete" to="74" dur="8s" keyTimes="0; 0.25" fill="freeze"/>
+ </rect>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-events-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-events-01-t-isvalid.html
new file mode 100644
index 0000000000..879aa52213
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-events-01-t-isvalid.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-interact-events-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-interact-events-01-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-interact-events-01-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <!-- SVGElementInstance animates fill on mouseover -->
+ <rect id="rect" width="50" height="50" fill="red">
+ <set attributeName="fill" begin="mouseover" end="mouseout" to="blue"/>
+ </rect>
+ </defs>
+
+ <text x="120" y="20" font-size="15">Shadow tree event listener chain</text>
+
+ <!--basic event dispatch - all rectangles turn blue -->
+ <use fill="red" x="30" y="30" xlink:href="#rect"/>
+ <text x="95" y="45" font-size="12">Case 1: on mouseover all squares must turn blue</text>
+
+ <!-- event bubbling from SVGElementInstance to referencing element -->
+ <!-- all rectangles turn blue and second rectangle displays black stroke -->
+ <use id="use2" fill="red" x="30" y="100" xlink:href="#rect"/>
+ <rect pointer-events="none" x="30" y="100" width="50" height="50" fill="none" stroke-width="5" stroke="none" >
+ <set attributeName="stroke" begin="use2.mouseover" end="use2.mouseout" to="black"/>
+ </rect>
+ <g font-size="12">
+ <text x="95" y="115">Case 2: on mouseover all squares must turn blue</text>
+ <text x="95" y="130">and a black stroke must appear on reference square</text>
+ </g>
+
+ <!-- event bubbling from SVGElementInstance to referencing element ancestors-->
+ <!-- all rectangles turn blue and third rectangle displays black stroke -->
+ <g id="g1">
+ <use fill="red" x="30" y="170" xlink:href="#rect"/>
+ <rect pointer-events="none" x="30" y="170" width="50" height="50" fill="none" stroke-width="5" stroke="none" >
+ <set attributeName="stroke" begin="g1.mouseover" end="g1.mouseout" to="black"/>
+ </rect>
+ </g>
+ <g font-size="12">
+ <text x="95" y="185">Case 3: on mouseover all squares must turn blue</text>
+ <text x="95" y="200">and a black stroke must appear on reference square</text>
+ </g>
+
+ <!--SVGElementInstance is not effected by event listener on referencing element -->
+ <!-- all rectangles turn blue and displays black stroke only on mouse down -->
+ <use id="use3" fill="red" x="30" y="240" xlink:href="#rect"/>
+ <rect pointer-events="none" x="30" y="240" width="50" height="50" fill="none" stroke-width="5" stroke="none" >
+ <set attributeName="stroke" begin="use3.mousedown" end="use3.mouseup" to="black"/>
+ </rect>
+ <g font-size="12">
+ <text x="95" y="255">Case 4: on mouseover all squares must turn blue</text>
+ <text x="95" y="270">and on mousedown a black stroke must appear on reference square</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-pevents-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-pevents-01-t-isvalid.html
new file mode 100644
index 0000000000..0bcb312223
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-pevents-01-t-isvalid.html
@@ -0,0 +1,265 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-interact-pevents-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-interact-pevents-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-interact-pevents-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="sans-serif" font-size="40" text-rendering="geometricPrecision">
+ <text x="240" y="40" text-anchor="middle" font-size="20">Test pointer-events on text</text>
+ <g transform="translate(40, -10)">
+ <g id="first-line">
+ <text x="50" y="100">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="80" y="100" pointer-events="visiblePainted">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="110" y="100" pointer-events="visibleFill">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="140" y="100" pointer-events="visibleStroke">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="170" y="100" pointer-events="visible">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="200" y="100" pointer-events="painted">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="230" y="100" pointer-events="fill">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="260" y="100" pointer-events="stroke">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="290" y="100" pointer-events="all">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="320" y="100" pointer-events="none">
+ O
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite"/>
+ </text>
+
+ <g pointer-events="none">
+ <rect x="50" y="65" height="40" width="270" fill="green" fill-opacity="0.5" visibility="visible"/>
+
+ <rect x="50" y="65" height="40" width="300" fill="none" stroke="black" visibility="visible"/>
+ </g>
+ </g>
+
+ <g id="second-line" transform="translate(0 60)" fill="none" stroke="black">
+ <text x="50" y="100">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="80" y="100" pointer-events="visiblePainted">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="110" y="100" pointer-events="visibleFill">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="140" y="100" pointer-events="visibleStroke">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="170" y="100" pointer-events="visible">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="200" y="100" pointer-events="painted">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="230" y="100" pointer-events="fill">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="260" y="100" pointer-events="stroke">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="290" y="100" pointer-events="all">
+ O
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="320" y="100" pointer-events="none">
+ O
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite"/>
+ </text>
+
+ <g pointer-events="none">
+ <rect x="50" y="65" height="40" width="270" fill="green" fill-opacity="0.5" visibility="visible" stroke="none"/>
+
+ <rect x="50" y="65" height="40" width="300" fill="none" stroke="black" visibility="visible"/>
+ </g>
+ </g>
+
+ <g id="third-line" transform="translate(0 120)" visibility="hidden">
+ <text x="50" y="100">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="80" y="100" pointer-events="visiblePainted">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="110" y="100" pointer-events="visibleFill">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="140" y="100" pointer-events="visibleStroke">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="170" y="100" pointer-events="visible">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="200" y="100" pointer-events="painted">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="230" y="100" pointer-events="fill">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="260" y="100" pointer-events="stroke">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="290" y="100" pointer-events="all">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="320" y="100" pointer-events="none">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite"/>
+ </text>
+
+ <g pointer-events="none">
+ <rect x="200" y="65" height="40" width="120" fill="green" fill-opacity="0.5" visibility="visible"/>
+
+ <rect x="50" y="65" height="40" width="300" fill="none" stroke="black" visibility="visible"/>
+ </g>
+ </g>
+
+ <g id="fourth-line" transform="translate(0 180)" fill="none" stroke="none">
+ <text x="50" y="100">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="80" y="100" pointer-events="visiblePainted">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="110" y="100" pointer-events="visibleFill">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="140" y="100" pointer-events="visibleStroke">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="170" y="100" pointer-events="visible">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="200" y="100" pointer-events="painted">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="230" y="100" pointer-events="fill">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="260" y="100" pointer-events="stroke">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="290" y="100" pointer-events="all">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="green" begin="mouseover" dur="indefinite"/>
+ </text>
+ <text x="320" y="100" pointer-events="none">
+ O
+ <set attributeName="visibility" to="visible" begin="mouseover" dur="indefinite"/>
+ <set attributeName="fill" to="red" begin="mouseover" dur="indefinite"/>
+ </text>
+
+ <g pointer-events="none">
+ <rect x="110" y="65" height="40" width="90" fill="green" fill-opacity="0.5" visibility="visible"/>
+ <rect x="230" y="65" height="40" width="90" fill="green" fill-opacity="0.5" visibility="visible"/>
+
+ <rect x="50" y="65" height="40" width="300" fill="none" stroke="black" visibility="visible"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-pevents-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-pevents-02-t-isvalid.html
new file mode 100644
index 0000000000..d0790a299a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-pevents-02-t-isvalid.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-interact-pevents-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-interact-pevents-02-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-interact-pevents-02-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect x="15" y="15" height="280" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <g text-anchor="middle">
+ <text x="240" y="30" fill="black" font-size="15">Testing pointer-events and rendering order</text>
+ <text x="240" y="42" fill="#555" font-size="10">Rectangles should turn RED on mouseover </text>
+ <text x="240" y="54" fill="#555" font-size="10">Ovals should turn RED if Pointer-Events are set to "ALL"</text>
+ </g>
+ <g id="buttons">
+ <g text-anchor="middle" font-size="8" fill="#555" transform="translate(0,10)">
+ <text x="400" y="85">Change "Pointer-Events" of </text>
+ <text x="400" y="95">ovals from "ALL" to "NONE"</text>
+ <circle id="on" cx="385" cy="65" r="10" fill-opacity="1" fill="#3c5" stroke="black" stroke-width="3"/>
+ <circle id="off" cx="415" cy="65" r="10" fill-opacity="1" fill="#f35" stroke="black"/>
+ </g>
+ <g text-anchor="middle" font-size="12" fill="#555">
+ <text id="all" x="240" y="285" fill="#555" visibility="visible">Purple ovals have "Pointer-Events" set to "ALL".</text>
+ <text id="none" x="240" y="285" fill="#555" visibility="hidden">Purple ovals have Pointer-Events set to "NONE".</text>
+ </g>
+ <set xlink:href="#all" attributeName="visibility" to="visible" begin="on.mousedown" fill="freeze"/>
+ <set xlink:href="#all" attributeName="visibility" to="hidden" begin="off.mousedown" fill="freeze"/>
+ <set xlink:href="#none" attributeName="visibility" to="hidden" begin="on.mousedown" fill="freeze"/>
+ <set xlink:href="#none" attributeName="visibility" to="visible" begin="off.mousedown" fill="freeze"/>
+ <set xlink:href="#on" attributeName="stroke-width" to="3" begin="on.mousedown" fill="freeze"/>
+ <set xlink:href="#on" attributeName="stroke-width" to="1" begin="off.mousedown" fill="freeze"/>
+ <set xlink:href="#off" attributeName="stroke-width" to="3" begin="off.mousedown" fill="freeze"/>
+ <set xlink:href="#off" attributeName="stroke-width" to="1" begin="on.mousedown" fill="freeze"/>
+ <set xlink:href="#c10" attributeName="pointer-events" to="all" begin="on.mousedown" fill="freeze"/>
+ <set xlink:href="#c10" attributeName="pointer-events" to="none" begin="off.mousedown" fill="freeze"/>
+ <set xlink:href="#c11" attributeName="pointer-events" to="all" begin="on.mousedown" fill="freeze"/>
+ <set xlink:href="#c11" attributeName="pointer-events" to="none" begin="off.mousedown" fill="freeze"/>
+ <set xlink:href="#c12" attributeName="pointer-events" to="all" begin="on.mousedown" fill="freeze"/>
+ <set xlink:href="#c12" attributeName="pointer-events" to="none" begin="off.mousedown" fill="freeze"/>
+ </g>
+ <g transform="scale(0.75, 0.5) translate(100, 85)">
+ <circle id="c10" cx="160" cy="350" r="100" fill-opacity="1" fill="#53f" stroke="black" pointer-events="all">
+ <set attributeName="fill" to="#F55" begin="c10.mouseover"/>
+ <set attributeName="fill" to="#53f" begin="c10.mouseout"/>
+ </circle>
+ <rect id="r10" x="10" y="50" width="300" height="300" fill-opacity="1" fill="#35f" stroke="black">
+ <set attributeName="fill" to="#F55" begin="r10.mouseover"/>
+ <set attributeName="fill" to="#35f" begin="r10.mouseout"/>
+ </rect>
+ <circle id="c11" cx="310" cy="350" r="90" fill-opacity="1" fill="#75f" stroke="black" pointer-events="all">
+ <set attributeName="fill" to="#F55" begin="c11.mouseover"/>
+ <set attributeName="fill" to="#75f" begin="c11.mouseout"/>
+ </circle>
+ <rect id="r11" x="60" y="100" width="200" height="200" fill-opacity="1" fill="#57f" stroke="black">
+ <set attributeName="fill" to="#F55" begin="r11.mouseover"/>
+ <set attributeName="fill" to="#57f" begin="r11.mouseout"/>
+ </rect>
+ <circle id="c12" cx="310" cy="200" r="75" fill-opacity="1" fill="#97f" stroke="black" pointer-events="all">
+ <set attributeName="fill" to="#F55" begin="c12.mouseover"/>
+ <set attributeName="fill" to="#97f" begin="c12.mouseout"/>
+ </circle>
+ <rect id="r12" x="110" y="150" width="100" height="100" fill-opacity="1" fill="#79f" stroke="black">
+ <set attributeName="fill" to="#F55" begin="r12.mouseover"/>
+ <set attributeName="fill" to="#79f" begin="r12.mouseout"/>
+ </rect>
+ <g id="dasharray-rectangles" stroke-width="0.5" stroke-dasharray="4, 4">
+ <rect id="r-dash10" x="10" y="50" width="300" height="300" fill-opacity="0" fill="none" stroke="black" pointer-events="none"/>
+ <rect id="r-dash11" x="60" y="100" width="200" height="200" fill-opacity="0" fill="none" stroke="black" pointer-events="none"/>
+ <rect id="r-dash12" x="110" y="150" width="100" height="100" fill-opacity="0" fill="none" stroke="black" pointer-events="none"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-pevents-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-pevents-03-t-isvalid.html
new file mode 100644
index 0000000000..2ed0f2e7b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-pevents-03-t-isvalid.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-interact-pevents-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-interact-pevents-03-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-interact-pevents-03-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text id="display-title" x="240" y="25" fill="#555" font-size="12">
+ <tspan fill="black" font-size="10">Testing pointer-events</tspan> - pale RED rect should appear on mouseover.
+ </text>
+ <text id="comment-1" x="240" y="37" fill="#555" font-size="10">
+ 2nd and 3rd columns represent respectively rects with no fill/stroke and transparent fill/stroke
+ </text>
+ </g>
+ <g transform="translate(0, 5)">
+ <g transform="translate(25, 50)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r10.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r10.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r11.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r11.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r12.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r12.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r13.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r13.mouseout"/>
+ </rect>
+ <rect id="r10" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3"/>
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r11" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3"/>
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r12" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r13" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden"/>
+ <g font-size="12">
+ <text x="200" y="15">default : </text>
+ <text x="200" y="30" fill="#777">fill and stroke of rects 1 and 3 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 100)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r20.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r20.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r21.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r21.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r22.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r22.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r23.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r23.mouseout"/>
+ </rect>
+ <rect id="r20" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="visiblePainted"/>
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r21" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="visiblePainted"/>
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r22" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="visiblePainted"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r23" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden" pointer-events="visiblePainted"/>
+ <g font-size="12">
+ <text x="200" y="15">visiblePainted : </text>
+ <text x="200" y="30" fill="#777">fill and stroke of rects 1 and 3 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 150)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r30.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r30.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r31.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r31.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r32.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r32.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r33.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r33.mouseout"/>
+ </rect>
+ <rect id="r30" width="30" height="30" fill="blue" stroke-width="10" stroke="black" fill-opacity=".3" stroke-opacity=".3" pointer-events="visibleFill"/>
+
+ <rect x="50" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r31" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="visibleFill"/>
+
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r32" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="black" fill-opacity="0" stroke-opacity="0" pointer-events="visibleFill"/>
+
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r33" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden" pointer-events="visibleFill"/>
+ <g font-size="12">
+ <text x="200" y="15">visibleFill : </text>
+ <text x="200" y="30" fill="#777">only fill of rects 1, 2 and 3 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 200)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r40.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r40.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r41.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r41.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r42.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r42.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r43.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r43.mouseout"/>
+ </rect>
+ <rect id="r40" width="30" height="30" fill="black" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="visibleStroke"/>
+
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r41" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="visibleStroke"/>
+
+ <rect x="100" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r42" x="100" width="30" height="30" fill="black" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="visibleStroke"/>
+
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r43" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden" pointer-events="visibleStroke"/>
+ <g font-size="12">
+ <text x="200" y="15">visibleStroke : </text>
+ <text x="200" y="30" fill="#777">only stroke of rects 1, 2 and 3 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 250)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r50.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r50.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r51.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r51.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r52.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r52.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r53.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r53.mouseout"/>
+ </rect>
+ <rect id="r50" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="visible"/>
+
+ <rect x="50" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r51" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="visible"/>
+
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r52" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="visible"/>
+
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r53" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden" pointer-events="visible"/>
+ <g font-size="12">
+ <text x="200" y="15">visible : </text>
+ <text x="200" y="30" fill="#777">fill and stroke of rects 1, 2 and 3 must trigger</text>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g> -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-pevents-04-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-pevents-04-t-isvalid.html
new file mode 100644
index 0000000000..64f956ea2e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-interact-pevents-04-t-isvalid.html
@@ -0,0 +1,180 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-interact-pevents-04-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-interact-pevents-04-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-interact-pevents-04-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g text-anchor="middle">
+ <text id="display-title" x="240" y="25" fill="#555" font-size="12">
+ <tspan fill="black" font-size="10">Testing pointer-events</tspan> - pale RED rect should appear on mouseover.
+ </text>
+ <text id="comment-1" x="240" y="37" fill="#555" font-size="10">
+ 2nd and 3rd columns represent respectively rects with no fill/stroke and transparent fill/stroke
+ </text>
+ </g>
+ <g transform="translate(0, 5)">
+ <g transform="translate(25, 50)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r60.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r60.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r61.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r61.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r62.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r62.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r63.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r63.mouseout"/>
+ </rect>
+ <rect id="r60" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="painted"/>
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r61" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="painted"/>
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r62" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="painted"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r63" x="150" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" visibility="hidden" pointer-events="painted"/>
+ <g font-size="12">
+ <text x="200" y="15">painted : </text>
+ <text x="200" y="30" fill="#777">fill and stroke of rects 1, 3 and 4 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 100)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r70.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r70.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r71.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r71.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r72.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r72.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r73.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r73.mouseout"/>
+ </rect>
+ <rect id="r70" width="30" height="30" fill="blue" stroke-width="10" stroke="black" fill-opacity=".3" stroke-opacity=".3" pointer-events="fill"/>
+ <rect x="50" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r71" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="fill"/>
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r72" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="black" fill-opacity="0" stroke-opacity="0" pointer-events="fill"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r73" x="150" width="30" height="30" fill="blue" stroke-width="10" stroke="black" visibility="hidden" pointer-events="fill"/>
+ <g font-size="12">
+ <text x="200" y="15">fill : </text>
+ <text x="200" y="30" fill="#777">fill of rects 1 to 4 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 150)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r80.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r80.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r81.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r81.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r82.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r82.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r83.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r83.mouseout"/>
+ </rect>
+ <rect id="r80" width="30" height="30" fill="black" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="stroke"/>
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r81" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="stroke"/>
+ <rect x="100" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r82" x="100" width="30" height="30" fill="black" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="stroke"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r83" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="blue" visibility="hidden" pointer-events="stroke"/>
+ <g font-size="12">
+ <text x="200" y="15">stroke : </text>
+ <text x="200" y="30" fill="#777">stroke of rects 1 to 4 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 200)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r90.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r90.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r91.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r91.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r92.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r92.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r93.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r93.mouseout"/>
+ </rect>
+ <rect id="r90" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="all"/>
+ <rect x="50" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r91" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="all"/>
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r92" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="all"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r93" x="150" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" visibility="hidden" pointer-events="all"/>
+ <g font-size="12">
+ <text x="200" y="15">all : </text>
+ <text x="200" y="30" fill="#777">stroke and fill of rects 1 to 4 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 250)">
+ <rect x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0">
+ <set attributeName="fill-opacity" to="0.4" begin="r00.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r00.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r01.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r01.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r02.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r02.mouseout"/>
+ <set attributeName="fill-opacity" to="0.4" begin="r03.mouseover"/>
+ <set attributeName="fill-opacity" to="0" begin="r03.mouseout"/>
+ </rect>
+ <rect id="r00" width="30" height="30" fill="black" stroke-width="10" stroke="black" fill-opacity=".3" stroke-opacity=".3" pointer-events="none"/>
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r01" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="none"/>
+ <rect x="100" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r02" x="100" width="30" height="30" fill="black" stroke-width="10" stroke="black" fill-opacity="0" stroke-opacity="0" pointer-events="none"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r03" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden" pointer-events="none"/>
+ <g font-size="12">
+ <text x="200" y="15">none : </text>
+ <text x="200" y="30" fill="#777">nothing is to trigger</text>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g> -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-pservers-grad-01-b-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-pservers-grad-01-b-novalid.html
new file mode 100644
index 0000000000..acdb407362
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-pservers-grad-01-b-novalid.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-pservers-grad-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-pservers-grad-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-pservers-grad-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <g id="g0" stop-color="yellow" stop-opacity="0" color="yellow">
+ <animateColor id="a1" attributeName="stop-color" from="red" to="green" dur="5" fill="freeze"/>
+ <animateColor id="a2" attributeName="color" from="yellow" to="green" dur="5" fill="freeze"/>
+ <animate id="a3" attributeName="stop-opacity" from="0.5" to="1" dur="5" fill="freeze"/>
+
+ <linearGradient id="MyGradient1" stop-color="inherit">
+ <stop offset="0" stop-color="green" stop-opacity="1"/>
+ <stop offset="1" stop-color="inherit" stop-opacity="1"/>
+ </linearGradient>
+ <linearGradient id="MyGradient2" stop-opacity="inherit">
+ <stop offset="0" stop-color="green" stop-opacity="1"/>
+ <stop offset="1" stop-color="green" stop-opacity="inherit"/>
+ </linearGradient>
+
+ <g id="g01">
+ <linearGradient id="MyGradient3">
+ <stop offset="0" stop-color="green" stop-opacity="1"/>
+ <stop offset="1"/>
+ </linearGradient>
+ <linearGradient id="MyGradient4">
+ <stop offset="0" stop-color="green" stop-opacity="1"/>
+ <stop offset="1" stop-color="currentColor" stop-opacity="1"/>
+ </linearGradient>
+ </g>
+ </g>
+ </defs>
+ <g id="g1" stop-color="blue">
+ <animateColor id="a4" attributeName="stop-color" from="blue" to="red" dur="5" fill="freeze"/>
+ <rect id="r1" fill="url(#MyGradient1)" width="100" height="100" x="50" y="50"/>
+ </g>
+ <g id="g2" stop-opacity="1">
+ <animate id="a5" attributeName="stop-opacity" from="1" to="0" dur="5" fill="freeze"/>
+ <rect id="r2" fill="url(#MyGradient2)" width="100" height="100" x="200" y="50"/>
+ </g>
+ <g id="g3" stop-opacity="1" stop-color="blue">
+ <animateColor id="a6" attributeName="stop-color" from="blue" to="red" dur="5" fill="freeze"/>
+ <animate id="a7" attributeName="stop-opacity" from="1" to="0" dur="5" fill="freeze"/>
+ <rect id="r3" fill="url(#MyGradient3)" width="100" height="100" x="50" y="200"/>
+ </g>
+ <g id="g4" color="blue">
+ <animateColor id="a7" attributeName="color" from="blue" to="red" dur="5" fill="freeze"/>
+ <rect id="r4" fill="url(#MyGradient4)" width="100" height="100" x="200" y="200"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-script-elem-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-script-elem-01-b-isvalid.html
new file mode 100644
index 0000000000..b01dd54759
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-script-elem-01-b-isvalid.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-script-elem-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-script-elem-01-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-script-elem-01-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='30'>Test that &lt;script xlink:href=""> is not animatable</text>
+
+ <g>
+ <rect id='r1' x='10' y='50' width='30' height='30' fill='black'/>
+ <rect id='r2' x='10' y='90' width='30' height='30' fill='green'/>
+ <g font-size='15'>
+ <text x='50' y='70'>Test script.href.animVal does not change</text>
+ <text x='50' y='110'>Test animating xlink:href="" does not load a script</text>
+ </g>
+
+ <script id='s' xlink:href='../images/empty.js'/>
+ <script>
+ function f() {
+ document.getElementById('r2').setAttribute('fill', 'red');
+ }
+
+ function g() {
+ document.getElementById('r1').setAttribute('fill', document.getElementById('s').href.animVal.indexOf('empty') >= 0 ? 'green' : 'red');
+ }
+ </script>
+ <set xlink:href='#s' attributeName='xlink:href' to='../images/f.js' dur='100s'/>
+ <set attributeName='visibility' to='hidden' dur='1s' onend='g()'/>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/animate-struct-dom-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/animate-struct-dom-01-b-isvalid.html
new file mode 100644
index 0000000000..3ca95a754d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/animate-struct-dom-01-b-isvalid.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>animate-struct-dom-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: animate-struct-dom-01-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: animate-struct-dom-01-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='30'>Test getCurrentTime() and setCurrentTime() before timeline begin</text>
+ <rect id='r' x='10' y='50' width='50' height='50' fill='red'/>
+ <rect x='210' y='50' width='50' height='50' fill='red'>
+ <set attributeName='fill' to='green' begin='36000'/> <!-- 10h -->
+ <set attributeName='fill' to='red' begin='72000'/> <!-- 20h -->
+ </rect>
+
+ <g font-size='15'>
+ <text x='10' y='120'>getCurrentTime</text>
+ <text x='210' y='120'>setCurrentTime</text>
+ </g>
+
+ <script>
+ try {
+ document.documentElement.setCurrentTime(90000); // 25h
+ document.documentElement.setCurrentTime(54000); // 15h
+ } catch (e) {
+ }
+
+ try {
+ if (document.documentElement.getCurrentTime() == 0) {
+ document.getElementById('r').setAttribute('fill', 'green');
+ }
+ } catch (e) {
+ }
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+<!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/color-prof-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/color-prof-01-f-isvalid.html
new file mode 100644
index 0000000000..9fbae27301
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/color-prof-01-f-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>color-prof-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: color-prof-01-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: color-prof-01-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <color-profile id="changeColor" name="changeColor" xlink:href="../images/changeColor.ICM"/>
+ </defs>
+ <g>
+ <image id="image1PNG" x="30" y="0" width="190" height="190" xlink:href="../images/colorprof.png"/>
+ </g>
+ <g>
+ <image color-profile="changeColor" id="image2" x="260" y="90" width="190" height="190" xlink:href="../images/colorprof.png"/>
+ </g>
+ <text font-family="Arial" font-size="12" x="250" y="20">
+ Basic test of ICC profile with an image.
+ </text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/color-prop-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/color-prop-01-b-isvalid.html
new file mode 100644
index 0000000000..a9c4accc82
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/color-prop-01-b-isvalid.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>color-prop-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: color-prop-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: color-prop-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <linearGradient id="grad" color="green">
+ <stop offset="5%" stop-color="#60F"/>
+ <stop offset="50%" stop-color="currentColor"/>
+ <stop offset="95%" stop-color="#FF6"/>
+ </linearGradient>
+ </defs>
+ <g color="green">
+ <g color="inherit" fill="none" stroke="none">
+ <!-- inherit to check the property value, not the string, is being used -->
+ <circle cx="130" cy="80" r="60" fill="currentColor"/>
+ <circle cx="350" cy="80" r="60" stroke="currentColor" stroke-width="4"/>
+ </g>
+ </g>
+ <g color="blue">
+ <g color="inherit" fill="none" stroke="none">
+ <!-- blue color used to check color being scoped and inherited correctly -->
+ <rect x="60" y="215" width="360" height="80" fill="url(#grad)"/>
+ </g>
+ </g>
+ <g font-size="30" fill="black">
+ <text x="120" y="170">fill</text>
+ <text x="310" y="170">stroke</text>
+ <text x="180" y="205">stop-color</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/color-prop-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/color-prop-02-f-isvalid.html
new file mode 100644
index 0000000000..4275447477
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/color-prop-02-f-isvalid.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>color-prop-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: color-prop-02-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: color-prop-02-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- groups of five colors -->
+ <g>
+ <circle cx="75" cy="40" r="20" fill="crimson"/>
+ <circle cx="115" cy="40" r="20" fill="#DC143C"/>
+ <circle cx="75" cy="80" r="20" fill="rgb(220,20,60)"/>
+ <circle cx="115" cy="80" r="20" fill="rgb(86.274509803921568627450980392157%,7.8431372549019607843137254901961%,23.529411764705882352941176470588%)"/>
+ </g>
+ <g>
+ <circle cx="200" cy="40" r="20" fill="palegreen"/>
+ <circle cx="240" cy="40" r="20" fill="#98FB98"/>
+ <circle cx="200" cy="80" r="20" fill="rgb(152, 251, 152)"/>
+ <circle cx="240" cy="80" r="20" fill="rgb(59.60784313725490196078431372549%,98.431372549019607843137254901961%,59.60784313725490196078431372549%)"/>
+ </g>
+ <g>
+ <circle cx="325" cy="40" r="20" fill="royalblue"/>
+ <circle cx="365" cy="40" r="20" fill="#4169E1"/>
+ <circle cx="325" cy="80" r="20" fill="rgb(65, 105, 225)"/>
+ <circle cx="365" cy="80" r="20" fill="rgb(25.490196078431372549019607843137%,41.176470588235294117647058823529%,88.235294117647058823529411764706%)"/>
+ </g>
+ <g>
+ <circle cx="75" cy="135" r="20" fill="firebrick"/>
+ <circle cx="115" cy="135" r="20" fill="#B22222"/>
+ <circle cx="75" cy="175" r="20" fill="rgb(178,34,34)"/>
+ <circle cx="115" cy="175" r="20" fill="rgb(69.803921568627450980392156862745%,13.333333333333333333333333333333%,13.333333333333333333333333333333%)"/>
+ </g>
+ <g>
+ <circle cx="200" cy="135" r="20" fill="seagreen"/>
+ <circle cx="240" cy="135" r="20" fill="#2E8B57"/>
+ <circle cx="200" cy="175" r="20" fill="rgb(46, 139, 87)"/>
+ <circle cx="240" cy="175" r="20" fill="rgb(18.039215686274509803921568627451%,54.509803921568627450980392156863%,34.117647058823529411764705882353%)"/>
+ </g>
+ <g>
+ <circle cx="325" cy="135" r="20" fill="mediumblue"/>
+ <circle cx="365" cy="135" r="20" fill="#0000CD"/>
+ <circle cx="325" cy="175" r="20" fill="rgb(0, 0, 205)"/>
+ <circle cx="365" cy="175" r="20" fill="rgb(0%,0%,80.39215686274509803921568627451%)"/>
+ </g>
+ <g>
+ <circle cx="75" cy="230" r="20" fill="indianred"/>
+ <circle cx="115" cy="230" r="20" fill="#CD5C5C"/>
+ <circle cx="75" cy="270" r="20" fill="rgb(205, 92, 92)"/>
+ <circle cx="115" cy="270" r="20" fill="rgb(80.39215686274509803921568627451%,36.078431372549019607843137254902%,36.078431372549019607843137254902%)"/>
+ </g>
+ <g>
+ <circle cx="200" cy="230" r="20" fill="lawngreen"/>
+ <circle cx="240" cy="230" r="20" fill="#7CFC00"/>
+ <circle cx="200" cy="270" r="20" fill="rgb(124, 252, 0)"/>
+ <circle cx="240" cy="270" r="20" fill="rgb(48.627450980392156862745098039216%,98.823529411764705882352941176471%,0%)"/>
+ </g>
+ <g>
+ <circle cx="325" cy="230" r="20" fill="mediumturquoise"/>
+ <circle cx="365" cy="230" r="20" fill="#48D1CC"/>
+ <circle cx="325" cy="270" r="20" fill="rgb(72, 209, 204)"/>
+ <circle cx="365" cy="270" r="20" fill="rgb(28.235294117647058823529411764706%,81.960784313725490196078431372549%,80%)"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/color-prop-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/color-prop-03-t-isvalid.html
new file mode 100644
index 0000000000..84c7b28295
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/color-prop-03-t-isvalid.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>color-prop-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: color-prop-03-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: color-prop-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- groups of five colors -->
+ <g>
+ <circle cx="75" cy="40" r="20" fill="#f00"/>
+ <circle cx="115" cy="40" r="20" fill="#ff0000"/>
+ <circle cx="75" cy="80" r="20" fill="rgb(255,0,0)"/>
+ <circle cx="115" cy="80" r="20" fill="rgb(100%,0%,0%)"/>
+ <polygon points="95,40 115,60 95,80 75,60" fill="red"/>
+ </g>
+ <g>
+ <circle cx="200" cy="40" r="20" fill="#0f0"/>
+ <circle cx="240" cy="40" r="20" fill="#00ff00"/>
+ <circle cx="200" cy="80" r="20" fill="rgb(0,255,0)"/>
+ <circle cx="240" cy="80" r="20" fill="rgb(0%,100%,0%)"/>
+ <!-- 'lime' (full intensity green) NOT 'green' (half intensity green) -->
+ <polygon points="220,40 240,60 220,80 200,60" fill="lime"/>
+ </g>
+ <g>
+ <circle cx="325" cy="40" r="20" fill="#00f"/>
+ <circle cx="365" cy="40" r="20" fill="#0000ff"/>
+ <circle cx="325" cy="80" r="20" fill="rgb(0,0,255)"/>
+ <circle cx="365" cy="80" r="20" fill="rgb(0%,0%,100%)"/>
+ <polygon points="345,40 365,60 345,80 325,60" fill="blue"/>
+ </g>
+ <!-- no names for three digit colors except for 00 and ff -->
+ <!-- 11=17 22=34 33=51 44=68 55=85 66=102 77=119
+ 88=136 99=153 aa=170 bb=187 cc=204 dd=221 ee=238 -->
+ <g>
+ <circle cx="75" cy="135" r="20" fill="#a01"/>
+ <circle cx="115" cy="135" r="20" fill="#aa0011"/>
+ <circle cx="75" cy="175" r="20" fill="rgb(170,0,17)"/>
+ <circle cx="115" cy="175" r="20" fill="rgb(66.667%,0%,6.667%)"/>
+ </g>
+ <g>
+ <circle cx="200" cy="135" r="20" fill="#3b3"/>
+ <circle cx="240" cy="135" r="20" fill="#33bb33"/>
+ <circle cx="200" cy="175" r="20" fill="rgb(51,187,51)"/>
+ <circle cx="240" cy="175" r="20" fill="rgb(20%,73.333%,20%)"/>
+ </g>
+ <g>
+ <circle cx="325" cy="135" r="20" fill="#57e"/>
+ <circle cx="365" cy="135" r="20" fill="#5577ee"/>
+ <circle cx="325" cy="175" r="20" fill="rgb(85,119,238)"/>
+ <circle cx="365" cy="175" r="20" fill="rgb(33.333%,46.666%,93.333%)"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/color-prop-04-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/color-prop-04-t-isvalid.html
new file mode 100644
index 0000000000..68e9644de0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/color-prop-04-t-isvalid.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>color-prop-04-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: color-prop-04-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: color-prop-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g id="Scene_1" transform="translate(240, 180)">
+ <rect x="-230" y="-170" width="460" height="300" fill="Background"/>
+ <rect x="-220" y="-160" width="440" height="280" fill="AppWorkspace"/>
+ <rect x="-152" y="-108" width="317" height="221" fill="Window"/>
+ <rect x="-152" y="-108" width="317" height="221" fill="none" stroke-width="3" stroke="WindowFrame"/>
+ <g id="contents" font-size="12" fill="WindowText">
+ <text x="-148" y="0">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. </text>
+ <text x="-148" y="20">Vestibulum pulvinar. Duis laoreet, nunc vitae facilisis </text>
+ <text x="-148" y="40">tristique, pede sem iaculis mi, non consectetuer lorem </text>
+ <text x="-148" y="60">libero et est. Donec imperdiet purus sed odio. Duis </text>
+ <text x="-148" y="80">venenatis tortor eu lectus. Suspendisse sed metus at </text>
+ <text x="-148" y="100">metus viverra ultricies. Mauris porttitor, justo a vulputate</text>
+ </g>
+ <g id="dropdown" transform="translate(2,0)">
+ <rect x="-150" y="-107" width="118" height="190" fill="ThreeDFace" id="drop-bg"/>
+ <rect x="-143" y="0" width="102" height="34" fill="Menu"/>
+ <text x="-138" y="24" font-size="20" font-weight="bold" fill="MenuText">Load</text>
+ <rect x="-143" y="40" width="102" height="34" fill="Menu"/>
+ <text x="-138" y="64" font-size="20" font-weight="bold" fill="MenuText">Save</text>
+ <path d="M-149 83 h114 v-94" stroke-width="4" stroke="ThreeDDarkShadow" fill="none"/>
+ <path d="M-149 83 v-94 h114" stroke-width="4" stroke="ThreeDLightShadow" fill="none"/>
+ </g>
+ <g id="menubar">
+ <rect x="-148" y="-62" width="310" height="46" fill="ThreeDLightShadow"/>
+ <path d="M152 -52 l 10 -10 v 46 h -311 l10-10 z" fill="ThreeDDarkShadow"/>
+ <rect x="-144" y="-58" width="302" height="37" fill="ThreeDFace"/>
+ <text x="-141" y="-32" font-size="20" font-weight="bold" fill="HighlightText">File</text>
+ <text x="-90" y="-32" font-size="20" font-weight="bold" fill="MenuText">Edit</text>
+ </g>
+ <g id="windowdecoration">
+ <rect x="-149" y="-106" width="311" height="42" fill="ActiveCaption" stroke-width="4" stroke="ActiveBorder" id="windowbar"/>
+ <text x="5" y="-78" text-anchor="middle" font-size="24" font-weight="bold" fill="CaptionText">Lorem</text>
+ <g id="button">
+ <rect x="120" y="-99" rx="8" width="26" height="26" fill="ButtonFace"/>
+ <rect x="120" y="-99" rx="8" width="24" height="24" fill="ButtonHighlight"/>
+ <rect x="122" y="-97" rx="8" width="24" height="24" fill="ButtonShadow"/>
+ <rect x="122" y="-97" rx="8" width="22" height="22" fill="ButtonFace"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/color-prop-05-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/color-prop-05-t-isvalid.html
new file mode 100644
index 0000000000..ce0752f553
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/color-prop-05-t-isvalid.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>color-prop-05-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: color-prop-05-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: color-prop-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g fill="currentColor" color="lime">
+ <rect x="120" y="60" width="150" height="150" color="red"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/conform-viewers-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/conform-viewers-02-f-isvalid.html
new file mode 100644
index 0000000000..ebde81958d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/conform-viewers-02-f-isvalid.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>conform-viewers-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: conform-viewers-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: conform-viewers-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="240" y="40" text-anchor="middle">Test data uri with svgz content</text>
+
+ <text fill="black" x="50%" y="200" text-anchor="middle">FAILED</text>
+ <image xlink:href="data:image/svg+xml;base64,H4sICA/BlksCA3N0YXIuc3ZnAMVUwW7bMAw9d8D+QVAvLeDIkiha0mDn0A7oZcMO
+Wz/Aa+zUgGsHttq0+/pRTtwkwLBuwIAhcPRIihT5RCofn9bsqam2V/1zwSWTTGfT
+x9nzQ9uNBb8PYfMhTbfbrdiC6Id1qqWUKfnx5ft3jOWrqh4nRLhu2lANrFkV/Hv7
+OPC9Plqqm/JxHJuyuyIDG8PqY/XUlKHpu4IrkfF0jpHugsxi23RVOdwM5aqpujCF
+bteKs/Ve820ou7Huh4eCP5RhaJ4vQKDJtLOQSPodpIWzVmgrHUGPWhhvrLmkQlXB
+wdM+q4zh7CWKTgqtPABZdRRRAJmRrCQaBULazLhDFrddE4isx7Eavm7Ku+pLdztW
+fDlXP4Z+w+Lf4q5v+6Hg53Vd852mp/1NeCH2BQXs63qsAgmvhPyx+8FZTc5nZ3l6
+yt7MaRTL9oTTIXJKkUELjd4hvFXbby5gIYWVkkh3iRaZMtZpopw4M2i0NQnZncqk
+8okymROgVZYstEbhNRpPN3JHvQgS6AqM9iRSdaA0OTnLWX1qrI+NO8LPfkmY/Aty
+5Rvk7jv1lMfdOKSv85CvWThwM8G2DNXFAoynZqNuJFKoJS1ljpfzrOSbMtwfO77V
+1YhOKGk8Rct8JjJEE7ua7vQzAyIeaKA/Me19AggRUf+D1RPSCRgXEZIV3KyDycOZ
+BCTOvjoi0KRTPiJFScCE9mf8oLuYJpdaZWgvzuMDcHkY639UFh3R7g+glv0/dZ7W
+dJRRe8jIoErAWfIzBhN6aCJSNjEO2TXpdGK8ZsYqWpGh3K3XDGkqJg1ktBqGGHcq
+8kZPeyBmh5IiYhYj7k+Zc8rTNa15fJ2XPwFubI+E2wUAAA==" width="200" height="200" x="130" y="70"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/conform-viewers-03-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/conform-viewers-03-f-novalid.html
new file mode 100644
index 0000000000..0e7115ff9d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/conform-viewers-03-f-novalid.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>conform-viewers-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: conform-viewers-03-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" onload="test()">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: conform-viewers-03-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <script>
+ <![CDATA[
+ /**
+ * Generates a 20 character string consisting of characters from the inchars parameter.
+ * The output string will have no repetitions of a character.
+ */
+ function generatePrefix(inchars)
+ {
+ var ncNameStart = "_abcdefghijklmnopqrstuvwxyzåäöQWERTYUIOPÅÄÖLKJHGFDSAZXCVBNM";
+
+ var prefix = ncNameStart[Math.floor(Math.random()*ncNameStart.length)];
+ var leftchars = inchars;
+ var char;
+ for(var i = 0; i < 19; i++)
+ {
+ char = leftchars[Math.floor(Math.random()*leftchars.length)];
+ leftchars = leftchars.replace(char, '');
+ prefix += char;
+ }
+ return prefix;
+ }
+
+ /**
+ * The main body of the test.
+ */
+ function test()
+ {
+ var letters = "abcdefghijklmnopqrstuvwxyzåäö_-.QWERTYUIOPÅÄÖLKJHGFDSAZXCVBNM0123456789";
+ var prefix = generatePrefix(letters);
+ var g = document.getElementById("test-body-content");
+ var t = document.getElementById("prefix");
+ t.textContent = prefix;
+
+ var elm = document.createElementNS("http://www.w3.org/2000/svg", "image");
+ elm.setAttributeNS(null, "width", 100);
+ elm.setAttributeNS(null, "height", 100);
+ elm.setAttributeNS(null, "x", 100);
+ elm.setAttributeNS(null, "y", 100);
+ elm.setAttributeNS("http://www.w3.org/1999/xlink", prefix+":href", "../images/pinksquidj.png");
+ elm.setAttributeNS("http://www.this.is.not.an/xlink", "xlink:href", "../images/purplesquidj.png");
+ g.appendChild(elm);
+ }
+ ]]>
+ </script>
+
+ <text y="100" x="50" display="none">
+ Generated prefix 1: <tspan id="prefix">...</tspan>
+ </text>
+ <text y="220" x="50">
+ Status: <tspan id="status">No exceptions.</tspan>
+ </text>
+
+ <g xmlns:xlink="http://example.net/bar">
+ <image id="image2" width="100" height="100" x="210" y="100" xlink:href="../images/purplesquidj.png"/>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g> -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-coord-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-coord-01-t-isvalid.html
new file mode 100644
index 0000000000..806bfe7418
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-coord-01-t-isvalid.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-coord-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-coord-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-coord-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <!-- Content of Test Case follows. -->
+
+ <g stroke="black" stroke-width="5">
+
+ <line x1="0" y1="0" x2="150" y2="0"/>
+
+ <line x1="0" y1="0" x2="0" y2="150"/>
+ </g>
+
+ <g fill="blue">
+ <rect width="15" height="15"/>
+
+ <rect x="150" width="15" height="15"/>
+
+ <rect y="150" width="15" height="15"/>
+ </g>
+
+ <g fill="yellow">
+ <rect x="0" y="0" width="10" height="10"/>
+
+ <rect x="150" y="0" width="10" height="10"/>
+
+ <rect x="0" y="150" width="10" height="10"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-coord-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-coord-02-t-isvalid.html
new file mode 100644
index 0000000000..6856237890
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-coord-02-t-isvalid.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-coord-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-coord-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-coord-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <!-- Content of Test Case follows. -->
+
+ <g stroke="black" stroke-width="5">
+
+ <line x1="0px" y1="0px" x2="150px" y2="0px"/>
+
+ <line x1="0px" y1="0px" x2="0px" y2="150px"/>
+ </g>
+
+ <g fill="blue">
+ <rect x="0" y="0" width="15" height="15"/>
+
+ <rect x="150" y="0" width="15" height="15"/>
+
+ <rect x="0" y="150" width="15" height="15"/>
+ </g>
+
+ <g fill="yellow">
+ <rect x="0px" y="0px" width="10" height="10"/>
+
+ <rect x="150px" y="0px" width="10" height="10"/>
+
+ <rect x="0px" y="150px" width="10" height="10"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-01-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-01-f-novalid.html
new file mode 100644
index 0000000000..d00af6e2fe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-01-f-novalid.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-dom-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-dom-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-dom-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+
+ <g transform="translate(240 180)">
+ <g id="reference">
+ <circle r="40" fill="red"/>
+ </g>
+
+ <g id="g" transform="translate(20 20)">
+ <circle id="c" r="41" fill="blue"/>
+ </g>
+ </g>
+
+ <script type="text/ecmascript"><![CDATA[
+ var eps = 1 / 65535; // 16.16 fixpoint epsilon
+ var passed = false;
+
+ function isequal( value, expected, epsilon )
+ {
+ return(Math.abs(value - expected) < epsilon);
+ }
+
+ try
+ {
+ var g = document.getElementById("g");
+ var c = document.getElementById("c");
+ var tfm = g.transform.baseVal.getItem(0);
+ var mtx = tfm.matrix;
+ tfm.setTranslate(300,200);
+ if(tfm.type == SVGTransform.SVG_TRANSFORM_TRANSLATE &&
+ isequal(mtx.e, 300, eps) && isequal(mtx.f, 200, eps))
+ {
+ tfm.setScale(4,4);
+ if(tfm.type == SVGTransform.SVG_TRANSFORM_SCALE &&
+ isequal(mtx.a, 4, eps) && isequal(mtx.d, 4, eps))
+ {
+ tfm.setRotate(90,0,0);
+ if(tfm.type == SVGTransform.SVG_TRANSFORM_ROTATE &&
+ isequal(mtx.a, Math.cos(Math.PI/2), eps) && isequal(mtx.b, Math.sin(Math.PI/2), eps) &&
+ isequal(mtx.c, -Math.sin(Math.PI/2), eps) && isequal(mtx.d, Math.cos(Math.PI/2), eps) &&
+ isequal(mtx.e, 0, eps) && isequal(mtx.f, 0, eps))
+ {
+ passed = true;
+ }
+ }
+ }
+ }
+ catch(e) {}
+
+ if(passed)
+ {
+ c.setAttribute("fill", "lime");
+ }
+ else
+ {
+ c.setAttribute("fill", "red");
+ }
+ ]]></script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-02-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-02-f-novalid.html
new file mode 100644
index 0000000000..af8616b368
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-02-f-novalid.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-dom-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-dom-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-dom-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+
+ <g transform="translate(220 160)">
+ <g id="reference">
+ <circle r="41" fill="red" transform="translate(20 20) scale(2 1)"/>
+ </g>
+
+ <g id="g" transform="translate(20 20)">
+ <circle id="c" r="41" fill="blue"/>
+ </g>
+ </g>
+
+ <script type="text/ecmascript"><![CDATA[
+ var passed = false;
+
+ try
+ {
+ var g = document.getElementById("g");
+ var c = document.getElementById("c");
+ var tfm = g.transform.baseVal.getItem(0);
+ var mtx = tfm.matrix;
+ mtx.a = 2;
+ if(tfm.type == SVGTransform.SVG_TRANSFORM_MATRIX)
+ {
+ passed = true;
+ }
+ }
+ catch(e) {}
+
+ if(passed)
+ {
+ c.setAttribute("fill", "lime");
+ }
+ else
+ {
+ c.setAttribute("fill", "red");
+ }
+ ]]></script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-03-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-03-f-isvalid.html
new file mode 100644
index 0000000000..15d373e1e5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-03-f-isvalid.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-dom-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-dom-03-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-dom-03-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='30' font-size='14'>Test that some methods taking an SVGMatrix take a copy of it</text>
+
+ <rect id='r1' x='10' y='50' width='50' height='50'/>
+ <rect id='r2' x='10' y='110' width='50' height='50'/>
+ <rect id='r3' x='10' y='170' width='50' height='50'/>
+ <g font-size='10'>
+ <text x='70' y='80'>SVGTransformList.createSVGTransformFromMatrix()</text>
+ <text x='70' y='140'>SVGSVGElement.createSVGTransformFromMatrix()</text>
+ <text x='70' y='200'>SVGTransform.setMatrix()</text>
+ </g>
+
+ <g id='g' transform='scale(5)'/>
+
+ <script><![CDATA[
+ var svg = document.documentElement,
+ g = document.getElementById('g'),
+ r1 = document.getElementById('r1'),
+ r2 = document.getElementById('r2'),
+ r3 = document.getElementById('r3');
+
+ var m1 = svg.createSVGMatrix(),
+ m2 = svg.createSVGMatrix(),
+ m3 = svg.createSVGMatrix();
+
+ var t;
+
+ m1.a = 3; m1.b = 0; m1.c = 0; m1.d = 1; m1.e = 0; m1.f = 0;
+ m2.a = 3; m2.b = 0; m2.c = 0; m2.d = 1; m2.e = 0; m2.f = 0;
+ m3.a = 3; m3.b = 0; m3.c = 0; m3.d = 1; m3.e = 0; m3.f = 0;
+
+ try {
+ t = g.transform.baseVal.createSVGTransformFromMatrix(m1);
+ m1.a = 2;
+ r1.setAttribute('fill', t.matrix != m1 && t.matrix.a == 3 ? 'lime' : 'red');
+ } catch (e) {
+ }
+
+ try {
+ t = svg.createSVGTransformFromMatrix(m2);
+ m2.a = 2;
+ r2.setAttribute('fill', t.matrix != m2 && t.matrix.a == 3 ? 'lime' : 'red');
+ } catch (e) {
+ }
+
+ try {
+ t = g.transform.baseVal.getItem(0);
+ t.setMatrix(m3);
+ m3.a = 2;
+ r3.setAttribute('fill', t.matrix != m3 && t.matrix.a == 3 ? 'lime' : 'red');
+ } catch (e) {
+ }
+ ]]></script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-04-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-04-f-isvalid.html
new file mode 100644
index 0000000000..4a722f8f84
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-dom-04-f-isvalid.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-dom-04-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-dom-04-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" onload="test()">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-dom-04-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <style>
+ #test-body-content rect { stroke: black; }
+ </style>
+ <script type="text/ecmascript"><![CDATA[
+ var pos = { "x": 20, "y": 40 };
+ var subtestCounter = 1;
+ var passed = true;
+
+ function toString(m)
+ {
+ var decimals = 0;
+ return m.a.toFixed(decimals) + "," +
+ m.b.toFixed(decimals) + "," +
+ m.c.toFixed(decimals) + "," +
+ m.d.toFixed(decimals) + "," +
+ m.e.toFixed(decimals) + "," +
+ m.f.toFixed(decimals);
+ }
+
+ function referenceEqual(m1,ref,eps)
+ {
+ return (Math.abs(m1.a-ref[0]) < eps &&
+ Math.abs(m1.b-ref[1]) < eps &&
+ Math.abs(m1.c-ref[2]) < eps &&
+ Math.abs(m1.d-ref[3]) < eps &&
+ Math.abs(m1.e-ref[4]) < eps &&
+ Math.abs(m1.f-ref[5]) < eps);
+ }
+
+ function assertEquals(m, ref, eps)
+ {
+ var result = document.createElementNS("http://www.w3.org/2000/svg", "text");
+ var resultrect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
+ result.setAttribute("x", pos.x);
+ result.setAttribute("y", pos.y);
+ resultrect.setAttribute("fill", "lime");
+ resultrect.setAttribute("width", 15);
+ resultrect.setAttribute("height", 15);
+ resultrect.setAttribute("y", pos.y-15);
+
+ if(referenceEqual(m, ref, eps))
+ {
+ result.textContent = "Passed subtest #" + subtestCounter;
+ }
+ else
+ {
+ passed = false;
+ result.textContent = "Failed subtest #" + subtestCounter + ". Expected " + ref + " but got " + toString(m);
+ }
+ pos.y += 20;
+ subtestCounter++;
+ var results = document.getElementById("subteststatus");
+ results.appendChild(resultrect)
+ results.appendChild(result);
+ }
+
+ function test()
+ {
+ eps = 0.005; // "close enough"
+ r = document.getElementById("r");
+
+ t1 = r.transform.baseVal.getItem(0);
+ t2 = r.transform.baseVal.getItem(1);
+
+ // check that matrices are as specified in the markup
+ assertEquals(t1.matrix, [1, 0, 0, 1, 10, 10], eps);
+ assertEquals(t2.matrix, [0, 1, -1, 0, 0, 0], eps);
+
+ // consolidate
+ tfm = r.transform.baseVal.consolidate();
+
+ // check that the consolidation is ok
+ assertEquals(tfm.matrix, [0, 1, -1, 0, 10, 10], eps);
+
+ // check that t1 and t2 were not affected by the consolidation
+ assertEquals(t1.matrix, [1, 0, 0, 1, 10, 10], eps);
+ assertEquals(t2.matrix, [0, 1, -1, 0, 0, 0], eps);
+
+ // check that modifying t1 has no effect on the consolidated transform
+ t1.setTranslate(10,200);
+ assertEquals(t1.matrix, [1, 0, 0, 1, 10, 200], eps);
+ assertEquals(tfm.matrix, [0, 1, -1, 0, 10, 10], eps);
+
+ // check that modifying t2 has no effect on the consolidated transform
+ t2.setRotate(-90, 0, 0);
+ assertEquals(t2.matrix, [0, -1, 1, 0, 0, 0], eps);
+ assertEquals(tfm.matrix, [0, 1, -1, 0, 10, 10], eps);
+
+ // check that modifying the consolidated transform has no effect on the t1 and t2 transforms
+ tfm.matrix.f = 400;
+ assertEquals(tfm.matrix, [0, 1, -1, 0, 10, 400], eps);
+ assertEquals(t1.matrix, [1, 0, 0, 1, 10, 200], eps);
+ assertEquals(t2.matrix, [0, -1, 1, 0, 0, 0], eps);
+
+ document.getElementById("status").setAttributeNS(null, "fill", passed ? "lime" : "red");
+ document.getElementById("scriptstatus").textContent = "Scripting enabled";
+ }
+
+ ]]></script>
+ </defs>
+
+ <g transform="translate(20 -10)">
+ <g id="subteststatus" transform="translate(0,40)">
+ <rect id="status" y="5" width="15" height="15" fill="red"/>
+ <text id="scriptstatus" y="20" x="20" >Scripting disabled</text>
+ </g>
+
+ <polyline id="r" fill="none" stroke="green" display="none" transform="translate(10 10) rotate(90)" points="0 0 30 40 80 -20" stroke-width="10"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-01-b-isvalid.html
new file mode 100644
index 0000000000..ca656c65d2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-01-b-isvalid.html
@@ -0,0 +1,226 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-trans-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-trans-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-trans-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(0, 30)" font-size="13">
+ <!-- ====================================================================== -->
+ <!-- First, draw a test grid ============================================== -->
+ <!-- ====================================================================== -->
+ <g id="test-grid" stroke="#cccccc" stroke-width="1">
+ <line x1="10" y1="10.5" x2="470" y2="10.5"/>
+ <line x1="10" y1="20.5" x2="470" y2="20.5"/>
+ <line x1="10" y1="30.5" x2="470" y2="30.5"/>
+ <line x1="10" y1="40.5" x2="470" y2="40.5"/>
+ <line x1="10" y1="50.5" x2="470" y2="50.5"/>
+ <line x1="10" y1="60.5" x2="470" y2="60.5"/>
+ <line x1="10" y1="70.5" x2="470" y2="70.5"/>
+ <line x1="10" y1="80.5" x2="470" y2="80.5"/>
+ <line x1="10" y1="90.5" x2="470" y2="90.5"/>
+ <line x1="10" y1="100.5" x2="470" y2="100.5"/>
+ <line x1="10" y1="110.5" x2="470" y2="110.5"/>
+ <line x1="10" y1="120.5" x2="470" y2="120.5"/>
+ <line x1="10" y1="130.5" x2="470" y2="130.5"/>
+ <line x1="10" y1="140.5" x2="470" y2="140.5"/>
+ <line x1="10" y1="150.5" x2="470" y2="150.5"/>
+ <line x1="10" y1="160.5" x2="470" y2="160.5"/>
+ <line x1="10" y1="170.5" x2="470" y2="170.5"/>
+ <line x1="10" y1="180.5" x2="470" y2="180.5"/>
+ <line x1="10" y1="190.5" x2="470" y2="190.5"/>
+ <line x1="10" y1="200.5" x2="470" y2="200.5"/>
+ <line x1="10" y1="210.5" x2="470" y2="210.5"/>
+ <line x1="10" y1="220.5" x2="470" y2="220.5"/>
+ <line x1="10" y1="230.5" x2="470" y2="230.5"/>
+ <line x1="10" y1="240.5" x2="470" y2="240.5"/>
+ <line x1="10" y1="250.5" x2="470" y2="250.5"/>
+ <line x1="10" y1="260.5" x2="470" y2="260.5"/>
+ <line y1="10" x1="10.5" y2="260.5" x2="10.5"/>
+ <line y1="10" x1="20.5" y2="260.5" x2="20.5"/>
+ <line y1="10" x1="30.5" y2="260.5" x2="30.5"/>
+ <line y1="10" x1="40.5" y2="260.5" x2="40.5"/>
+ <line y1="10" x1="50.5" y2="260.5" x2="50.5"/>
+ <line y1="10" x1="60.5" y2="260.5" x2="60.5"/>
+ <line y1="10" x1="70.5" y2="260.5" x2="70.5"/>
+ <line y1="10" x1="80.5" y2="260.5" x2="80.5"/>
+ <line y1="10" x1="90.5" y2="260.5" x2="90.5"/>
+ <line y1="10" x1="100.5" y2="260.5" x2="100.5"/>
+ <line y1="10" x1="110.5" y2="260.5" x2="110.5"/>
+ <line y1="10" x1="120.5" y2="260.5" x2="120.5"/>
+ <line y1="10" x1="130.5" y2="260.5" x2="130.5"/>
+ <line y1="10" x1="140.5" y2="260.5" x2="140.5"/>
+ <line y1="10" x1="150.5" y2="260.5" x2="150.5"/>
+ <line y1="10" x1="160.5" y2="260.5" x2="160.5"/>
+ <line y1="10" x1="170.5" y2="260.5" x2="170.5"/>
+ <line y1="10" x1="180.5" y2="260.5" x2="180.5"/>
+ <line y1="10" x1="190.5" y2="260.5" x2="190.5"/>
+ <line y1="10" x1="200.5" y2="260.5" x2="200.5"/>
+ <line y1="10" x1="210.5" y2="260.5" x2="210.5"/>
+ <line y1="10" x1="220.5" y2="260.5" x2="220.5"/>
+ <line y1="10" x1="230.5" y2="260.5" x2="230.5"/>
+ <line y1="10" x1="240.5" y2="260.5" x2="240.5"/>
+ <line y1="10" x1="250.5" y2="260.5" x2="250.5"/>
+ <line y1="10" x1="260.5" y2="260.5" x2="260.5"/>
+ <line y1="10" x1="270.5" y2="260.5" x2="270.5"/>
+ <line y1="10" x1="280.5" y2="260.5" x2="280.5"/>
+ <line y1="10" x1="290.5" y2="260.5" x2="290.5"/>
+ <line y1="10" x1="300.5" y2="260.5" x2="300.5"/>
+ <line y1="10" x1="310.5" y2="260.5" x2="310.5"/>
+ <line y1="10" x1="320.5" y2="260.5" x2="320.5"/>
+ <line y1="10" x1="330.5" y2="260.5" x2="330.5"/>
+ <line y1="10" x1="340.5" y2="260.5" x2="340.5"/>
+ <line y1="10" x1="350.5" y2="260.5" x2="350.5"/>
+ <line y1="10" x1="360.5" y2="260.5" x2="360.5"/>
+ <line y1="10" x1="370.5" y2="260.5" x2="370.5"/>
+ <line y1="10" x1="380.5" y2="260.5" x2="380.5"/>
+ <line y1="10" x1="390.5" y2="260.5" x2="390.5"/>
+ <line y1="10" x1="400.5" y2="260.5" x2="400.5"/>
+ <line y1="10" x1="410.5" y2="260.5" x2="410.5"/>
+ <line y1="10" x1="420.5" y2="260.5" x2="420.5"/>
+ <line y1="10" x1="430.5" y2="260.5" x2="430.5"/>
+ <line y1="10" x1="440.5" y2="260.5" x2="440.5"/>
+ <line y1="10" x1="450.5" y2="260.5" x2="450.5"/>
+ <line y1="10" x1="460.5" y2="260.5" x2="460.5"/>
+ <line y1="10" x1="470.5" y2="260.5" x2="470.5"/>
+ </g>
+ <!-- ====================================================================== -->
+ <!-- Now, test elementary transforms. For each transform, 3 markers are -->
+ <!-- placed where the user space is expected after transformations for the -->
+ <!-- origin (black) and the points in (20, 0) (blue) and (0, 20) (red). -->
+ <!-- Then, a blue line going from (0, 0) to (20, 0) is drawn and a red line -->
+ <!-- going from (0, 0) to (0, 20), after applying the elementary -->
+ <!-- transformation. If the test succeeds, the red line should join the -->
+ <!-- black marker to the red marker and the blue line the black marker to -->
+ <!-- the blue marker. -->
+ <!-- ====================================================================== -->
+ <g id="elementary-transforms-test" transform="translate(0, 10)">
+ <g id="elementary-transforms">
+ <!-- Translate -->
+ <g transform="translate(50, 50)">
+ <rect x="0" y="0" width="20" height="2" fill="blue"/>
+ <rect x="0" y="0" width="2" height="20" fill="red"/>
+ </g>
+ <!-- Rotate -90 deg about (150, 70) -->
+ <g transform="translate(150, 70) rotate(-90)">
+ <rect x="0" y="0" width="20" height="2" fill="blue"/>
+ <rect x="0" y="0" width="2" height="20" fill="red"/>
+ </g>
+ <!-- Skew X -->
+ <g transform="translate(250, 50) skewX(45)">
+ <rect x="0" y="0" width="20" height="2" fill="blue"/>
+ <rect x="0" y="0" width="2" height="20" fill="red"/>
+ </g>
+ <!-- Skew Y -->
+ <g transform="translate(350, 50) skewY(45)">
+ <rect x="0" y="0" width="20" height="2" fill="blue"/>
+ <rect x="0" y="0" width="2" height="20" fill="red"/>
+ </g>
+ <!-- Scale 2 -->
+ <g transform="translate(210, 120) scale(2)">
+ <rect x="0" y="0" width="20" height="1" fill="blue"/>
+ <rect x="0" y="0" width="1" height="20" fill="red"/>
+ </g>
+ </g>
+ <!-- elementary-transforms -->
+ <!-- Draw all the markers -->
+ <g id="elementary-transforms-test-markers">
+ <!-- Translate -->
+ <text x="40" y="40">translate (50, 50)</text>
+ <rect x="48" y="48" width="5" height="5" fill="black"/>
+ <rect x="68" y="48" width="5" height="5" fill="blue"/>
+ <rect x="48" y="68" width="5" height="5" fill="red"/>
+ <!-- Rotate -90 deg about (150, 70) -->
+ <text x="140" y="40">rotate(-90)</text>
+ <rect x="148" y="68" width="5" height="5" fill="black"/>
+ <rect x="148" y="48" width="5" height="5" fill="blue"/>
+ <rect x="168" y="68" width="5" height="5" fill="red"/>
+ <!-- Skew X -->
+ <text x="240" y="40">skew x (45)</text>
+ <rect x="248" y="48" width="5" height="5" fill="black"/>
+ <rect x="268" y="48" width="5" height="5" fill="blue"/>
+ <rect x="268" y="68" width="5" height="5" fill="red"/>
+ <!-- Skew Y -->
+ <text x="340" y="40">skew y (45)</text>
+ <rect x="348" y="48" width="5" height="5" fill="black"/>
+ <rect x="368" y="68" width="5" height="5" fill="blue"/>
+ <rect x="348" y="68" width="5" height="5" fill="red"/>
+ <!-- Scale 2 -->
+ <text x="200" y="110">scale (2)</text>
+ <rect x="208" y="118" width="5" height="5" fill="black"/>
+ <rect x="248" y="118" width="5" height="5" fill="blue"/>
+ <rect x="208" y="158" width="5" height="5" fill="red"/>
+ </g>
+ <!-- elementary-transforms-test-markers -->
+ </g>
+ <g id="nested-transforms-test">
+ <g id="nested-transforms">
+ <!-- scale/translate in transform attribute -->
+ <g transform="scale(3, 2) translate(16.666667, 105)">
+ <rect x="0" y="0" width="20" height="1" fill="blue"/>
+ <rect x="0" y="0" width="0.67" height="20" fill="red"/>
+ </g>
+ <!-- scale/translate in successive elements -->
+ <g transform="translate(200, 0)">
+ <g transform="scale(3, 2)">
+ <g transform="translate(16.666667, 105)">
+ <rect x="0" y="0" width="20" height="1" fill="blue"/>
+ <rect x="0" y="0" width="0.67" height="20" fill="red"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <!-- nested-transforms -->
+ <g id="nested-transforms-test-markers">
+ <!-- scale and translate -->
+ <text x="40" y="200">scale(25, 95) and translate(2, 2)</text>
+ <rect x="48" y="208" width="5" height="5" fill="black"/>
+ <rect x="108" y="208" width="5" height="5" fill="blue"/>
+ <rect x="48" y="248" width="5" height="5" fill="red"/>
+ <!-- scale then translate -->
+ <text x="240" y="200">scale(25, 95) then translate(2, 2)</text>
+ <rect x="248" y="208" width="5" height="5" fill="black"/>
+ <rect x="308" y="208" width="5" height="5" fill="blue"/>
+ <rect x="248" y="248" width="5" height="5" fill="red"/>
+ </g>
+ <!-- nested-transforms-test-markers -->
+ </g>
+ <!-- nested-transforms test -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-02-t-isvalid.html
new file mode 100644
index 0000000000..fd4bdad836
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-02-t-isvalid.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-trans-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-trans-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-trans-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(0, 30)" font-size="12">
+ <!-- ====================================================================== -->
+ <!-- First, draw a test grid ============================================== -->
+ <!-- ====================================================================== -->
+ <!--g id="test-grid" stroke="#cccccc" stroke-width="1" >
+ <line x1="10" y1="10.5" x2="470" y2="10.5"/>
+ <line x1="10" y1="20.5" x2="470" y2="20.5"/>
+ <line x1="10" y1="30.5" x2="470" y2="30.5"/>
+ <line x1="10" y1="40.5" x2="470" y2="40.5"/>
+ <line x1="10" y1="50.5" x2="470" y2="50.5"/>
+ <line x1="10" y1="60.5" x2="470" y2="60.5"/>
+ <line x1="10" y1="70.5" x2="470" y2="70.5"/>
+ <line x1="10" y1="80.5" x2="470" y2="80.5"/>
+ <line x1="10" y1="90.5" x2="470" y2="90.5"/>
+ <line x1="10" y1="100.5" x2="470" y2="100.5"/>
+ <line x1="10" y1="110.5" x2="470" y2="110.5"/>
+ <line x1="10" y1="120.5" x2="470" y2="120.5"/>
+ <line x1="10" y1="130.5" x2="470" y2="130.5"/>
+ <line x1="10" y1="140.5" x2="470" y2="140.5"/>
+ <line x1="10" y1="150.5" x2="470" y2="150.5"/>
+ <line x1="10" y1="160.5" x2="470" y2="160.5"/>
+ <line x1="10" y1="170.5" x2="470" y2="170.5"/>
+ <line x1="10" y1="180.5" x2="470" y2="180.5"/>
+ <line x1="10" y1="190.5" x2="470" y2="190.5"/>
+ <line x1="10" y1="200.5" x2="470" y2="200.5"/>
+ <line x1="10" y1="210.5" x2="470" y2="210.5"/>
+ <line x1="10" y1="220.5" x2="470" y2="220.5"/>
+ <line x1="10" y1="230.5" x2="470" y2="230.5"/>
+ <line x1="10" y1="240.5" x2="470" y2="240.5"/>
+ <line x1="10" y1="250.5" x2="470" y2="250.5"/>
+ <line x1="10" y1="260.5" x2="470" y2="260.5"/>
+ <line y1="10" x1="10.5" y2="260.5" x2="10.5"/>
+ <line y1="10" x1="20.5" y2="260.5" x2="20.5"/>
+ <line y1="10" x1="30.5" y2="260.5" x2="30.5"/>
+ <line y1="10" x1="40.5" y2="260.5" x2="40.5"/>
+ <line y1="10" x1="50.5" y2="260.5" x2="50.5"/>
+ <line y1="10" x1="60.5" y2="260.5" x2="60.5"/>
+ <line y1="10" x1="70.5" y2="260.5" x2="70.5"/>
+ <line y1="10" x1="80.5" y2="260.5" x2="80.5"/>
+ <line y1="10" x1="90.5" y2="260.5" x2="90.5"/>
+ <line y1="10" x1="100.5" y2="260.5" x2="100.5"/>
+ <line y1="10" x1="110.5" y2="260.5" x2="110.5"/>
+ <line y1="10" x1="120.5" y2="260.5" x2="120.5"/>
+ <line y1="10" x1="130.5" y2="260.5" x2="130.5"/>
+ <line y1="10" x1="140.5" y2="260.5" x2="140.5"/>
+ <line y1="10" x1="150.5" y2="260.5" x2="150.5"/>
+ <line y1="10" x1="160.5" y2="260.5" x2="160.5"/>
+ <line y1="10" x1="170.5" y2="260.5" x2="170.5"/>
+ <line y1="10" x1="180.5" y2="260.5" x2="180.5"/>
+ <line y1="10" x1="190.5" y2="260.5" x2="190.5"/>
+ <line y1="10" x1="200.5" y2="260.5" x2="200.5"/>
+ <line y1="10" x1="210.5" y2="260.5" x2="210.5"/>
+ <line y1="10" x1="220.5" y2="260.5" x2="220.5"/>
+ <line y1="10" x1="230.5" y2="260.5" x2="230.5"/>
+ <line y1="10" x1="240.5" y2="260.5" x2="240.5"/>
+ <line y1="10" x1="250.5" y2="260.5" x2="250.5"/>
+ <line y1="10" x1="260.5" y2="260.5" x2="260.5"/>
+ <line y1="10" x1="270.5" y2="260.5" x2="270.5"/>
+ <line y1="10" x1="280.5" y2="260.5" x2="280.5"/>
+ <line y1="10" x1="290.5" y2="260.5" x2="290.5"/>
+ <line y1="10" x1="300.5" y2="260.5" x2="300.5"/>
+ <line y1="10" x1="310.5" y2="260.5" x2="310.5"/>
+ <line y1="10" x1="320.5" y2="260.5" x2="320.5"/>
+ <line y1="10" x1="330.5" y2="260.5" x2="330.5"/>
+ <line y1="10" x1="340.5" y2="260.5" x2="340.5"/>
+ <line y1="10" x1="350.5" y2="260.5" x2="350.5"/>
+ <line y1="10" x1="360.5" y2="260.5" x2="360.5"/>
+ <line y1="10" x1="370.5" y2="260.5" x2="370.5"/>
+ <line y1="10" x1="380.5" y2="260.5" x2="380.5"/>
+ <line y1="10" x1="390.5" y2="260.5" x2="390.5"/>
+ <line y1="10" x1="400.5" y2="260.5" x2="400.5"/>
+ <line y1="10" x1="410.5" y2="260.5" x2="410.5"/>
+ <line y1="10" x1="420.5" y2="260.5" x2="420.5"/>
+ <line y1="10" x1="430.5" y2="260.5" x2="430.5"/>
+ <line y1="10" x1="440.5" y2="260.5" x2="440.5"/>
+ <line y1="10" x1="450.5" y2="260.5" x2="450.5"/>
+ <line y1="10" x1="460.5" y2="260.5" x2="460.5"/>
+ <line y1="10" x1="470.5" y2="260.5" x2="470.5"/>
+ </g-->
+ <!-- ====================================================================== -->
+ <!-- Now, test elementary transforms. For each transform, 3 markers are -->
+ <!-- placed where the user space is expected after transformations for the -->
+ <!-- origin (black) and the points in (20, 0) (blue) and (0, 20) (red). -->
+ <!-- Then, a blue line going from (0, 0) to (20, 0) is drawn and a red line -->
+ <!-- going from (0, 0) to (0, 20), after applying the elementary -->
+ <!-- transformation. If the test succeeds, the red line should join the -->
+ <!-- black marker to the red marker and the blue line the black marker to -->
+ <!-- the blue marker. -->
+ <!-- ====================================================================== -->
+ <g id="elementary-transforms-test" transform="translate(0, 10)">
+ <g id="elementary-transforms" transform="translate(-30, 0) scale(2.5, 2.5)">
+ <!-- Translate -->
+ <g transform="translate(50, 50)">
+ <rect x="0" y="0" width="20" height="2" fill="blue"/>
+ <rect x="0" y="0" width="2" height="20" fill="red"/>
+ </g>
+ <!-- Rotate -90 deg about (150, 70) -->
+ <g transform="translate(150, 70) rotate(-90)">
+ <rect x="0" y="0" width="20" height="2" fill="blue"/>
+ <rect x="0" y="0" width="2" height="20" fill="red"/>
+ </g>
+ </g>
+ <!-- elementary-transforms -->
+ <!-- Draw all the markers -->
+ <g id="elementary-transforms-test-markers" transform="translate(-30, 0) scale(2.5, 2.5)">
+ <!-- Translate -->
+ <text x="40" y="40">translate (50, 50)</text>
+ <rect x="48" y="48" width="5" height="5" fill="black"/>
+ <rect x="68" y="48" width="5" height="5" fill="blue"/>
+ <rect x="48" y="68" width="5" height="5" fill="red"/>
+ <!-- Rotate -90 deg about (150, 70) -->
+ <text x="140" y="40">rotate(-90)</text>
+ <rect x="148" y="68" width="5" height="5" fill="black"/>
+ <rect x="148" y="48" width="5" height="5" fill="blue"/>
+ <rect x="168" y="68" width="5" height="5" fill="red"/>
+ </g>
+ <!-- elementary-transforms-test-markers -->
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-03-t-isvalid.html
new file mode 100644
index 0000000000..2d27a14c7f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-03-t-isvalid.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-trans-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-trans-03-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-trans-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(0, 30)" font-size="12">
+ <!-- ====================================================================== -->
+ <!-- Now, test elementary transforms. For each transform, 3 markers are -->
+ <!-- placed where the user space is expected after transformations for the -->
+ <!-- origin (black) and the points in (20, 0) (blue) and (0, 20) (red). -->
+ <!-- Then, a blue line going from (0, 0) to (20, 0) is drawn and a red line -->
+ <!-- going from (0, 0) to (0, 20), after applying the elementary -->
+ <!-- transformation. If the test succeeds, the red line should join the -->
+ <!-- black marker to the red marker and the blue line the black marker to -->
+ <!-- the blue marker. -->
+ <!-- ====================================================================== -->
+ <g id="elementary-transforms-test" transform="translate(0, 10)">
+ <g id="elementary-transforms" transform="translate(-560, 0) scale(2.5, 2.5)">
+ <!-- Skew X -->
+ <g transform="translate(250, 50) skewX(45)">
+ <rect x="0" y="0" width="20" height="2" fill="blue"/>
+ <rect x="0" y="0" width="2" height="20" fill="red"/>
+ </g>
+ <!-- Skew Y -->
+ <g transform="translate(350, 50) skewY(45)">
+ <rect x="0" y="0" width="20" height="2" fill="blue"/>
+ <rect x="0" y="0" width="2" height="20" fill="red"/>
+ </g>
+ </g>
+ <!-- elementary-transforms -->
+ <!-- Draw all the markers -->
+ <g id="elementary-transforms-test-markers" transform="translate(-560, 0) scale(2.5, 2.5)">
+ <!-- Skew X -->
+ <text x="240" y="40">skew x (45)</text>
+ <rect x="248" y="48" width="5" height="5" fill="black"/>
+ <rect x="268" y="48" width="5" height="5" fill="blue"/>
+ <rect x="268" y="68" width="5" height="5" fill="red"/>
+ <!-- Skew Y -->
+ <text x="340" y="40">skew y (45)</text>
+ <rect x="348" y="48" width="5" height="5" fill="black"/>
+ <rect x="368" y="68" width="5" height="5" fill="blue"/>
+ <rect x="348" y="68" width="5" height="5" fill="red"/>
+ </g>
+ <!-- elementary-transforms-test-markers -->
+ </g>
+ <!-- nested-transforms test -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-04-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-04-t-isvalid.html
new file mode 100644
index 0000000000..e3ba8cdd74
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-04-t-isvalid.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-trans-04-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-trans-04-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-trans-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(0, 30)" font-size="12">
+ <!-- ====================================================================== -->
+ <!-- Now, test elementary transforms. For each transform, 3 markers are -->
+ <!-- placed where the user space is expected after transformations for the -->
+ <!-- origin (black) and the points in (20, 0) (blue) and (0, 20) (red). -->
+ <!-- Then, a blue line going from (0, 0) to (20, 0) is drawn and a red line -->
+ <!-- going from (0, 0) to (0, 20), after applying the elementary -->
+ <!-- transformation. If the test succeeds, the red line should join the -->
+ <!-- black marker to the red marker and the blue line the black marker to -->
+ <!-- the blue marker. -->
+ <!-- ====================================================================== -->
+ <g id="elementary-transforms-test">
+ <g id="elementary-transforms" transform="translate(60, 45) scale(2.5, 2.5)">
+ <!-- Scale 2 -->
+ <g transform="translate(40, 10) scale(2)">
+ <rect x="0" y="0" width="20" height="1" fill="blue"/>
+ <rect x="0" y="0" width="1" height="20" fill="red"/>
+ </g>
+ </g>
+ <!-- elementary-transforms -->
+ <!-- Draw all the markers -->
+ <g id="elementary-transforms-test-markers" transform="translate(-364, -230) scale(2.5, 2.5)">
+ <!-- Scale 2 -->
+ <text x="200" y="110">scale (2)</text>
+ <rect x="208" y="118" width="5" height="5" fill="black"/>
+ <rect x="248" y="118" width="5" height="5" fill="blue"/>
+ <rect x="208" y="158" width="5" height="5" fill="red"/>
+ </g>
+ <!-- elementary-transforms-test-markers -->
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-05-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-05-t-isvalid.html
new file mode 100644
index 0000000000..3404a41222
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-05-t-isvalid.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-trans-05-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-trans-05-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-trans-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(0, 30)" font-size="12">
+ <!-- ====================================================================== -->
+ <!-- Now, test elementary transforms. For each transform, 3 markers are -->
+ <!-- placed where the user space is expected after transformations for the -->
+ <!-- origin (black) and the points in (20, 0) (blue) and (0, 20) (red). -->
+ <!-- Then, a blue line going from (0, 0) to (20, 0) is drawn and a red line -->
+ <!-- going from (0, 0) to (0, 20), after applying the elementary -->
+ <!-- transformation. If the test succeeds, the red line should join the -->
+ <!-- black marker to the red marker and the blue line the black marker to -->
+ <!-- the blue marker. -->
+ <!-- ====================================================================== -->
+ <g id="nested-transforms-test">
+ <g id="nested-transforms" transform="translate(-90, -450)">
+ <!-- scale/translate in transform attribute -->
+ <g transform="scale(7.5, 5) translate(16.666667, 105)">
+ <rect x="0" y="0" width="20" height="1" fill="blue"/>
+ <rect x="0" y="0" width="0.67" height="20" fill="red"/>
+ </g>
+ </g>
+ <!-- nested-transforms -->
+ <g id="nested-transforms-test-markers" transform="translate(-90, -450) scale(2.5, 2.5)">
+ <!-- scale and translate -->
+ <text x="40" y="200">scale(25, 95) - translate(2, 2)</text>
+ <rect x="48" y="208" width="5" height="5" fill="black"/>
+ <rect x="108" y="208" width="5" height="5" fill="blue"/>
+ <rect x="48" y="248" width="5" height="5" fill="red"/>
+ </g>
+ <!-- nested-transforms-test-markers -->
+ </g>
+ <!-- nested-transforms test -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-06-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-06-t-isvalid.html
new file mode 100644
index 0000000000..5b784d7531
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-06-t-isvalid.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-trans-06-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-trans-06-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-trans-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(0, 30)" font-size="12">
+ <g id="nested-transforms-test">
+ <g id="nested-transforms">
+ <!-- scale/translate in successive elements -->
+ <g transform="translate(-102, -450)">
+ <g transform="scale(7.5, 5)">
+ <g transform="translate(16.666667, 105)">
+ <rect x="0" y="0" width="20" height="1" fill="blue"/>
+ <rect x="0" y="0" width="0.67" height="20" fill="red"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <!-- nested-transforms -->
+ <g id="nested-transforms-test-markers" transform="translate(-600, -450) scale(2.5, 2.5)">
+ <!-- scale then translate -->
+ <text x="248" y="200">scale(25, 95) then translate(2, 2)</text>
+ <rect x="248" y="208" width="5" height="5" fill="black"/>
+ <rect x="308" y="208" width="5" height="5" fill="blue"/>
+ <rect x="248" y="248" width="5" height="5" fill="red"/>
+ </g>
+ <!-- nested-transforms-test-markers -->
+ </g>
+ <!-- nested-transforms test -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-07-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-07-t-isvalid.html
new file mode 100644
index 0000000000..183b8c7eb0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-07-t-isvalid.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-trans-07-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-trans-07-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-trans-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g id="elementary-transforms-test">
+ <g id="object_1" transform="rotate(30) translate(200, 100)">
+ <rect x="0" y="0" width="150" height="5" fill="green"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="65" y="185" font-size="20">rotate+translate</text>
+
+ <g id="object_2" transform="translate(200,100) rotate(30)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="150" y="100" font-size="20">translate+rotate</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-08-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-08-t-isvalid.html
new file mode 100644
index 0000000000..5cdbd2c2e7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-08-t-isvalid.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-trans-08-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-trans-08-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-trans-08-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g id="elementary-transforms-test">
+ <g id="object_1" transform="skewX(45) skewY(45)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ <rect x="150" y="0" width="5" height="50" fill="black"/>
+ <rect x="0" y="50" width="150" height="5" fill="black"/>
+ <ellipse rx="40" ry="15" cx="75" cy="25" fill="purple"/>
+ </g>
+ <text x="30" y="16" font-size="12">skewX(45)+skewY(45)</text>
+
+ <g id="object_2" transform="translate(200,0) skewY(45) skewX(45)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ <rect x="150" y="0" width="5" height="50" fill="black"/>
+ <rect x="0" y="50" width="150" height="5" fill="black"/>
+ <ellipse rx="40" ry="15" cx="75" cy="25" fill="purple"/>
+ </g>
+ <text x="230" y="16" font-size="12">skewY(45)+skewX(45)</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-09-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-09-t-isvalid.html
new file mode 100644
index 0000000000..8a38754d8f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-09-t-isvalid.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-trans-09-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-trans-09-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-trans-09-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g id="elementary-transforms-test">
+
+ <g transform="matrix(0 0 0 0 0 0)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="6" y="20" font-size="20">matrix(0 0 0 0 0 0)</text>
+
+ <g transform="matrix(1 0 0 1 100 100)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="100" y="100" font-size="20">matrix(1 0 0 1 100 100)</text>
+
+ <g transform="matrix(1.5 0 0 1.5 70 60)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="70" y="60" font-size="20">matrix(1.5 0 0 1.5 70 60)</text>
+
+ <g transform="matrix(1 0 0.5 1 30 170)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="30" y="170" font-size="20">matrix(1 0 0.5 1 30 170)</text>
+
+ <g transform="matrix(1 0.5 0 1 100 200)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="100" y="200" font-size="20">matrix(1 0.5 0 1 100 200)</text>
+
+ <g transform="matrix(0 1 -1 0 450 0)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="275" y="30" font-size="20">matrix(0 1 -1 0 450 0)</text>
+
+ <g transform="matrix(1 0.8 0.8 1 300 220)">
+ <rect x="0" y="0" width="150" height="5" fill="blue"/>
+ <rect x="0" y="0" width="5" height="50" fill="red"/>
+ </g>
+ <text x="230" y="220" font-size="20">matrix(1 0.8 0.8 1 300 220)</text>
+
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-10-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-10-f-isvalid.html
new file mode 100644
index 0000000000..1762d21fd1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-10-f-isvalid.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-trans-10-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-trans-10-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-trans-10-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g transform="translate(40 20)" fill="red">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ <g transform="matrix(1 0 0 1 40 20)" fill="black" stroke="black">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ <g transform="translate(0 100)">
+ <g transform="matrix(1 0 0 1 40 20)" fill="red">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ <g transform="translate(40 20)" fill="black" stroke="black">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-11-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-11-f-isvalid.html
new file mode 100644
index 0000000000..6b95f8b969
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-11-f-isvalid.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-trans-11-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-trans-11-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-trans-11-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g transform="scale(1.2 2.5)" fill="red">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ <g transform="matrix(1.2 0 0 2.5 0 0)" fill="black" stroke="black">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ <g transform="translate(0 150)">
+ <g transform="matrix(1.2 0 0 2.5 0 0)" fill="red">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ <g transform="scale(1.2 2.5)" fill="black" stroke="black">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-12-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-12-f-isvalid.html
new file mode 100644
index 0000000000..ce8f5e4474
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-12-f-isvalid.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-trans-12-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-trans-12-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-trans-12-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g transform="translate(200)">
+ <g transform="rotate(90)" fill="red">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ <g transform="matrix(0 1 -1 0 0 0)" fill="black" stroke="black">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ </g>
+ <g transform="translate(310)">
+ <g transform="matrix(0 1 -1 0 0 0)" fill="red">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ <g transform="rotate(90)" fill="black" stroke="black">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-13-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-13-f-isvalid.html
new file mode 100644
index 0000000000..25b9a0fdf1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-13-f-isvalid.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-trans-13-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-trans-13-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-trans-13-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g transform="skewX(45)" fill="red">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ <g transform="matrix(1 0 1 1 0 0)" fill="black" stroke="black">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ <g transform="translate(0 150)">
+ <g transform="matrix(1 0 1 1 0 0)" fill="red">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ <g transform="skewX(45)" fill="black" stroke="black">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-14-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-14-f-isvalid.html
new file mode 100644
index 0000000000..9b663d0237
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-trans-14-f-isvalid.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-trans-14-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-trans-14-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-trans-14-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g transform="scale(0.75) rotate(-20)">
+ <g transform="skewY(45)" fill="red">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ <g transform="matrix(1 1 0 1 0 0)" fill="black" stroke="black">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ <g transform="translate(0 150)">
+ <g transform="matrix(1 1 0 1 0 0)" fill="red">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ <g transform="skewY(45)" fill="black" stroke="black">
+ <path d="M 20 20 L 70 20 L 45 60 z" />
+ <ellipse cx="120" cy="35" rx="30" ry="10" />
+ <text x="160" y="40">Filler Text</text>
+ <rect x="250" y="20" width="30" height="50" />
+ <line x1="310" y1="20" x2="350" y2="70" stroke-width="5" />
+ </g>
+ </g>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-01-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-01-f-novalid.html
new file mode 100644
index 0000000000..aabfb99619
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-01-f-novalid.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-transformattr-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-transformattr-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-transformattr-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g transform="translate(50 50)rotate(45)skewX(15)scale(0.8)">
+ <rect x="0" y="0" width="100" height="100" fill="red" />
+ </g>
+ <g transform="translate(50 50),rotate(45),skewX(15),scale(0.8)">
+ <rect x="0" y="0" width="100" height="100" stroke="black"/>
+ </g>
+ <g transform="translate(50 50)rotate(45)skewX(15)scale(0.8)">
+ <rect x="125" y="125" width="100" height="100" fill="red" />
+ </g>
+ <g transform="translate(50 50)&#x0020;rotate(45)&#x0020;&#x0020;skewX(15)&#x0020;&#x0020;&#x0020;&#x0020;&#x0020;scale(0.8)">
+ <rect x="125" y="125" width="100" height="100" stroke="black"/>
+ </g>
+ <g transform="translate(50 50)rotate(45)skewX(15)scale(0.8)">
+ <rect x="150" y="-75" width="100" height="100" fill="red" />
+ </g>
+ <g transform="translate(50 50)&#x0009;rotate(45)&#x0009;&#x0009;skewX(15)&#x0009;&#x0009;&#x0009;&#x0009;&#x0009;scale(0.8)">
+ <rect x="150" y="-75" width="100" height="100" stroke="black"/>
+ </g>
+ <g transform="translate(50 50)rotate(45)skewX(15)scale(0.8)">
+ <rect x="300" y="-150" width="100" height="100" fill="red" />
+ </g>
+ <g transform="translate(50 50)&#x000D;rotate(45)&#x000D;&#x000D;skewX(15)&#x000D;&#x000D;&#x000D;&#x000D;&#x000D;scale(0.8)">
+ <rect x="300" y="-150" width="100" height="100" stroke="black"/>
+ </g>
+ <g transform="translate(50 50)rotate(45)skewX(15)scale(0.8)">
+ <rect x="400" y="-325" width="100" height="100" fill="red" />
+ </g>
+ <g transform="translate(50 50)&#x000A;rotate(45)&#x000A;&#x000A;skewX(15)&#x000A;&#x000A;&#x000A;&#x000A;&#x000A;scale(0.8)">
+ <rect x="400" y="-325" width="100" height="100" stroke="black"/>
+ </g>
+ <g transform="translate(50 50)rotate(45)skewX(15)scale(0.8)">
+ <rect x="500" y="-200" width="100" height="100" fill="red" />
+ </g>
+ <g transform="translate(50 50),rotate(45)&#x0020;&#x0009;skewX(15)&#x000D;&#x000A;scale(0.8)">
+ <rect x="500" y="-200" width="100" height="100" stroke="black"/>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-02-f-isvalid.html
new file mode 100644
index 0000000000..1c2c8f10d3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-02-f-isvalid.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-transformattr-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-transformattr-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-transformattr-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g transform="translate(150)">
+ <g transform="translate(-10,-20) scale(2) rotate(45) translate(5,10)">
+ <rect width="50" height="50" fill="red" />
+ <circle cx="50" cy="50" r="25" fill="red" />
+ <line x1="50" y1="50" x2="100" y2="100" stroke="red" stroke-width="10" />
+ </g>
+ <g transform="translate(-10,-20)">
+ <g transform="scale(2)">
+ <g transform="rotate(45)">
+ <g transform="translate(5,10)">
+ <rect width="50" height="50" />
+ <circle cx="50" cy="50" r="25" />
+ <line x1="50" y1="50" x2="100" y2="100" stroke="black" stroke-width="10" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <g transform="translate(200)">
+ <g transform="translate(-10,-20)">
+ <g transform="scale(2)">
+ <g transform="rotate(45)">
+ <g transform="translate(5,10)">
+ <rect width="50" height="50" fill="red" />
+ <circle cx="50" cy="50" r="25" fill="red" />
+ <line x1="50" y1="50" x2="100" y2="100" stroke="red" stroke-width="10" />
+ </g>
+ </g>
+ </g>
+ </g>
+ <g transform="translate(-10,-20) scale(2) rotate(45) translate(5,10)">
+ <rect width="50" height="50" />
+ <circle cx="50" cy="50" r="25" />
+ <line x1="50" y1="50" x2="100" y2="100" stroke="black" stroke-width="10" />
+ </g>
+ </g>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-03-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-03-f-isvalid.html
new file mode 100644
index 0000000000..7e41124a62
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-03-f-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-transformattr-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-transformattr-03-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-transformattr-03-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="10" width="100" height="200" fill="red" />
+ <rect transform="translate(10)" width="100" height="200" />
+ <ellipse cx="170" cy="100" rx="50" ry="100" fill="red" />
+ <ellipse transform="translate(10)" cx="160" cy="100" rx="50" ry="100" />
+ <line x1="230" x2="330" y1="10" y2="200" stroke="red" stroke-width="10" />
+ <line transform="translate(10)" x1="220" x2="320" y1="10" y2="200" stroke="black" stroke-width="10" />
+ <path d="M 340 0 L 440 0 390 200 Z" fill="red" />
+ <path transform="translate(10)" d="M 330 0 L 430 0 380 200 Z" fill="black" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-04-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-04-f-isvalid.html
new file mode 100644
index 0000000000..70f5e39950
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-04-f-isvalid.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-transformattr-04-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-transformattr-04-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-transformattr-04-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect width="100" height="200" fill="red" />
+ <rect transform="scale(2)" width="50" height="100" />
+ <ellipse cx="160" cy="100" rx="50" ry="100" fill="red" />
+ <ellipse transform="scale(2)" cx="80" cy="50" rx="25" ry="50" />
+ <line x1="220" x2="320" y1="10" y2="200" stroke="red" stroke-width="10" />
+ <line transform="scale(2)" x1="110" x2="160" y1="5" y2="100" stroke="black" stroke-width="5" />
+ <path d="M 330 0 L 430 0 380 200 Z" fill="red" />
+ <path transform="scale(2)" d="M 165 0 L 215 0 190 100 Z" fill="black" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-05-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-05-f-isvalid.html
new file mode 100644
index 0000000000..8f41cb385e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-transformattr-05-f-isvalid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-transformattr-05-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-transformattr-05-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-transformattr-05-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(50 15)">
+ <g transform="matrix(0.96592582628906829 0.25881904510252076 -0.25881904510252076 0.96592582628906829 0 0)">
+ <rect x="10" width="100" height="200" fill="red" />
+ <ellipse cx="170" cy="100" rx="50" ry="100" fill="red" />
+ <line x1="230" x2="330" y1="10" y2="200" stroke="red" stroke-width="10" />
+ <path d="M 340 0 L 440 0 390 200 Z" fill="red" />
+ </g>
+ <g transform="rotate(15)">
+ <rect transform="translate(10)" width="100" height="200" />
+ <ellipse transform="translate(10)" cx="160" cy="100" rx="50" ry="100" />
+ <line transform="translate(10)" x1="220" x2="320" y1="10" y2="200" stroke="black" stroke-width="10" />
+ <path transform="translate(10)" d="M 330 0 L 430 0 380 200 Z" fill="black" />
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-units-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-units-01-b-isvalid.html
new file mode 100644
index 0000000000..f8a492610b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-units-01-b-isvalid.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-units-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-units-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-units-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="14">
+ <!-- ==================================================================== -->
+ <!-- The following gradients will be used to fill a rectangle with the -->
+ <!-- following geometry in User space: x=0, y=0, width=50 height=20 -->
+ <!-- The gradient vector, in linearBoundingBox, is defined as: (0%, 0%) -->
+ <!-- to (100%, 0%). -->
+ <!-- The gradient vector, in linearBoundingBoxFraction, is defined as: -->
+ <!-- (0, 0) to (1, 0), which is equivalent. -->
+ <!-- According to the spec, for our rectangle, this corresponds to the -->
+ <!-- following user space coordinates: -->
+ <!-- (0%, 0%) becomes (0, 0) and (100%, 0%) becomes (20, 0) -->
+ <!-- These values are used to define the linearUserSpace gradient. -->
+ <!-- If the test succeeds, all the gradient should fill the rectangles -->
+ <!-- the same way -->
+ <!-- ==================================================================== -->
+ <linearGradient id="linearBoundingBoxPercentage" gradientUnits="objectBoundingBox" x1="0%" y1="0%" x2="100%" y2="0%">
+ <stop stop-color="fuchsia" offset="0"/>
+ <stop stop-color="blue" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearBoundingBoxFraction" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="0">
+ <stop stop-color="fuchsia" offset="0"/>
+ <stop stop-color="blue" offset="1"/>
+ </linearGradient>
+ <linearGradient id="linearUserSpace" gradientUnits="userSpaceOnUse" x1="0" y1="0" x2="50" y2="0">
+ <stop stop-color="fuchsia" offset="0"/>
+ <stop stop-color="blue" offset="1"/>
+ </linearGradient>
+ <!-- Draw Text Comment -->
+ <text x="30" y="30">Bounding box relative coordinates (percentage and fraction)</text>
+ <g transform="translate(30, 40)">
+ <rect x="0" y="0" width="50" height="20" fill="url(#linearBoundingBoxPercentage)"/>
+ <rect x="0" y="0" width="50" height="20" transform="translate(0, 20)" fill="url(#linearBoundingBoxFraction)"/>
+ <rect x="0" y="0" width="50" height="20" transform="translate(0, 40)" fill="url(#linearUserSpace)"/>
+ <line x1="0" y1="20" x2="50" y2="20" stroke="#cccccc" stroke-width="1"/>
+ <line x1="0" y1="40" x2="50" y2="40" stroke="#cccccc" stroke-width="1"/>
+ <text x="60" y="15">Percentage</text>
+ <text x="60" y="35">Fraction</text>
+ <text x="60" y="55">User Space</text>
+ </g>
+ <!-- ==================================================================== -->
+ <!-- The following gradients will be used to fill a rectangle with the -->
+ <!-- following geometry in User space: x=0, y=0, width=60 height=60 -->
+ <!-- The radial gradient outmost circle, in radialBoundingBox, is defined -->
+ <!-- as: cx=25% cy=25% r=25% -->
+ <!-- The radial gradient outmost circle, in radialBoundingBoxFraction, is -->
+ <!-- defined as: cx=0.25 cy=0.25 and r=0.25 -->
+ <!-- These two definition, for our rectangle, should be identical to the -->
+ <!-- following radial gradient outmost circle, in radialUserSpace: -->
+ <!-- cx=15 cy=15 r=15 -->
+ <!-- ==================================================================== -->
+ <radialGradient id="radialBoundingBoxPercentage" gradientUnits="objectBoundingBox" cx="25%" cy="25%" r="25%" fx="25%" fy="25%">
+ <stop stop-color="fuchsia" offset="0"/>
+ <stop stop-color="blue" offset="1"/>
+ </radialGradient>
+ <radialGradient id="radialBoundingBoxFraction" gradientUnits="objectBoundingBox" cx="0.25" cy="0.25" r="0.25" fx="0.25" fy="0.25">
+ <stop stop-color="fuchsia" offset="0"/>
+ <stop stop-color="blue" offset="1"/>
+ </radialGradient>
+ <radialGradient id="radialUserSpace" gradientUnits="userSpaceOnUse" cx="15" cy="15" r="15" fx="15" fy="15">
+ <stop stop-color="fuchsia" offset="0"/>
+ <stop stop-color="blue" offset="1"/>
+ </radialGradient>
+ <!-- Draw Text Comment -->
+ <text x="30" y="130">Bounding box relative length (percentage and fraction)</text>
+ <g transform="translate(30, 140)">
+ <rect x="0" y="0" width="60" height="60" fill="url(#radialBoundingBoxPercentage)"/>
+ <rect x="0" y="0" width="60" height="60" transform="translate(61, 0)" fill="url(#radialBoundingBoxFraction)"/>
+ <rect x="0" y="0" width="60" height="60" transform="translate(122, 0)" fill="url(#radialUserSpace)"/>
+ <text x="0" y="73">Percent.</text>
+ <text x="61" y="73">Fraction</text>
+ <text x="122" y="73">User Space</text>
+ </g>
+ <!-- ==================================================================== -->
+ <!-- The following patterns will be used to fill a rectangle, with the -->
+ <!-- following geometry in User space: x=0, y=0, width=50 height=30 -->
+ <!-- The pattern tile, in patterBoundingBoxPercentage, is defined as: -->
+ <!-- x=25% y=25% width=50% height=50% -->
+ <!-- The pattern tile, in patternBoundingBoxFraction, is defined as: -->
+ <!-- x=0.25 y=0.25 width=0.50 height=0.50 -->
+ <!-- For our test rectangle, both correspond to the following User space -->
+ <!-- coordinates: x=12.5 y=7.5 width=25 height=15 -->
+ <!-- These coordinates are use to define the patternUserSpace tile -->
+ <!-- ==================================================================== -->
+ <pattern id="patternBoundingBoxPercentage" patternUnits="objectBoundingBox" patternContentUnits="objectBoundingBox" x="25%" y="25%" width="50%" height="50%">
+ <circle cx="0.50" cy="0.50" r="0.25" fill="fuchsia"/>
+ <rect x="0.4" y="0.4" width=".2" height=".2" fill="blue"/>
+ </pattern>
+ <pattern id="patternBoundingBoxFraction" patternUnits="objectBoundingBox" patternContentUnits="objectBoundingBox" x="0.25" y="0.25" width="0.50" height="0.50">
+ <circle cx="0.50" cy="0.50" r="0.25" fill="fuchsia"/>
+ <rect x="0.4" y="0.4" width=".2" height=".2" fill="blue"/>
+ </pattern>
+ <pattern id="patternUserSpace" patternUnits="userSpaceOnUse" patternContentUnits="userSpaceOnUse" x="12.5" y="7.5" width="25" height="15">
+ <circle id="patternContent" cx="25" cy="15" r="10" fill="fuchsia"/>
+ <rect x="20" y="12" width="10" height="6" fill="blue"/>
+ </pattern>
+ <!-- Draw Text Comment -->
+ <text x="30" y="240">Bounding box relative width/height (percentage and fraction)</text>
+ <g transform="translate(30, 250)">
+ <rect x="0" y="0" width="50" height="30" fill="url(#patternBoundingBoxPercentage)" stroke="black"/>
+ <rect x="0" y="0" width="50" height="30" transform="translate(150, 0)" fill="url(#patternBoundingBoxFraction)" stroke="black"/>
+ <rect x="0" y="0" width="50" height="30" transform="translate(300, 0)" fill="url(#patternUserSpace)" stroke="black"/>
+ <text x="60" y="20">Percentage</text>
+ <text x="210" y="20">Fraction</text>
+ <text x="360" y="20">User Space</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-units-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-units-02-b-isvalid.html
new file mode 100644
index 0000000000..7981e2cd04
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-units-02-b-isvalid.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-units-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-units-02-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-units-02-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="13pt">
+ <!-- ==================================================================== -->
+ <!-- First test, converting CSS coordinates to user space. -->
+ <!-- If implemented properly, the pink marker should appear on top of -->
+ <!-- the black marker. -->
+ <!-- ==================================================================== -->
+ <!-- Draw Text Comment -->
+ <text x="60" y="35">CSS pixel coordinate to user space conversion</text>
+ <g transform="translate(5, 0) scale(4)">
+ <!-- Draw marker using user space units -->
+ <circle cx="7.5" cy="7.5" r="2.5" fill="black"/>
+ <!-- Draw CSS marker using px units -->
+ <circle cx="7.5px" cy="7.5px" r="1.5px" fill="fuchsia"/>
+ </g>
+ <!-- ==================================================================== -->
+ <!-- Same test, using percentage values for the coordinates -->
+ <!-- ==================================================================== -->
+ <!-- Draw Text Comment -->
+ <text x="60" y="85">Percentage coordinates to user space conversion</text>
+ <g transform="translate(5, 50) scale(4)">
+ <!-- Draw marker using user space units -->
+ <circle cx="7.5" cy="7.5" r="2.5" fill="black"/>
+ <!-- Draw marker using percentages: 7.5 = 1.563% of 480 (cx) -->
+ <!-- Draw marker using percentages: 7.5 = 2.083% of 360 (cy) -->
+ <circle cx="1.563%" cy="2.083%" r=".3535%" fill="fuchsia"/>
+ </g>
+ <!-- ==================================================================== -->
+ <!-- Second test, converting CSS width and height to user space. -->
+ <!-- If implemented properly, the link marker should appear bellow the -->
+ <!-- black one and have the same size -->
+ <!-- ==================================================================== -->
+ <!-- Draw Text Comment -->
+ <text x="60" y="140">CSS width/height to user space conversion</text>
+ <g transform="translate(30, 115) scale(4)">
+ <!-- Draw marker using user space units -->
+ <rect x="-5" y="0" width="10" height="5" fill="black"/>
+ <!-- Draw CSS marker using px units -->
+ <rect x="-5" y="5" width="10px" height="5px" fill="fuchsia"/>
+ </g>
+ <!-- ==================================================================== -->
+ <!-- Same test, using percentage values for the length -->
+ <!-- ==================================================================== -->
+ <!-- Draw Text Comment -->
+ <text x="60" y="200">Percentage width/height to user space conversion</text>
+ <g transform="translate(30, 175) scale(4)">
+ <!-- Draw marker using user space units -->
+ <rect x="-5" y="0" width="10" height="5" fill="black"/>
+ <!-- Draw CSS marker using percentages: 5*2 = 10 = 2.083% of 480 -->
+ <!-- 2.5*2 = 5 = 1.389% of 360 -->
+ <rect x="-5" y="5" width="2.083%" height="1.389%" fill="fuchsia"/>
+ </g>
+ <!-- ==================================================================== -->
+ <!-- Third test, converting CSS arbitrary length to user space . -->
+ <!-- If implemented properly, the three circles which are side by side -->
+ <!-- should have the same radius -->
+ <!-- ==================================================================== -->
+ <!-- Draw Text Comment -->
+ <text x="140" y="265">CSS and percentage length conversion</text>
+ <g transform="translate(30, 260) skewX(45) scale(4)">
+ <!-- Draw marker using user space units -->
+ <circle cx="0" cy="0" r="3.536" fill="black"/>
+ <!-- Draw CSS marker using px units. -->
+ <circle cx="10" cy="0" r="3.536px" fill="fuchsia"/>
+ <!-- Draw marker using percentages. This should yield a value of 3.536 -->
+ <!-- in user space. 3.536 = .8334% of 424.268px -->
+ <circle cx="20" cy="0" r=".8334%" fill="green"/>
+ <!-- Draw control lines at the top and bottom of the circles -->
+ <line x1="-3.536" y1="-3.536" x2="25" y2="-3.536" fill="none" stroke="#cccccc" stroke-width=".5"/>
+ <line x1="-3.536" y1="3.536" x2="25" y2="3.536" fill="none" stroke="#cccccc" stroke-width=".5"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-units-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-units-03-b-isvalid.html
new file mode 100644
index 0000000000..4a855b4fff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-units-03-b-isvalid.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-units-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-units-03-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-units-03-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g id="viewport-initial-size-test">
+ <!-- ====================================================================== -->
+ <!-- First fill a rectangle that is bigger than the defined viewport ====== -->
+ <!-- ====================================================================== -->
+ <rect x="0px" y="0px" width="2000px" height="2000px" fill="red"/>
+ <!-- ====================================================================== -->
+ <!-- This second rectangle should cover the previous one, so none of the == -->
+ <!-- red should show if the initial viewport has the requested size == -->
+ <!-- ====================================================================== -->
+ <rect x="0px" y="0px" width="480px" height="360px" fill="white"/>
+ </g>
+ <!-- viewport-initial-size-test -->
+ <!-- Title -->
+ <text x="125" y="20" fill="black" font-size="12" font-family="Arial">Initial viewport and CSS units test</text>
+ <g id="units-test" fill="black" font-size="10pt" transform="translate(0, 60)">
+ <!-- ====================================================================== -->
+ <!-- Now, draw rectangles using the various unit specifiers -->
+ <!-- ====================================================================== -->
+ <!-- User Space -->
+ <text x="20" y="18">200</text>
+ <text x="230" y="20">User space units (no specifier)</text>
+ <rect x="20" y="20" width="200" height="1"/>
+ <!-- ================== -->
+ <!-- Relative CSS Units -->
+ <!-- ================== -->
+ <!-- Pixels : Should correspond to User Space, because the initial user -->
+ <!-- coordinate is such that one user space unit equals one pixel in -->
+ <!-- viewport. -->
+ <text x="20" y="38">200 px</text>
+ <text x="230" y="40">Pixels (px)</text>
+ <rect x="20" y="40" width="200px" height="1"/>
+ <!-- Font size (em). Should be equal to 200pt because current font's -->
+ <!-- point size is 10pt -->
+ <text x="20" y="58">20 em = 200 px (font-size=10px)</text>
+ <text x="230" y="60">Relative to font size (em)</text>
+ <g font-size="10px">
+ <rect x="20" y="60" width="20em" height="1"/>
+ </g>
+ <!-- X-Height (ex). With a 10px font-size, x-height is about 5px, so -->
+ <!-- ex units would be about 200px -->
+ <text x="20" y="78">40 ex</text>
+ <text x="230" y="80">Relative to font x-height (ex)</text>
+ <g font-size="10px">
+ <rect x="20" y="80" width="40ex" height="1"/>
+ </g>
+ <!-- ========================= -->
+ <!-- Percentage -->
+ <!-- ========================= -->
+ <!-- 1% = 4.8px because viewport is 480px -->
+ <text x="20" y="98">41.67% = 200 px</text>
+ <text x="230" y="100">Percentage (%)</text>
+ <rect x="20" y="100" width="41.67%" height="1"/>
+ <!-- ========================= -->
+ <!-- Absolute Length CSS Units -->
+ <!-- ========================= -->
+ <!-- Inches (should be the same length as following (cm) rect) -->
+ <text x="20" y="118">1 in</text>
+ <text x="230" y="120">Inches (in)</text>
+ <rect x="20" y="120" width="1in" height="1"/>
+ <!-- Centimeters(should be the same length as previous (in) rect) -->
+ <!-- 1in = 2.54cm -->
+ <text x="20" y="138">2.54 cm = 1 in</text>
+ <text x="230" y="140">Centimeters (cm)</text>
+ <rect x="20" y="140" width="2.54cm" height="1"/>
+ <!-- Millimeters (should be the same length as previous (cm) rect) -->
+ <!-- 10mm = 1cm -->
+ <text x="20" y="158">25.4 mm = 1 in</text>
+ <text x="230" y="160">Millimeters (mm)</text>
+ <rect x="20" y="160" width="25.4mm" height="1"/>
+ <!-- Points (should be the same length as (in) rect -->
+ <!-- 1pt = 1/72 in -->
+ <text x="20" y="178">72pt = 1 in</text>
+ <text x="230" y="180">Points (pt)</text>
+ <rect x="20" y="180" width="72pt" height="1"/>
+ <!-- Picas (should be the same length as previous (pt) rect) -->
+ <!-- 1pc = 12pt -->
+ <text x="20" y="198">6pc = 1 in</text>
+ <text x="230" y="200">Picas (pc)</text>
+ <rect x="20" y="200" width="6pc" height="1"/>
+ </g>
+ <!-- units-test -->
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/coords-viewattr-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/coords-viewattr-03-b-isvalid.html
new file mode 100644
index 0000000000..84555cacb6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/coords-viewattr-03-b-isvalid.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>coords-viewattr-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: coords-viewattr-03-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: coords-viewattr-03-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="20" x="240" y="28" text-anchor="middle">&lt;svg&gt; 'viewBox' attribute</text>
+
+ <g fill="lightblue" stroke="black">
+
+ <svg x="35" y="50" width="100" height="100" viewBox="0 0 200 200" overflow="visible">
+ <path fill-rule="evenodd" d="M20,20 Q180,20 180,180 Q20,180 20,20 Z M20,180 Q20,20 180,20 Q180,180 20,180 Z M100,40 L160,100 100,160 40,100 Z"/>
+ </svg>
+ <text font-size="13.5" x="85" y="155" text-anchor="middle" fill="black" stroke="none">viewBox="0 0 200 200"</text>
+ <text font-size="13.5" x="85" y="170" text-anchor="middle" fill="black" stroke="none">overflow="visible" </text>
+
+ <svg x="35" y="180" width="100" height="100" viewBox="0 0 200 200" overflow="hidden">
+ <path fill-rule="evenodd" d="M20,20 Q180,20 180,180 Q20,180 20,20 Z M20,180 Q20,20 180,20 Q180,180 20,180 Z M100,40 L160,100 100,160 40,100 Z"/>
+ </svg>
+ <text font-size="13.5" x="85" y="285" text-anchor="middle" fill="black" stroke="none">viewBox="0 0 200 200"</text>
+ <text font-size="13.5" x="85" y="300" text-anchor="middle" fill="black" stroke="none">overflow="hidden" </text>
+
+ <svg x="190" y="50" width="100" height="100" viewBox="0,0,200,200" overflow="visible">
+ <path fill-rule="evenodd" d="M20,20 Q180,20 180,180 Q20,180 20,20 Z M20,180 Q20,20 180,20 Q180,180 20,180 Z M100,40 L160,100 100,160 40,100 Z"/>
+ </svg>
+ <text font-size="13.5" x="240" y="155" text-anchor="middle" fill="black" stroke="none">viewBox="0,0,200,200"</text>
+ <text font-size="13.5" x="240" y="170" text-anchor="middle" fill="black" stroke="none">overflow="visible" </text>
+
+ <svg x="190" y="180" width="100" height="100" viewBox="0,0,200,200" overflow="hidden">
+ <path fill-rule="evenodd" d="M20,20 Q180,20 180,180 Q20,180 20,20 Z M20,180 Q20,20 180,20 Q180,180 20,180 Z M100,40 L160,100 100,160 40,100 Z"/>
+ </svg>
+ <text font-size="13.5" x="240" y="285" text-anchor="middle" fill="black" stroke="none">viewBox="0,0,200,200"</text>
+ <text font-size="13.5" x="240" y="300" text-anchor="middle" fill="black" stroke="none">overflow="hidden" </text>
+
+ <svg x="345" y="50" width="100" height="100" viewBox="0,0, 200, 200" overflow="visible">
+ <path fill-rule="evenodd" d="M20,20 Q180,20 180,180 Q20,180 20,20 Z M20,180 Q20,20 180,20 Q180,180 20,180 Z M100,40 L160,100 100,160 40,100 Z"/>
+ </svg>
+ <text font-size="13.5" x="395" y="155" text-anchor="middle" fill="black" stroke="none">viewBox="0,0, 200, 200"</text>
+ <text font-size="13.5" x="395" y="170" text-anchor="middle" fill="black" stroke="none">overflow="visible" </text>
+
+ <svg x="345" y="180" width="100" height="100" viewBox="0,0, 200, 200" overflow="hidden">
+ <path fill-rule="evenodd" d="M20,20 Q180,20 180,180 Q20,180 20,20 Z M20,180 Q20,20 180,20 Q180,180 20,180 Z M100,40 L160,100 100,160 40,100 Z"/>
+ </svg>
+ <text font-size="13.5" x="395" y="285" text-anchor="middle" fill="black" stroke="none">viewBox="0,0, 200, 200"</text>
+ <text font-size="13.5" x="395" y="300" text-anchor="middle" fill="black" stroke="none">overflow="hidden" </text>
+
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/extend-namespace-01-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/extend-namespace-01-f-novalid.html
new file mode 100644
index 0000000000..3f879566e6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/extend-namespace-01-f-novalid.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>extend-namespace-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: extend-namespace-01-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" onload="onLoad(evt)" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: extend-namespace-01-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g xmlns:bd="http://example.org/ExampleBusinessData" xmlns="http://www.w3.org/2000/svg">
+ <defs>
+ <script type="text/ecmascript">
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var bd_ns = "http://example.org/ExampleBusinessData";
+ function onLoad(evt){
+ // Get Document
+ var svgElement = evt.target;
+ var doc = svgElement.ownerDocument;
+
+ var resultsElement = doc.getElementById('results');
+ var gElement = doc.getElementById('PieParent');
+
+ // Count the number of regions.
+ RegionNodeList = doc.getElementsByTagNameNS(bd_ns, "Region");
+ regionCount = RegionNodeList.length;
+
+ // Get the region data.
+ RegionNameNodeList = doc.getElementsByTagNameNS(bd_ns, "RegionName");
+ RegionResultNodeList = doc.getElementsByTagNameNS(bd_ns, "RegionResult");
+
+ // Get the sum of the values of the regions.
+ var total = 0;
+ for (regionIndex = 0; regionIndex &lt; regionCount; regionIndex++)
+ total = total + Number(RegionResultNodeList.item(regionIndex).firstChild.nodeValue);
+
+ // Build a pie chart.
+ var startAngle = 0;
+ for (regionIndex = 0; regionIndex &lt; regionCount; regionIndex++) {
+ regionName = RegionNameNodeList.item(regionIndex).firstChild.nodeValue;
+ regionResult = Number(RegionResultNodeList.item(regionIndex).firstChild.nodeValue);
+
+ // Build the pie slice.
+ textElement = doc.createElementNS(svg_ns, "text");
+ textNode = doc.createTextNode(regionName);
+ textElement.appendChild(textNode);
+ pathElement = doc.createElementNS(svg_ns, "path");
+
+ endAngle = startAngle - regionResult * Math.PI * 2 / total;
+ dAttribute = "M240,170 L";
+ gray = Math.round(Number(255 * (regionIndex+2)) / (regionCount+2));
+ midAngle = (startAngle + endAngle) / 2;
+ textElement.setAttributeNS(null, "x", Math.round(240+65*Math.cos(midAngle)));
+ textElement.setAttributeNS(null, "y", Math.round(170+65*Math.sin(midAngle)));
+
+ dAttribute = dAttribute + Math.round(240+100*Math.cos(startAngle));
+ dAttribute = dAttribute + ',';
+ dAttribute = dAttribute + Math.round(170+100*Math.sin(startAngle));
+ dAttribute = dAttribute + ' A100,100 0 0,0 ';
+ dAttribute = dAttribute + Math.round(240+100*Math.cos(endAngle));
+ dAttribute = dAttribute + ',';
+ dAttribute = dAttribute + Math.round(170+100*Math.sin(endAngle));
+ dAttribute = dAttribute + 'z';
+ pathElement.setAttributeNS(null, "d", dAttribute);
+ pathElement.setAttributeNS(null, "fill", "rgb("+gray+","+gray+","+gray+")");
+ pathElement.setAttributeNS(null, "stroke", "black");
+ pathElement.setAttributeNS(null, "stroke-width", "2");
+
+ // Temporary, for CSS styling.
+ pathElement.setAttributeNS(null, "fill", "rgb("+gray+","+gray+","+gray+")");
+ pathElement.setAttributeNS(null, "stroke", "black");
+ pathElement.setAttributeNS(null, "stroke-width", "2");
+
+ if (regionIndex == 0) {
+ var firstSliceOffset = 30;
+ var transformValue = "translate(" +
+ Math.round(firstSliceOffset * Math.cos(midAngle)) +
+ "," +
+ Math.round(firstSliceOffset * Math.sin(midAngle)) +
+ ")";
+ pathElement.setAttributeNS(null, "transform", transformValue);
+ textElement.setAttributeNS(null, "transform", transformValue);
+ pathElement.setAttributeNS(null, "fill", "#FF6666");
+ pathElement.setAttributeNS(null, "stroke", "#0000FF");
+ pathElement.setAttributeNS(null, "stroke-width", "3");
+
+ // Temporary, for CSS styling.
+ pathElement.setAttributeNS(null, "fill", "#FF8888");
+ pathElement.setAttributeNS(null, "stroke", "#0000FF");
+ pathElement.setAttributeNS(null, "stroke-width", "3");
+
+ }
+ gElement.appendChild(pathElement);
+ gElement.appendChild(textElement);
+ startAngle = endAngle;
+ }
+ }
+ </script>
+ </defs>
+ <bd:Results id="results">
+ <bd:Region>
+ <bd:RegionName>East</bd:RegionName>
+ <bd:RegionResult>3</bd:RegionResult>
+ </bd:Region>
+ <bd:Region>
+ <bd:RegionName>North</bd:RegionName>
+ <bd:RegionResult>4</bd:RegionResult>
+ </bd:Region>
+ <bd:Region>
+ <bd:RegionName>West</bd:RegionName>
+ <bd:RegionResult>5</bd:RegionResult>
+ </bd:Region>
+ <bd:Region>
+ <bd:RegionName>Central</bd:RegionName>
+ <bd:RegionResult>3.2</bd:RegionResult>
+ </bd:Region>
+ <bd:Region>
+ <bd:RegionName>South</bd:RegionName>
+ <bd:RegionResult>6</bd:RegionResult>
+ </bd:Region>
+ </bd:Results>
+ <text font-family="Arial" font-size="16" text-anchor="middle" x="240" y="30">
+ Pie chart built from data in a different namespace.
+ </text>
+ </g>
+ <g id="PieParent" font-family="Arial" text-anchor="middle" font-size="14">
+ <desc>Pie chart is built within this 'g' element</desc>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-background-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-background-01-f-isvalid.html
new file mode 100644
index 0000000000..09a735da49
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-background-01-f-isvalid.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-background-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-background-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-background-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="ShiftBGAndBlur" filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400">
+ <desc>
+ This filter discards the SourceGraphic, if any, and just produces
+ a result consisting of the BackgroundImage shifted down 125 units
+ and then blurred.
+ </desc>
+ <feOffset in="BackgroundImage" dx="0" dy="125" />
+ <feGaussianBlur stdDeviation="8" />
+ </filter>
+ <filter id="ShiftBGAndBlur_WithSourceGraphic"
+ filterUnits="userSpaceOnUse" x="0" y="0" width="1200" height="400">
+ <desc>
+ This filter takes the BackgroundImage, shifts it down 125 units, blurs it,
+ and then renders the SourceGraphic on top of the shifted/blurred background.
+ </desc>
+ <feOffset in="BackgroundImage" dx="0" dy="125" />
+ <feGaussianBlur stdDeviation="8" result="blur" />
+ <feMerge>
+ <feMergeNode in="blur"/>
+ <feMergeNode in="SourceGraphic"/>
+ </feMerge>
+ </filter>
+ </defs>
+
+ <g transform="scale(0.4) translate(-200 300)">
+ <g enable-background="new" transform="translate(270,0)">
+ <desc>The second adds an empty 'g' element which invokes ShiftBGAndBlur.</desc>
+ <rect x="25" y="25" width="100" height="100" fill="fuchsia"/>
+ <g opacity=".5">
+ <circle cx="125" cy="75" r="45" fill="#D3FF00"/>
+ <polygon points="160,25 160,125 240,75" fill="#7A16FF"/>
+ </g>
+ <g filter="url(#ShiftBGAndBlur)"/>
+ <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
+ </g>
+
+ <g enable-background="new" transform="translate(540,0)">
+ <desc>The third invokes ShiftBGAndBlur on the inner group.</desc>
+ <rect x="25" y="25" width="100" height="100" fill="fuchsia"/>
+ <g filter="url(#ShiftBGAndBlur)" opacity=".5">
+ <circle cx="125" cy="75" r="45" fill="#D3FF00"/>
+ <polygon points="160,25 160,125 240,75" fill="#7A16FF"/>
+ </g>
+ <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
+ </g>
+
+ <g enable-background="new" transform="translate(810,0)">
+ <desc>The fourth invokes ShiftBGAndBlur on the triangle.</desc>
+ <rect x="25" y="25" width="100" height="100" fill="fuchsia"/>
+ <g opacity=".5">
+ <circle cx="125" cy="75" r="45" fill="#D3FF00"/>
+ <polygon points="160,25 160,125 240,75" fill="#7A16FF"
+ filter="url(#ShiftBGAndBlur)"/>
+ </g>
+ <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
+ </g>
+
+ <g enable-background="new" transform="translate(1080,0)">
+ <desc>The fifth invokes ShiftBGAndBlur_WithSourceGraphic on the triangle.</desc>
+ <rect x="25" y="25" width="100" height="100" fill="fuchsia"/>
+ <g opacity=".5">
+ <circle cx="125" cy="75" r="45" fill="#D3FF00"/>
+ <polygon points="160,25 160,125 240,75" fill="#7A16FF"
+ filter="url(#ShiftBGAndBlur_WithSourceGraphic)"/>
+ </g>
+ <rect x="5" y="5" width="260" height="260" fill="none" stroke="blue"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-blend-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-blend-01-b-isvalid.html
new file mode 100644
index 0000000000..3ed26e2858
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-blend-01-b-isvalid.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-blend-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-blend-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-blend-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="9" transform="scale(3)">
+ <image x="40" y="5" width="100" height="98" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAABCAMAAAAfBfuPAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAEsUExURfb/AK3/AAD/9/9sAIn/AN7/ABT/AAB//zD/AP9GAAD/s1H/AAD/H/8AxwD/bn8A/1wA/wD/XJv/AP8Ai//MAGP/ABMA/wD/LP8A6P8KAP8AF/8A9QD/xAAA/wD1/9MA/wD/gABY/wD/Cf8ATJEA//+6AACT/wCn/+v/AAD/TAD/kf8AYKMA//8kAAAk/wAV/y0A/3b/AP80AAD/O/cA//8A/wD///8An/8A2QD/Ev8AAMQA/+0A/7MA////AP8ACuAA//8AJ24A/0sA//8AOAA0/wAK/wBF//8WAAgA/x8A///2AL//AP8AdTwA/wn/AP/bAP+AAP+UAM//AP+nAP8AtADp/wD/o0D/AP/qAADb/wC5/wDL/wD/AAD/7QD/0gD/4CH/AABr//9ZAG2IeB4AAABvSURBVHjaYrCyl3J0Udb2FTYP5bWQkDY1sXGQt7bVUeF3EnD2M/AS85R109dzdVdMYldTj46JCpMzY4pLiJfhCtdS4BPUNBbnsVSK9WdL5IjgFjVkEWL0CWbVYLDzjgwQUQ0JCmRO5jTS9ZAECDAA3aQTV3E5iioAAAAASUVORK5CYII="/>
+ <defs>
+ <filter id="BlendNormal" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feFlood in="BackgroundAlpha" flood-color="#0f0" flood-opacity="0.5" result="img1"/>
+ <feBlend in2="img1" in="SourceGraphic" mode="normal"/>
+ </filter>
+ <filter id="BlendMultiply" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feFlood in="SourceGraphic" flood-color="#0f0" flood-opacity="0.5" result="img2"/>
+ <feBlend in="SourceGraphic" in2="img2" mode="multiply"/>
+ </filter>
+ <filter id="BlendScreen" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feFlood in="SourceGraphic" flood-color="#0f0" flood-opacity="0.5" result="img2"/>
+ <feBlend in="SourceGraphic" in2="img2" mode="screen"/>
+ </filter>
+ <filter id="BlendDarken" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feFlood in="SourceGraphic" flood-color="#0f0" flood-opacity="0.5" result="img2"/>
+ <feBlend in="SourceGraphic" in2="img2" mode="darken"/>
+ </filter>
+ <filter id="BlendLighten" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feFlood in="SourceGraphic" flood-color="#0f0" flood-opacity="0.5" result="img2"/>
+ <feBlend in="SourceGraphic" in2="img2" mode="lighten"/>
+ </filter>
+ </defs>
+ <rect x="30" y="10" width="120" height="10" fill="blue" opacity="0.5" filter="url(#BlendNormal)"/>
+ <rect x="30" y="23" width="120" height="10" fill="blue" opacity="0.5" filter="url(#BlendMultiply)"/>
+ <g filter="url(#BlendMultiply)">
+ <rect x="30" y="36" width="120" height="10" fill="blue" opacity="0.5"/>
+ <rect x="30" y="49" width="120" height="10" fill="#ff0" opacity="0.5"/>
+ </g>
+ <rect x="30" y="62" width="120" height="10" fill="blue" opacity="0.5" filter="url(#BlendScreen)"/>
+ <rect x="30" y="75" width="120" height="10" fill="blue" opacity="0.5" filter="url(#BlendDarken)"/>
+ <rect x="30" y="88" width="120" height="10" fill="blue" opacity="0.5" filter="url(#BlendLighten)"/>
+ <g fill="#333" font-size="7">
+ <text x="5" y="17">Normal</text>
+ <text x="5" y="30">Multiply</text>
+ <text x="5" y="43">Multiply</text>
+ <text x="5" y="56">Multiply</text>
+ <text x="5" y="69">Screen</text>
+ <text x="5" y="82">Darken</text>
+ <text x="5" y="95">Lighten</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-color-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-color-01-b-isvalid.html
new file mode 100644
index 0000000000..47c5fcc158
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-color-01-b-isvalid.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-color-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-color-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-color-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="-10" y="5" width="500" height="290" viewBox="0 0 800 500">
+ <title>Example feColorMatrix - Examples of feColorMatrix operations</title>
+ <desc>Five rectangles filled with a gradient showing the effects of feColorMatrix: an unfiltered rectangle acting as a reference, use of the feColorMatrix matrix option to convert to grayscale, use of the feColorMatrix saturate option, use of the feColorMatrix hueRotate option, and use of the feColorMatrix luminanceToAlpha option.</desc>
+ <defs>
+ <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" x1="20" y1="0" x2="760" y2="0">
+ <stop offset="0" stop-color="#dd00dd"/>
+ <stop offset=".33" stop-color="#22cc22"/>
+ <stop offset=".67" stop-color="#400000"/>
+ <stop offset="1" stop-color="#a0a0ff"/>
+ </linearGradient>
+ <filter id="Matrix" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feColorMatrix type="matrix" in="SourceGraphic" values=".33 .33 .33 0 0 .33 .33 .33 0 0 .33 .33 .33 0 0 .33 .33 .33 0 0"/>
+ </filter>
+ <filter id="Saturate40" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
+ <feColorMatrix type="saturate" in="SourceGraphic" values=".25"/>
+ </filter>
+ <filter id="HueRotate90" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
+ <feColorMatrix type="hueRotate" in="SourceGraphic" values="90"/>
+ </filter>
+ <filter id="LuminanceToAlpha" filterUnits="objectBoundingBox" x="-5%" y="-5%" width="110%" height="110%">
+ <feColorMatrix type="luminanceToAlpha" in="SourceGraphic" result="a"/>
+ <feComposite in="SourceGraphic" in2="a" operator="in"/>
+ </filter>
+ </defs>
+ <g font-size="40" font-family="Verdana">
+ <rect fill="none" stroke="blue" x="1" y="1" width="798" height="498"/>
+ <rect x="20" y="20" width="760" height="40" fill="url(#MyGradient)"/>
+ <text x="20" y="95">Unfiltered</text>
+ <rect x="20" y="120" width="760" height="40" fill="url(#MyGradient)" filter="url(#Matrix)"/>
+ <text x="20" y="195">type="matrix" (grayscale matrix)</text>
+ <rect x="20" y="220" width="760" height="40" fill="url(#MyGradient)" filter="url(#Saturate40)"/>
+ <text x="20" y="295">type="saturate" values=".4"</text>
+ <rect x="20" y="320" width="760" height="40" fill="url(#MyGradient)" filter="url(#HueRotate90)"/>
+ <text x="20" y="395">type="hueRotate" values="90"</text>
+ <rect x="20" y="420" width="760" height="40" fill="url(#MyGradient)" filter="url(#LuminanceToAlpha)"/>
+ <text x="20" y="495">type="luminanceToAlpha"</text>
+ </g>
+ </svg>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-color-02-b-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-color-02-b-novalid.html
new file mode 100644
index 0000000000..758ebd3615
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-color-02-b-novalid.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-color-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-color-02-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-color-02-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <linearGradient id="MyGradient" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="0">
+ <stop offset="0" stop-color="#ff0000"/>
+ <stop offset=".33" stop-color="#00ff00"/>
+ <stop offset=".67" stop-color="#0000ff"/>
+ <stop offset="1" stop-color="#000000"/>
+ </linearGradient>
+
+ <filter id="Reference" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feComponentTransfer>
+ <feFuncR type="linear" slope="0" intercept="0"/>
+ <feFuncG type="identity"/>
+ </feComponentTransfer>
+ </filter>
+
+ <filter id="Default" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <!-- Red becomes black, green/blue/alpha use the identity function,
+ since erratum specifies omitted functions are the identity
+ function, and duplicated ones take the last one. -->
+ <feComponentTransfer>
+ <feFuncR type="identity"/>
+ <feFuncR type="linear" slope="0" intercept="1"/>
+ <feFuncR type="linear" slope="0" intercept="0"/>
+ </feComponentTransfer>
+ </filter>
+ </defs>
+
+ <g fill="url(#MyGradient)">
+ <rect x="20" y="40" width="440" height="40" filter="url(#Reference)"/>
+ <rect x="20" y="140" width="440" height="40" filter="url(#Default)"/>
+ </g>
+
+ <g font-family="Verdana" font-size="20" font-weight="bold">
+ <text x="40" y="100">Reference</text>
+ <text x="40" y="200">Default</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-composite-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-composite-02-b-isvalid.html
new file mode 100644
index 0000000000..4740a521da
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-composite-02-b-isvalid.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-composite-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-composite-02-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-composite-02-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(15 -60)">
+ <title>Example feComposite - Examples of feComposite operations</title>
+ <desc>Six pairs of overlapping triangles depicting the six different feComposite operators.</desc>
+ <defs>
+ <path id="Blue100" d="M 0 0 L 150 0 L 150 150 z" fill="#00ffff"/>
+ <path id="Red100" d="M 0 0 L 0 150 L 150 0 z" fill="#ff00ff"/>
+ <path id="Blue50" d="M 0 0 L 150 0 L 150 150 z" fill="#00ffff" fill-opacity="0.5"/>
+ <path id="Red50" d="M 0 0 L 0 150 L 150 0 z" fill="#ff00ff" fill-opacity="0.5"/>
+
+ <filter id="over" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="#Blue100" result="blue"/>
+ <feImage xlink:href="#Red100" result="red"/>
+ <feComposite in2="blue" in="red" operator="over"/>
+ </filter>
+
+ <filter id="over50" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="#Blue50" result="blue"/>
+ <feImage xlink:href="#Red50" result="red"/>
+ <feComposite in2="blue" in="red" operator="over"/>
+ </filter>
+
+ <filter id="in" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="#Blue100" result="blue"/>
+ <feImage xlink:href="#Red100" result="red"/>
+ <feComposite in2="blue" in="red" operator="in"/>
+ </filter>
+
+ <filter id="in50" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="#Blue50" result="blue"/>
+ <feImage xlink:href="#Red50" result="red"/>
+ <feComposite in2="blue" in="red" operator="in"/>
+ </filter>
+
+ <filter id="out" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="#Blue100" result="blue"/>
+ <feImage xlink:href="#Red100" result="red"/>
+ <feComposite in2="blue" in="red" operator="out"/>
+ </filter>
+
+ <filter id="out50" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="#Blue50" result="blue"/>
+ <feImage xlink:href="#Red50" result="red"/>
+ <feComposite in2="blue" in="red" operator="out"/>
+ </filter>
+
+ <filter id="atop" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="#Blue100" result="blue"/>
+ <feImage xlink:href="#Red100" result="red"/>
+ <feComposite in2="blue" in="red" operator="atop"/>
+ </filter>
+
+ <filter id="atop50" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="#Blue50" result="blue"/>
+ <feImage xlink:href="#Red50" result="red"/>
+ <feComposite in2="blue" in="red" operator="atop"/>
+ </filter>
+
+ <filter id="xor" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="#Blue100" result="blue"/>
+ <feImage xlink:href="#Red100" result="red"/>
+ <feComposite in2="blue" in="red" operator="xor"/>
+ </filter>
+
+ <filter id="xor50" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="#Blue50" result="blue"/>
+ <feImage xlink:href="#Red50" result="red"/>
+ <feComposite in2="blue" in="red" operator="xor"/>
+ </filter>
+
+ <filter id="arithmetic" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="#Blue100" result="blue"/>
+ <feImage xlink:href="#Red100" result="red"/>
+ <feComposite in2="blue" in="red" operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/>
+ </filter>
+
+ <filter id="arithmetic50" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="#Blue50" result="blue"/>
+ <feImage xlink:href="#Red50" result="red"/>
+ <feComposite in2="blue" in="red" operator="arithmetic" k1=".5" k2=".5" k3=".5" k4=".5"/>
+ </filter>
+ </defs>
+ <g font-family="Verdana" font-size="60" shape-rendering="crispEdges" transform="translate(5,70) scale(.4)">
+ <rect fill="none" stroke="blue" x="1" y="1" width="1098" height="723"/>
+ <text x="100" y="75">on first Row : opacity 1.0</text>
+ <text x="100" y="180">on second row opacity 0.5</text>
+
+ <g transform="translate(15,230)">
+ <rect x="0" y="0" width="150" height="150" filter="url(#over)"/>
+ <text x="10" y="400">over</text>
+ </g>
+
+ <g transform="translate(15,430)">
+ <rect x="0" y="0" width="150" height="150" filter="url(#over50)"/>
+ </g>
+
+ <g transform="translate(195,230)">
+ <rect x="0" y="0" width="150" height="150" filter="url(#in)"/>
+ <text x="10" y="400">in</text>
+ </g>
+
+ <g transform="translate(195,430)">
+ <rect x="0" y="0" width="150" height="150" filter="url(#in50)"/>
+ </g>
+
+ <g transform="translate(375,230)">
+ <rect x="0" y="0" width="150" height="150" filter="url(#out)"/>
+ <text x="10" y="400">out</text>
+ </g>
+ <g transform="translate(375,430)">
+ <rect x="0" y="0" width="150" height="150" filter="url(#out50)"/>
+ </g>
+
+ <g transform="translate(555,230)">
+ <rect x="0" y="0" width="150" height="150" filter="url(#atop)"/>
+ <text x="10" y="400">atop</text>
+ </g>
+ <g transform="translate(555,430)">
+ <rect x="0" y="0" width="150" height="150" filter="url(#atop50)"/>
+ </g>
+
+ <g transform="translate(735,230)">
+ <rect x="0" y="0" width="150" height="150" filter="url(#xor)"/>
+ <text x="10" y="400">xor</text>
+ </g>
+ <g transform="translate(735,430)">
+ <rect x="0" y="0" width="150" height="150" filter="url(#xor50)"/>
+ </g>
+ <g transform="translate(915,230)">
+ <rect x="0" y="0" width="150" height="150" filter="url(#arithmetic)"/>
+ <text x="-25" y="400">arith-</text>
+ <text x="-25" y="470">metic</text>
+ </g>
+ <g transform="translate(915,430)">
+ <rect x="0" y="0" width="150" height="150" filter="url(#arithmetic50)"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-composite-03-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-composite-03-f-isvalid.html
new file mode 100644
index 0000000000..bdc45335c9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-composite-03-f-isvalid.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-composite-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-composite-03-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-composite-03-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="composite-ident" x="0" y="0" width="1" height="1">
+ <feComposite operator="arithmetic" in="FillPaint" in2="StrokePaint" k1="0" k2="1" k3="-1" k4="0"/>
+ </filter>
+ <filter id="composite-negative" x="0" y="0" width="1" height="1">
+ <feComposite operator="arithmetic" in="FillPaint" in2="FillPaint" k1="0" k2="2" k3="-1.5" k4="0"/>
+ </filter>
+ <filter id="composite-mixed" x="0" y="0" width="1" height="1">
+ <feComposite operator="arithmetic" in="FillPaint" in2="StrokePaint" k1="1" k2="-0.5" k3="0.2" k4="-0.1"/>
+ </filter>
+ <filter id="composite-clamped" x="0" y="0" width="1" height="1">
+ <feComposite operator="arithmetic" in="FillPaint" in2="StrokePaint" k1="0" k2="10" k3="20" k4="0"/>
+ </filter>
+ </defs>
+
+ <g transform="translate(100 30)">
+ <rect id="reference1" fill="lime" width="120" height="120"/>
+ <rect fill="red" stroke="red" filter="url(#composite-ident)" x="10" y="10" width="100" height="100"/>
+ </g>
+ <g transform="translate(250 30)">
+ <rect fill="#0F0" filter="url(#composite-negative)" x="10" y="10" width="100" height="100"/>
+ <rect id="reference2" stroke="#7FFF7F" x="5" y="5" width="110" height="110" stroke-width="12" fill="none"/>
+ </g>
+ <g transform="translate(100 180)">
+ <rect fill="rgb(43,17,12)" stroke="rgb(32,42,37)" filter="url(#composite-mixed)" x="10" y="10" width="100" height="100"/>
+ <rect id="reference3" stroke="#666" x="5" y="5" width="110" height="110" stroke-width="12" fill="none"/>
+ </g>
+ <g transform="translate(250 180)">
+ <rect fill="rgb(0,127,0)" stroke="rgb(0,0,127)" filter="url(#composite-clamped)" x="10" y="10" width="100" height="100"/>
+ <rect id="reference4" stroke="rgb(0,255,255)" x="5" y="5" width="110" height="110" stroke-width="12" fill="none"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-composite-04-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-composite-04-f-isvalid.html
new file mode 100644
index 0000000000..1309abdc1f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-composite-04-f-isvalid.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-composite-04-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-composite-04-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-composite-04-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="dissolve1" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/stefan_252_tRNS_opti.png" result="bird"/>
+ <feComposite operator="arithmetic" in="SourceGraphic" in2="bird" k1="0" k2="0.5" k3="0.5" k4="0"/>
+ </filter>
+ <filter id="dissolve2" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/stefan_252_tRNS_opti.png" result="bird"/>
+ <feComposite operator="arithmetic" in="SourceGraphic" in2="bird" k1="0" k2="0.1" k3="0.9" k4="0"/>
+ </filter>
+ <filter id="dissolve3" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/stefan_252_tRNS_opti.png" result="bird"/>
+ <feComposite operator="arithmetic" in="SourceGraphic" in2="bird" k1="0" k2="0.75" k3="0.25" k4="0"/>
+ </filter>
+ <filter id="dissolve4" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/stefan_252_tRNS_opti.png" result="bird"/>
+ <feComposite operator="arithmetic" in="SourceGraphic" in2="bird" k1="0" k2="0.25" k3="0.75" k4="0"/>
+ </filter>
+ </defs>
+
+ <image width="120" height="80" xlink:href="../images/tree.jpg" filter="url(#dissolve1)" transform="translate(100 80)"/>
+ <image width="120" height="80" xlink:href="../images/tree.jpg" filter="url(#dissolve2)" transform="translate(250 80)"/>
+ <image width="120" height="80" xlink:href="../images/tree.jpg" filter="url(#dissolve3)" transform="translate(100 190)"/>
+ <image width="120" height="80" xlink:href="../images/tree.jpg" filter="url(#dissolve4)" transform="translate(250 190)"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-composite-05-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-composite-05-f-isvalid.html
new file mode 100644
index 0000000000..14c9993f70
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-composite-05-f-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-composite-05-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-composite-05-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-composite-05-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="dissolve" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/stefan_252_tRNS_opti.png" result="bird"/>
+ <feComposite operator="arithmetic" in="SourceGraphic" in2="bird" k1="0" k2="1" k3="0" k4="0">
+ <animate attributeName="k2" values="1;0" dur="2" begin="0s;image.click" fill="freeze"/>
+ <animate attributeName="k3" values="0;1" dur="2" begin="0s;image.click" fill="freeze"/>
+ </feComposite>
+ </filter>
+ </defs>
+
+ <image id="image" width="320" height="160" xlink:href="../images/tree.jpg" filter="url(#dissolve)" transform="translate(80 80)"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-comptran-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-comptran-01-b-isvalid.html
new file mode 100644
index 0000000000..683bb6a8fc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-comptran-01-b-isvalid.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-comptran-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-comptran-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-comptran-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="15" y="5" width="450" height="300" viewBox="0 0 630 420">
+ <title>Example feComponentTransfer - Examples of feComponentTransfer operations</title>
+ <desc>Four rectangles filled with a gradient showing the effects of feComponentTransfer: an identity function acting as a reference, use of the feComponentTransfer table option, use of the feComponentTransfer linear option, and use of the feComponentTransfer gamma option.</desc>
+ <defs>
+ <linearGradient id="MyGradient" gradientUnits="userSpaceOnUse" x1="10" y1="0" x2="590" y2="0">
+ <stop offset="0" stop-color="#ff0000"/>
+ <stop offset=".33" stop-color="#00ff00"/>
+ <stop offset=".67" stop-color="#0000ff"/>
+ <stop offset="1" stop-color="#000000"/>
+ </linearGradient>
+ <filter id="Identity" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feComponentTransfer>
+ <feFuncR type="identity"/>
+ <feFuncG type="identity"/>
+ <feFuncB type="identity"/>
+ <feFuncA type="identity"/>
+ </feComponentTransfer>
+ </filter>
+ <filter id="Table" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feComponentTransfer>
+ <feFuncR type="table" tableValues="0 0 1 1"/>
+ <feFuncG type="table" tableValues="1 1 0 0"/>
+ <feFuncB type="table" tableValues="0 1 1 0"/>
+ </feComponentTransfer>
+ </filter>
+ <filter id="Linear" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feComponentTransfer>
+ <feFuncR type="linear" slope=".5" intercept=".25"/>
+ <feFuncG type="linear" slope=".5" intercept="0"/>
+ <feFuncB type="linear" slope=".5" intercept=".5"/>
+ </feComponentTransfer>
+ </filter>
+ <filter id="Gamma" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feComponentTransfer>
+ <feFuncR type="gamma" amplitude="2" exponent="5" offset="0"/>
+ <feFuncG type="gamma" amplitude="2" exponent="3" offset="0"/>
+ <feFuncB type="gamma" amplitude="2" exponent="1" offset="0"/>
+ </feComponentTransfer>
+ </filter>
+ </defs>
+ <rect fill="none" stroke="blue" x="1" y="1" width="628" height="418"/>
+ <g font-size="30" font-family="Verdana">
+ <rect fill="none" stroke="blue" x="1" y="1" width="628" height="418"/>
+ <rect x="10" y="10" width="580" height="40" fill="url(#MyGradient)" filter="url(#Identity)"/>
+ <text x="10" y="80">type: identity</text>
+ <rect x="10" y="110" width="580" height="40" fill="url(#MyGradient)" filter="url(#Table)"/>
+ <text x="10" y="180">type: table</text>
+ <rect x="10" y="210" width="580" height="40" fill="url(#MyGradient)" filter="url(#Linear)"/>
+ <text x="10" y="280">type:linear slope:.5 intercepts:.25/0/.5</text>
+ <rect x="10" y="310" width="580" height="40" fill="url(#MyGradient)" filter="url(#Gamma)"/>
+ <text x="10" y="380">type: gamma ampl:2 exponents:5/3/1</text>
+ </g>
+ </svg>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-01-f-isvalid.html
new file mode 100644
index 0000000000..dc327abb14
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-01-f-isvalid.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-conv-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-conv-01-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-conv-01-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="12">
+ <!--Generated by the Java 2D API Graphics2D SVG Generator, Sun Microsystems Inc.-->
+ <g transform="translate(20, 40)">
+ <defs id="defs1">
+ <filter id="convolve1" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix order="3 3" kernelMatrix="0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111 0.1111" edgeMode="none"/>
+ </filter>
+ <filter id="convolve2" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix order="3 3" kernelMatrix="-1 -1 -1 -1 8 -1 -1 -1 -1" edgeMode="duplicate"/>
+ </filter>
+ <filter id="convolve3" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix order="3 3" kernelMatrix="-1 -1 -1 -1 9 -1 -1 -1 -1" edgeMode="none"/>
+ </filter>
+ <filter id="convolve4" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix order="3 3" kernelMatrix="-2 0 0 0 1 0 0 0 2" edgeMode="none"/>
+ </filter>
+ <filter id="convolve5" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix order="3 1" kernelMatrix="0.3333 0.3333 0.3333" edgeMode="none"/>
+ </filter>
+ <filter id="convolve6" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix order="1 3" kernelMatrix="0.3333 0.3333 0.3333" edgeMode="none"/>
+ </filter>
+ </defs>
+ <g shape-rendering="geometricPrecision" text-rendering="geometricPrecision">
+ <text x="10" y="20" stroke="none" opacity="1" filter="none">Blur (3x3)</text>
+ <g opacity="1" filter="none">
+ <image width="50" height="63" xlink:href="../images/filters-conv-01-f.includeimage.png" x="10" y="30" filter="url(#convolve1)"/>
+ </g>
+ <text x="10" y="20" transform="translate(150,0)" stroke="none" opacity="1" filter="none">Edge Detection (3x3)</text>
+ <g transform="translate(150,0)" opacity="1" filter="none">
+ <image width="50" height="63" xlink:href="../images/filters-conv-01-f.includeimage.png" x="10" y="30" filter="url(#convolve2)"/>
+ </g>
+ <text x="10" y="20" transform="translate(300,0)" stroke="none" opacity="1" filter="none">Sharpening (3x3)</text>
+ <g transform="translate(300,0)" opacity="1" filter="none">
+ <image width="50" height="63" xlink:href="../images/filters-conv-01-f.includeimage.png" x="10" y="30" filter="url(#convolve3)"/>
+ </g>
+ <text x="10" y="20" transform="translate(0,93)" stroke="none" opacity="1" filter="none">Embossing (3x3)</text>
+ <g transform="translate(0,93)" opacity="1" filter="none">
+ <image width="50" height="63" xlink:href="../images/filters-conv-01-f.includeimage.png" x="10" y="30" filter="url(#convolve4)"/>
+ </g>
+ <text x="10" y="20" transform="translate(150,93)" stroke="none" opacity="1" filter="none">Horizontal blur (3x1)</text>
+ <g transform="translate(150,93)" opacity="1" filter="none">
+ <image width="50" height="63" xlink:href="../images/filters-conv-01-f.includeimage.png" x="10" y="30" filter="url(#convolve5)"/>
+ </g>
+ <text x="10" y="20" transform="translate(300,93)" stroke="none" opacity="1" filter="none">Vertical blur (1x3)</text>
+ <g transform="translate(300,93)" opacity="1" filter="none">
+ <image width="50" height="63" xlink:href="../images/filters-conv-01-f.includeimage.png" x="10" y="30" filter="url(#convolve6)"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-02-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-02-f-novalid.html
new file mode 100644
index 0000000000..1f3b835825
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-02-f-novalid.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-conv-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-conv-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-conv-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="convolve-without-order" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix kernelMatrix="1 1 1 1 -8 1 1 1 1" preserveAlpha="true"/>
+ </filter>
+ <filter id="convolve-with-order1" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix order="3" kernelMatrix="1 1 1 1 -8 1 1 1 1" preserveAlpha="true"/>
+ </filter>
+ <filter id="convolve-with-order2" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix order="3 3" kernelMatrix="1 1 1 1 -8 1 1 1 1" preserveAlpha="true"/>
+ </filter>
+ </defs>
+
+ <text x="50%" y="3em" style="font-size:18px; text-anchor:middle">feConvolveMatrix 'order' attribute</text>
+
+ <image x="90" y="100" width="100" height="100" xlink:href="../images/image1.jpg" filter="url(#convolve-without-order)"/>
+ <text x="135" y="220" style="font-size:9px; text-anchor:middle">without order</text>
+
+ <image x="190" y="100" width="100" height="100" xlink:href="../images/image1.jpg" filter="url(#convolve-with-order1)"/>
+ <text x="235" y="220" style="font-size:9px; text-anchor:middle">order="3"</text>
+
+ <image x="290" y="100" width="100" height="100" xlink:href="../images/image1.jpg" filter="url(#convolve-with-order2)"/>
+ <text x="335" y="220" style="font-size:9px; text-anchor:middle">order="3 3"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-03-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-03-f-isvalid.html
new file mode 100644
index 0000000000..65dd9b4cd2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-03-f-isvalid.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-conv-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-conv-03-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-conv-03-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="sharpenAnim" x="0" y="0" width="100%" height="100%">
+ <feImage xlink:href="../images/stefan_252_tRNS_opti.png" result="passimg"/>
+ <feConvolveMatrix in="SourceGraphic" order="3" kernelMatrix="0 -1 0
+ -1 5 -1
+ 0 -1 0" preserveAlpha="true">
+ <set attributeName="in" to="passimg" begin="3s" fill="freeze" onbegin="runtest()"/>
+ </feConvolveMatrix>
+ </filter>
+ <filter id="sharpenScript" x="0" y="0" width="100%" height="100%">
+ <feImage xlink:href="../images/stefan_252_tRNS_opti.png" result="passimg"/>
+ <feConvolveMatrix id="prim" in="SourceGraphic" order="3" kernelMatrix="0 -1 0
+ -1 5 -1
+ 0 -1 0" preserveAlpha="true"/>
+ </filter>
+
+ <text id="pass" x="240" y="150" text-anchor="middle" font-size="30px">PASS</text>
+ </defs>
+
+ <script type="application/ecmascript">
+ function runtest()
+ {
+ var img = document.getElementById("img");
+ img.href.baseVal = "../images/stefan_252_tRNS_opti.png";
+ var prim = document.getElementById("prim");
+ prim.in1.baseVal = "passimg";
+ }
+ </script>
+
+ <text x="50%" y="3em" style="font-size:18px; text-anchor:middle">feConvolveMatrix 'in1' DOM</text>
+ <image id="img" xlink:href="../images/purplesquidj.png" x="80" y="100" width="100" height="100"/>
+ <image xlink:href="../images/purplesquidj.png" x="190" y="100" width="100" height="100" filter="url(#sharpenAnim)"/>
+ <image xlink:href="../images/purplesquidj.png" x="300" y="100" width="100" height="100" filter="url(#sharpenScript)"/>
+ <rect x="80" y="100" width="100" height="100" stroke="black" fill="none"/>
+ <rect x="190" y="100" width="100" height="100" stroke="blue" fill="none"/>
+ <rect x="300" y="100" width="100" height="100" stroke="blue" fill="none"/>
+ <text x="130" y="220" style="font-size:9px; text-anchor:middle">Original image</text>
+ <text x="240" y="220" style="font-size:9px; text-anchor:middle">Animated filter</text>
+ <text x="350" y="220" style="font-size:9px; text-anchor:middle">Scripted filter</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-04-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-04-f-novalid.html
new file mode 100644
index 0000000000..2998b7c506
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-04-f-novalid.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-conv-04-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-conv-04-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-conv-04-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="convolve-without-bias" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix kernelMatrix="1 1 1 1 -7 1 1 1 1" preserveAlpha="false"/>
+ </filter>
+ <filter id="convolve-with-bias05" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix kernelMatrix="1 1 1 1 -7 1 1 1 1" preserveAlpha="false" bias="0.5"/>
+ </filter>
+ <filter id="convolve-with-bias1" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feConvolveMatrix kernelMatrix="1 1 1 1 -7 1 1 1 1" preserveAlpha="false" bias="1"/>
+ </filter>
+
+ <linearGradient id="test_linear_gradient" gradientUnits="objectBoundingBox" x1="0" x2="1" y1="0" y2="0">
+ <stop stop-color="#00FF00" stop-opacity="1" offset="0"/>
+ <stop stop-color="#00FF00" stop-opacity="0" offset="1"/>
+ </linearGradient>
+ </defs>
+
+ <g transform="translate(0, 20)">
+ <image x="12" y="1" width="97" height="98" xlink:href="../images/DisplaceChecker.png"/>
+ <image x="127" y="1" width="97" height="98" xlink:href="../images/DisplaceChecker.png"/>
+ <image x="242" y="1" width="97" height="98" xlink:href="../images/DisplaceChecker.png"/>
+ <image x="357" y="1" width="97" height="98" xlink:href="../images/DisplaceChecker.png"/>
+
+ <image x="10" y="0" width="100" height="100" xlink:href="../images/townsville.jpg" />
+ <image x="125" y="0" width="100" height="100" xlink:href="../images/townsville.jpg" filter="url(#convolve-without-bias)"/>
+ <image x="240" y="0" width="100" height="100" xlink:href="../images/townsville.jpg" filter="url(#convolve-with-bias05)"/>
+ <image x="355" y="0" width="100" height="100" xlink:href="../images/townsville.jpg" filter="url(#convolve-with-bias1)"/>
+ </g>
+
+ <g transform="translate(0, 110)">
+ <image x="11" y="51" width="98" height="98" xlink:href="../images/DisplaceChecker.png"/>
+ <image x="126" y="51" width="98" height="98" xlink:href="../images/DisplaceChecker.png"/>
+ <image x="241" y="51" width="98" height="98" xlink:href="../images/DisplaceChecker.png"/>
+ <image x="356" y="51" width="98" height="98" xlink:href="../images/DisplaceChecker.png"/>
+
+ <rect fill="url(#test_linear_gradient)" stroke="black" x="10" y="50" width="100" height="100"/>
+ <rect fill="url(#test_linear_gradient)" stroke="black" x="125" y="50" width="100" height="100" filter="url(#convolve-without-bias)"/>
+ <rect fill="url(#test_linear_gradient)" stroke="black" x="240" y="50" width="100" height="100" filter="url(#convolve-with-bias05)"/>
+ <rect fill="url(#test_linear_gradient)" stroke="black" x="355" y="50" width="100" height="100" filter="url(#convolve-with-bias1)"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-05-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-05-f-novalid.html
new file mode 100644
index 0000000000..c4bf1c9505
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-conv-05-f-novalid.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-conv-05-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-conv-05-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-conv-05-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="emNone" filterUnits="objectBoundingBox" primitiveUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feConvolveMatrix kernelMatrix="1 1 1 1 -7 1 1 1 1" preserveAlpha="false" edgeMode="none"/>
+ </filter>
+ <filter id="emWrap" filterUnits="objectBoundingBox" primitiveUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feConvolveMatrix kernelMatrix="1 1 1 1 -7 1 1 1 1" preserveAlpha="false" edgeMode="wrap"/>
+ </filter>
+ <filter id="emDuplicate" filterUnits="objectBoundingBox" primitiveUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feConvolveMatrix kernelMatrix="1 1 1 1 -7 1 1 1 1" preserveAlpha="false" edgeMode="duplicate"/>
+ </filter>
+
+ <g id="box">
+ <rect width="10" height="100" fill="blue"/>
+ <rect x="10" width="100" height="10" fill="yellow"/>
+ <rect x="110" width="10" height="100" fill="lime"/>
+ <rect x="10" y="90" width="100" height="10" fill="black"/>
+ </g>
+ </defs>
+
+ <text x="50%" y="3em" style="font-size:18px; text-anchor:middle">feConvolveMatrix 'edgeMode'</text>
+
+ <use xlink:href="#box" filter="url(#emNone)" transform="translate(40 100)"/>
+ <text x="100" y="220" font-size="14" text-anchor="middle">none</text>
+
+ <use xlink:href="#box" filter="url(#emWrap)" transform="translate(180 100)"/>
+ <text x="240" y="220" font-size="14" text-anchor="middle">wrap</text>
+
+ <use xlink:href="#box" filter="url(#emDuplicate)" transform="translate(320 100)"/>
+ <text x="380" y="220" font-size="14" text-anchor="middle">duplicate</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-diffuse-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-diffuse-01-f-isvalid.html
new file mode 100644
index 0000000000..40ca7c3089
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-diffuse-01-f-isvalid.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-diffuse-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-diffuse-01-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-diffuse-01-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Title -->
+ <text x="145" y="30" fill="black" font-size="12" font-family="Arial" font-weight="bold">Filters: feDiffuseLighting</text>
+ <!-- ===================================================================== -->
+ <!-- Filter definitions -->
+ <!-- ===================================================================== -->
+ <defs>
+ <!-- ================================================= -->
+ <!-- Surface scale -->
+ <!-- ================================================= -->
+ <filter id="surfaceScaleA" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="1">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="surfaceScaleB" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="surfaceScaleC" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="-10">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <!-- ================================================= -->
+ <!-- Diffuse Constants -->
+ <!-- ================================================= -->
+ <filter id="diffuseConstantA" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="0" surfaceScale="10">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="diffuseConstantB" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="diffuseConstantC" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="2" surfaceScale="10">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <!-- ================================================= -->
+ <!-- Lighting colors -->
+ <!-- ================================================= -->
+ <filter id="lightingColorA" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="red">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="lightingColorB" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="yellow">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="lightingColorC" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="blue">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ </defs>
+ <!-- ==================================================== -->
+ <!-- The same image is rendered multiple times with using -->
+ <!-- different filters. -->
+ <!-- ==================================================== -->
+ <!-- Various Surface Scales -->
+ <g transform="translate(0, 50)">
+ <text x="90" y="25">Various values for surfaceScale: 1, 10 and -10</text>
+ <image xlink:href="../images/bumpMap2.png" x="90" y="30" width="50" height="30" filter="url(#surfaceScaleA)"/>
+ <image xlink:href="../images/bumpMap2.png" x="160" y="30" width="50" height="30" filter="url(#surfaceScaleB)"/>
+ <image xlink:href="../images/bumpMap2.png" x="230" y="30" width="50" height="30" filter="url(#surfaceScaleC)"/>
+ </g>
+ <!-- Various Diffuse Constants -->
+ <g transform="translate(0, 120)">
+ <text x="90" y="25">Various values for diffuseConstants: 0, 1 and 2</text>
+ <image xlink:href="../images/bumpMap2.png" x="90" y="30" width="50" height="30" filter="url(#diffuseConstantA)"/>
+ <image xlink:href="../images/bumpMap2.png" x="160" y="30" width="50" height="30" filter="url(#diffuseConstantB)"/>
+ <image xlink:href="../images/bumpMap2.png" x="230" y="30" width="50" height="30" filter="url(#diffuseConstantC)"/>
+ </g>
+ <!-- Various Light Colors -->
+ <g transform="translate(0, 190)">
+ <text x="90" y="25">Various values for lighting color: red, yellow and blue</text>
+ <image xlink:href="../images/bumpMap2.png" x="90" y="30" width="50" height="30" filter="url(#lightingColorA)"/>
+ <image xlink:href="../images/bumpMap2.png" x="160" y="30" width="50" height="30" filter="url(#lightingColorB)"/>
+ <image xlink:href="../images/bumpMap2.png" x="230" y="30" width="50" height="30" filter="url(#lightingColorC)"/>
+ </g>
+ <!-- ===================================================== -->
+ <!-- Legends -->
+ <!-- ===================================================== -->
+ <!-- Surface Scale -->
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-displace-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-displace-01-f-isvalid.html
new file mode 100644
index 0000000000..e7bbcbe61b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-displace-01-f-isvalid.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-displace-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-displace-01-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-displace-01-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="DispMapChecker" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/DisplaceChecker.png"/>
+ </filter>
+ <filter id="RotateMap" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/rotate20.png"/>
+ </filter>
+ <filter id="SphereMap" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/sphere.png"/>
+ </filter>
+ <filter id="RotateMapTest" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feImage result="Map" xlink:href="../images/rotate20.png"/>
+ <feImage result="Texture" xlink:href="../images/DisplaceChecker.png"/>
+ <feDisplacementMap in="Texture" in2="Map" scale="64" xChannelSelector="R" yChannelSelector="G"/>
+ </filter>
+ <filter id="SphereMapTest" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feImage result="Map" xlink:href="../images/sphere.png"/>
+ <feImage result="Texture" xlink:href="../images/DisplaceChecker.png"/>
+ <feDisplacementMap in="Texture" in2="Map" scale="64" xChannelSelector="R" yChannelSelector="G"/>
+ </filter>
+ </defs>
+
+ <g font-family="Arial" font-size="12" text-anchor="middle">
+ <rect x="15" y="15" width="128" height="128" filter="url(#DispMapChecker)"/>
+ <rect x="20" y="115" width="118" height="20" fill="#DDD"/>
+ <text x="79" y="130">Checkerboard Image</text>
+
+ <rect x="158" y="15" width="128" height="128" filter="url(#RotateMap)"/>
+ <rect x="163" y="112" width="118" height="30" fill="#DDD"/>
+ <text>
+ <tspan x="222" y="125">Displacement Map</tspan>
+ <tspan x="222" y="138">(20 deg. rotation)</tspan>
+ </text>
+
+
+
+ <rect x="301" y="15" width="128" height="128" filter="url(#RotateMapTest)"/>
+ <rect x="-1" y="-1" width="2" height="2" transform="translate(365,79) rotate(20) scale(32)" fill="blue" fill-opacity="0.5"/>
+ <text>
+ <tspan x="365" y="160">Result</tspan>
+ <tspan x="365" y="172">(overlayed with 20 deg.</tspan>
+ <tspan x="365" y="184">rotated blue rectangle)</tspan>
+ </text>
+
+
+ <rect x="15" y="158" width="128" height="128" filter="url(#DispMapChecker)"/>
+ <rect x="20" y="258" width="118" height="20" fill="#DDD"/>
+ <text x="79" y="273">Checkerboard Image</text>
+
+
+ <rect x="158" y="158" width="128" height="128" filter="url(#SphereMap)"/>
+ <rect x="163" y="255" width="118" height="30" fill="#DDD"/>
+ <text>
+ <tspan x="222" y="268">Displacement Map</tspan>
+ <tspan x="222" y="283">(spherical distortion)</tspan>
+ </text>
+
+
+ <rect x="301" y="200" width="128" height="128" filter="url(#SphereMapTest)"/>
+ <text x="365" y="345">Result</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-displace-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-displace-02-f-isvalid.html
new file mode 100644
index 0000000000..983cfed06a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-displace-02-f-isvalid.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-displace-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-displace-02-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-displace-02-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <linearGradient id="fade" gradientUnits="objectBoundingBox">
+ <stop offset="0" stop-color="#600" stop-opacity="0"/>
+ <stop offset="0.5" stop-color="#000" stop-opacity="1"/>
+ <stop offset="1.0" stop-color="#300" stop-opacity="0"/>
+ </linearGradient>
+
+ <filter id="bend" filterUnits="objectBoundingBox" x="0" width="1.0" y="-1.3" height="2.28">
+ <feDisplacementMap in="SourceGraphic" in2="SourceAlpha" yChannelSelector="A" scale="30"/>
+ </filter>
+
+ <filter id="slide" filterUnits="objectBoundingBox" x="-0.3" width="1.3" y="0" height="1.3">
+ <feDisplacementMap in="SourceGraphic" in2="SourceGraphic" xChannelSelector="R" yChannelSelector="G" scale="80"/>
+ </filter>
+
+ <polyline points="280, 40, 280,120" stroke-width="2" stroke="green"/>
+ <polyline points="400, 144, 420,144, 420, 124" stroke-width="2" stroke="green" fill="none"/>
+ <rect width="360" height="80" x="60" y="40" fill="none" stroke="#933" stroke-width="2"/>
+ <rect width="360" height="80" x="60" y="40" fill="url(#fade)" filter="url(#slide)"/>
+
+ <polyline points="240, 180, 240,260" stroke-width="2" stroke="green"/>
+ <rect width="360" height="80" x="60" y="180" fill="none" stroke="#933" stroke-width="2"/>
+ <rect width="360" height="80" x="60" y="180" fill="url(#fade)" filter="url(#bend)"/>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-example-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-example-01-b-isvalid.html
new file mode 100644
index 0000000000..68df18f44a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-example-01-b-isvalid.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-example-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-example-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-example-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Here is the test case -->
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="80" y="110" width="300" height="180" viewBox="0 0 200 120">
+ <title>Example filters01.svg - introducing filter effects</title>
+ <desc>An example which combines multiple filter primitives to produce a 3D lighting effect on a graphic consisting of the string "SVG" sitting on top of oval filled in green and surrounded by an oval outlined in green.</desc>
+ <defs>
+ <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
+ <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
+ <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
+ <feComposite in="SourceGraphic" in2="offsetBlur" operator="over"/>
+ </filter>
+ </defs>
+ <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue"/>
+ <g filter="url(#MyFilter)">
+ <g>
+ <path fill="none" stroke="#00D900" stroke-width="10" d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z"/>
+ <path fill="#00D900" d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z"/>
+ <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana">
+ <text x="52" y="76">SVG</text>
+ </g>
+ </g>
+ </g>
+ </svg>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-felem-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-felem-01-b-isvalid.html
new file mode 100644
index 0000000000..f88e6ee441
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-felem-01-b-isvalid.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-felem-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-felem-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-felem-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="null"/>
+ <filter id="nullreg" filterUnits="objectBoundingBox" x="40%" y="40%" width="20%" height="20%"/>
+ </defs>
+ <g>
+ <circle r="30" fill="red" cx="130" cy="60"/>
+ <circle r="40" fill="lime" cx="130" cy="60"/>
+ <text font-size="20" x="130" y="130" text-anchor="middle">No filter</text>
+ </g>
+ <g>
+ <circle r="30" fill="lime" cx="130" cy="210"/>
+ <circle r="40" fill="red" cx="130" cy="210" filter="url(#null)"/>
+ <text font-size="20" x="130" y="280" text-anchor="middle">Null filter</text>
+ </g>
+ <g>
+ <circle r="30" fill="lime" cx="330" cy="60"/>
+ <circle r="40" fill="red" cx="330" cy="60" filter="url(#notthere)"/>
+ <text font-size="20" x="330" y="130" text-anchor="middle">Non-existent filter</text>
+ </g>
+ <g>
+ <circle r="30" fill="lime" cx="330" cy="210"/>
+ <circle r="40" fill="red" cx="330" cy="210" filter="url(#nullreg)"/>
+ <text font-size="20" x="330" y="280" text-anchor="middle">Null with small region filter</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-felem-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-felem-02-f-isvalid.html
new file mode 100644
index 0000000000..d72286a856
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-felem-02-f-isvalid.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-felem-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-felem-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-felem-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <filter id="usou1" primitiveUnits="userSpaceOnUse" x="0" y="0" width="100%" height="100%">
+ <feFlood flood-color="lime" x="25" y="25" width="50" height="50"/>
+ </filter>
+ <filter id="obb1" primitiveUnits="objectBoundingBox" x="0" y="0" width="100%" height="100%">
+ <feFlood flood-color="lime" x="25%" y="25%" width="50%" height="50%"/>
+ </filter>
+ <filter id="default1" x="0" y="0" width="100%" height="100%">
+ <feFlood flood-color="lime" x="25" y="25" width="50" height="50"/>
+ </filter>
+
+ <filter id="usou2" primitiveUnits="userSpaceOnUse" x="-50%" y="-50%" width="200%" height="200%">
+ <feGaussianBlur stdDeviation="0.2"/>
+ </filter>
+ <filter id="obb2" primitiveUnits="objectBoundingBox" x="-50%" y="-50%" width="200%" height="200%">
+ <feGaussianBlur stdDeviation="0.2"/>
+ </filter>
+ <filter id="default2" x="-50%" y="-50%" width="200%" height="200%">
+ <feGaussianBlur stdDeviation="0.2"/>
+ </filter>
+
+ <filter id="usou3" primitiveUnits="userSpaceOnUse" x="-50%" y="-50%" width="200%" height="200%">
+ <feOffset dx="2" dy="2"/>
+ </filter>
+ <filter id="obb3" filterUnits="userSpaceOnUse" primitiveUnits="objectBoundingBox" x="-50%" y="-50%" width="200%" height="200%">
+ <feOffset dx="2" dy="2"/>
+ </filter>
+ <filter id="default3" x="-50%" y="-50%" width="200%" height="200%">
+ <feOffset dx="2" dy="2"/>
+ </filter>
+
+ <polygon id="star" points="300,60 311.755,83.819 338.042,87.639 319.021,106.180 323.511,132.360 300,120 276.488,132.360 280.978,106.180 261.957,87.639 288.244,83.819 300,60 311.755,83.819"/>
+
+ </defs>
+
+ <g transform="translate(80 0)">
+
+ <rect fill="red" width="50" height="50" transform="translate(25 25)"/>
+ <rect fill="red" width="100" height="100" filter="url(#usou1)" transform="translate(0 0)"/>
+
+ <rect fill="red" width="50" height="50" transform="translate(125 25)"/>
+ <rect fill="red" width="100" height="100" filter="url(#obb1)" transform="translate(100 0)"/>
+
+ <rect fill="red" width="50" height="50" transform="translate(225 25)"/>
+ <rect fill="red" width="100" height="100" filter="url(#default1)" transform="translate(200 0)"/>
+
+ <g transform="translate(50 40)">
+ <circle r="30" filter="url(#usou2)" transform="translate(0 100)"/>
+ <circle r="30" filter="url(#obb2)" transform="translate(100 100)"/>
+ <circle r="30" filter="url(#default2)" transform="translate(200 100)"/>
+ </g>
+
+
+ <use xlink:href="#star" transform="translate(-250 150)" fill="red"/>
+ <use xlink:href="#star" transform="translate(-252 148)" fill="lime" filter="url(#usou3)"/>
+ <use xlink:href="#star" transform="translate(-250 150)" fill="none" stroke-width="2" stroke="lime"/>
+
+ <use xlink:href="#star" transform="translate(-150 150)" fill="red"/>
+ <use xlink:href="#star" transform="translate(-302 5.1)" fill="lime" filter="url(#obb3)"/>
+ <use xlink:href="#star" transform="translate(-150 150)" fill="none" stroke-width="2" stroke="lime"/>
+
+ <use xlink:href="#star" transform="translate(-50 150)" fill="red"/>
+ <use xlink:href="#star" transform="translate(-52 148)" fill="lime" filter="url(#default3)"/>
+ <use xlink:href="#star" transform="translate(-50 150)" fill="none" stroke-width="2" stroke="lime"/>
+
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-gauss-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-gauss-01-b-isvalid.html
new file mode 100644
index 0000000000..97a4aa975c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-gauss-01-b-isvalid.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-gauss-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-gauss-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-gauss-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <g id="rects">
+ <rect x="0" y="0" width="90" height="90" fill="blue"/>
+ <rect x="45" y="45" width="90" height="90" fill="yellow"/>
+ </g>
+ <g id="rect_outlines">
+ <rect x="0" y="0" width="135" height="135" fill="none" stroke="blue" stroke-width=".5"/>
+ <rect x="-13.5" y="-13.5" width="162" height="162" fill="none" stroke="blue" stroke-width=".5"/>
+ </g>
+ <filter id="blur" filterUnits="objectBoundingBox" x="-10%" y="-10%" width="120%" height="120%">
+ <feGaussianBlur stdDeviation="10"/>
+ </filter>
+ <filter id="blurxy" filterUnits="objectBoundingBox" x="-10%" y="-10%" width="120%" height="120%">
+ <feGaussianBlur stdDeviation="20 1"/>
+ </filter>
+ </defs>
+ <use xlink:href="#rects"/>
+ <g transform="translate(310,15)">
+ <use xlink:href="#rects" filter="url(#blur)"/>
+ <use xlink:href="#rect_outlines"/>
+ </g>
+ <g transform="translate(310,200)">
+ <use xlink:href="#rects" filter="url(#blurxy)"/>
+ <use xlink:href="#rect_outlines"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-gauss-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-gauss-02-f-isvalid.html
new file mode 100644
index 0000000000..b674067c86
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-gauss-02-f-isvalid.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-gauss-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-gauss-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-gauss-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <g id="rects">
+ <rect x="0" y="0" width="90" height="90" fill="blue"/>
+ <rect x="45" y="45" width="90" height="90" fill="yellow"/>
+ </g>
+ <g id="rect_outlines">
+ <rect x="0" y="0" width="135" height="135" fill="none" stroke="blue" stroke-width=".5"/>
+ <rect x="-13.5" y="-13.5" width="162" height="162" fill="none" stroke="blue" stroke-width=".5"/>
+ </g>
+ <filter id="blury" filterUnits="objectBoundingBox" x="-10%" y="-10%" width="120%" height="120%">
+ <feGaussianBlur stdDeviation="0 10"/>
+ </filter>
+ <filter id="blurx" filterUnits="objectBoundingBox" x="-10%" y="-10%" width="120%" height="120%">
+ <feGaussianBlur stdDeviation="20 0"/>
+ </filter>
+ </defs>
+ <g transform="translate(80,100)">
+ <use xlink:href="#rects" filter="url(#blury)"/>
+ <use xlink:href="#rect_outlines"/>
+ </g>
+ <g transform="translate(270,100)">
+ <use xlink:href="#rects" filter="url(#blurx)"/>
+ <use xlink:href="#rect_outlines"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-gauss-03-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-gauss-03-f-isvalid.html
new file mode 100644
index 0000000000..383a29e06a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-gauss-03-f-isvalid.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-gauss-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-gauss-03-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-gauss-03-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect id="rect" x="0" y="0" width="90" height="90"/>
+ <filter id="identity" filterUnits="objectBoundingBox" x="-10%" y="-10%" width="150%" height="150%">
+ <feGaussianBlur stdDeviation="0"/>
+ </filter>
+ </defs>
+ <g transform="translate(190,120)">
+ <use xlink:href="#rect" fill="red"/>
+ <use xlink:href="#rect" fill="lime" stroke="lime" stroke-width="2" filter="url(#identity)"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-image-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-image-01-b-isvalid.html
new file mode 100644
index 0000000000..dbce70d71d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-image-01-b-isvalid.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-image-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-image-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-image-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="image">
+ <feImage x="145" y="50" width="190" height="190" xlink:href="../images/image1.jpg"/>
+ </filter>
+ </defs>
+ <text font-family="Arial" font-size="12" x="240" y="20" text-anchor="middle">Basic test of feImage filter support.</text>
+ <rect width="480" height="360" filter="url(#image)"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-image-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-image-02-b-isvalid.html
new file mode 100644
index 0000000000..a8936c7810
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-image-02-b-isvalid.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-image-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-image-02-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-image-02-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <filter id="feimage" x="0" y="0" width="100%" height="100%" filterUnits="objectBoundingBox">
+ <feImage xlink:href="../images/bluesquidj.png">
+ <set attributeName="xlink:href" to="../images/pinksquidj.png" begin="2s"/>
+ </feImage>
+ </filter>
+ </defs>
+
+ <rect fill="red" filter="url(#feimage)" x="70" y="60" width="150" height="200"/>
+ <image xlink:href="../images/bluesquidj.png" x="260" y="60" width="150" height="200">
+ <set attributeName="xlink:href" to="../images/pinksquidj.png" begin="2s"/>
+ </image>
+
+ <g text-anchor="middle">
+ <text x="50%" y="60" font-size="30">Animation in filters</text>
+ <text x="145" y="220">'feImage'</text>
+ <text x="335" y="220">'image'</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-image-03-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-image-03-f-isvalid.html
new file mode 100644
index 0000000000..17894f5d0e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-image-03-f-isvalid.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-image-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-image-03-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-image-03-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <!-- A breakdown of this testcase:
+
+ All filters:
+ filterUnits not specified, defaults to objectBoundingBox.
+ x=0, y=0, width=1, height=1 -> filter region = bounding box.
+
+ viewport is viewbox which is 0 0 480 360
+ primitiveUnits not specified, defaults to userSpaceOnUse
+ preserveAspectRatio defaults to xMidYMid meet
+
+ Top row
+ 1. Default:
+ x defaults to 0% relative to filter region (special case)
+ y defaults to 0% relative to filter region (special case)
+ width defaults to 100% of filter region (special case)
+ height defaults to 100% of filter region (special case)
+
+ 2. All specified relative
+ x = 20.8% = 100/480 (0.2083)
+ y = 0% = 0/360 (0.0)
+ width = 10.4% = 50/480 (0.1042)
+ height = 13.8% = 50/360 (0.1388)
+
+ 3. All specified absolute
+ x = 200
+ y = 0
+ width = 50
+ height = 50
+
+ 4. y Specified
+ x defaults to 0% relative to filter region (special case)
+ y = 0% = 0/360
+ width defaults to 100% of filter region (special case)
+ height defaults to 100% of filter region (special case)
+
+ Bottom row
+ 1. Width specified
+ x defaults to 0% relative to filter region (special case)
+ y defaults to 0% relative to filter region (special case)
+ width 20.4% 97.92/480 **** Should be 20.8%
+ height defaults to 100% of filter region (special case)
+
+ 2. Height specified
+ x defaults to 0% relative to filter region (special case)
+ y defaults to 0% relative to filter region (special case)
+ width defaults to 100% of filter region (special case)
+ height 27.6% 99.36/360
+
+ 3. Width and height specified
+ x defaults to 0% relative to filter region (special case)
+ y defaults to 0% relative to filter region (special case)
+ width 20.8% 99.8/480 (x2)
+ height 27.6% 99.36/360 (x2)
+
+ 4. x, y specified
+ x = 67.7% = 325.0
+ y = 34.6% = 125.0
+ width defaults to 100% of filter region (special case)
+ height defaults to 100% of filter region (special case)
+ -->
+ <filter id="default" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png"/>
+ </filter>
+ <filter id="all_specified_relative" x="0" y="0" width="1" height="1">
+ <!-- x=100/480 y=0/360 width=50/480 height=50/360-->
+ <feImage x="20.8%" y="0%" width="10.4%" height="13.8%"
+ xlink:href="../images/smiley.png"/>
+ </filter>
+ <filter id="all_specified_absolute" x="0" y="0" width="1" height="1">
+ <feImage x="200" y="0" height="50" width="50"
+ xlink:href="../images/smiley.png"/>
+ </filter>
+ <filter id="y_specified" x="0" y="0" width="1" height="1">
+ <feImage y="0%"
+ xlink:href="../images/smiley.png"/>
+ </filter>
+ <filter id="width_specified" x="0" y="0" width="1" height="1">
+ <feImage width="20.8%"
+ xlink:href="../images/smiley.png"/>
+ </filter>
+ <filter id="height_specified" x="0" y="0" width="1" height="1">
+ <feImage height="27.6%"
+ xlink:href="../images/smiley.png"/>
+ </filter>
+ <filter id="width_height_specified" x="0" y="0" width="1" height="1">
+ <feImage width="20.8%" height="27.6%"
+ xlink:href="../images/smiley.png"/>
+ </filter>
+ <filter id="x_y_specified" x="0" y="0" width="1" height="1">
+ <feImage x="67.7%" y="34.6%"
+ xlink:href="../images/smiley.png"/>
+ </filter>
+ </defs>
+
+ <g transform="translate(60 100)">
+ <rect fill="red" width="50" height="50" filter="url(#default)"/>
+ <rect fill="red" x="100" width="50" height="50" filter="url(#all_specified_relative)"/>
+ <rect fill="red" x="200" width="50" height="50" filter="url(#all_specified_absolute)"/>
+ <rect fill="red" x="300" width="50" height="50" filter="url(#y_specified)"/>
+
+ <rect fill="red" y="100" width="50" height="50" filter="url(#width_specified)"/>
+ <rect fill="red" x="100" y="100" width="50" height="50" filter="url(#height_specified)"/>
+ <rect fill="red" x="200" y="100" width="50" height="50" filter="url(#width_height_specified)"/>
+ <rect fill="red" x="300" y="100" width="50" height="50" filter="url(#x_y_specified)"/>
+
+ <g id="reference_frames" stroke="blue" stroke-width="1" fill="none">
+ <rect width="50" height="50" />
+ <rect x="100" width="50" height="50"/>
+ <rect x="200" width="50" height="50"/>
+ <rect x="300" width="50" height="50"/>
+ <rect y="100" width="50" height="50"/>
+ <rect x="100" y="100" width="50" height="50"/>
+ <rect x="200" y="100" width="50" height="50"/>
+ <rect x="300" y="100" width="50" height="50"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-image-04-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-image-04-f-isvalid.html
new file mode 100644
index 0000000000..47e238d578
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-image-04-f-isvalid.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-image-04-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-image-04-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2011 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-image-04-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="default" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox">
+ <feImage xlink:href="../images/smiley.png"/>
+ </filter>
+ <filter id="all_specified_relative" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox">
+ <feImage x="0%" y="0%" width="100%" height="100%"
+ xlink:href="../images/smiley.png"/>
+ </filter>
+ <filter id="all_specified_absolute" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox">
+ <feImage x="0" y="0" height="1" width="1"
+ xlink:href="../images/smiley.png"/>
+ </filter>
+ <filter id="y_specified" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox">
+ <feImage y="0%"
+ xlink:href="../images/smiley.png"/>
+ </filter>
+ <filter id="width_specified" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox">
+ <feImage width="200%"
+ xlink:href="../images/smiley.png"/>
+ </filter>
+ <filter id="height_specified" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox">
+ <feImage height="200%"
+ xlink:href="../images/smiley.png"/>
+ </filter>
+ <filter id="width_height_specified" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox">
+ <feImage width="200%" height="200%"
+ xlink:href="../images/smiley.png"/>
+ </filter>
+ <filter id="x_y_specified" x="0" y="0" width="1" height="1" primitiveUnits="objectBoundingBox">
+ <feImage x="0.5" y="0.5"
+ xlink:href="../images/smiley.png"/>
+ </filter>
+ </defs>
+
+ <text text-anchor="middle" x="240" y="40" font-size="16">primitiveUnits = "objectBoundingBox"</text>
+ <g transform="translate(60 100)">
+ <rect fill="red" width="50" height="50" filter="url(#default)"/>
+ <rect fill="red" x="100" width="50" height="50" filter="url(#all_specified_relative)"/>
+ <rect fill="red" x="200" width="50" height="50" filter="url(#all_specified_absolute)"/>
+ <rect fill="red" x="300" width="50" height="50" filter="url(#y_specified)"/>
+
+ <rect fill="red" y="100" width="50" height="50" filter="url(#width_specified)"/>
+ <rect fill="red" x="100" y="100" width="50" height="50" filter="url(#height_specified)"/>
+ <rect fill="red" x="200" y="100" width="50" height="50" filter="url(#width_height_specified)"/>
+ <rect fill="red" x="300" y="100" width="50" height="50" filter="url(#x_y_specified)"/>
+
+ <g id="reference_frames" stroke="blue" stroke-width="1" fill="none">
+ <rect width="50" height="50" />
+ <rect x="100" width="50" height="50"/>
+ <rect x="200" width="50" height="50"/>
+ <rect x="300" width="50" height="50"/>
+ <rect y="100" width="50" height="50"/>
+ <rect x="100" y="100" width="50" height="50"/>
+ <rect x="200" y="100" width="50" height="50"/>
+ <rect x="300" y="100" width="50" height="50"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-image-05-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-image-05-f-isvalid.html
new file mode 100644
index 0000000000..d20325754e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-image-05-f-isvalid.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-image-05-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-image-05-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2011 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-image-05-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="default" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png"/>
+ </filter>
+ <!-- Meet -->
+ <filter id="xMinYMinMeet" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMinYMin meet"/>
+ </filter>
+ <filter id="xMidYMinMeet" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMidYMin meet"/>
+ </filter>
+ <filter id="xMaxYMinMeet" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMaxYMin meet"/>
+ </filter>
+ <filter id="xMinYMidMeet" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMinYMid meet"/>
+ </filter>
+ <filter id="xMidYMidMeet" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMidYMid meet"/>
+ </filter>
+ <filter id="xMaxYMidMeet" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMaxYMid meet"/>
+ </filter>
+ <filter id="xMinYMaxMeet" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMinYMax meet"/>
+ </filter>
+ <filter id="xMidYMaxMeet" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMidYMax meet"/>
+ </filter>
+ <filter id="xMaxYMaxMeet" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMaxYMax meet"/>
+ </filter>
+ <!-- Slice -->
+ <filter id="xMinYMinSlice" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMinYMin slice"/>
+ </filter>
+ <filter id="xMidYMinSlice" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMidYMin slice"/>
+ </filter>
+ <filter id="xMaxYMinSlice" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMaxYMin slice"/>
+ </filter>
+ <filter id="xMinYMidSlice" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMinYMid slice"/>
+ </filter>
+ <filter id="xMidYMidSlice" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMidYMid slice"/>
+ </filter>
+ <filter id="xMaxYMidSlice" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMaxYMid slice"/>
+ </filter>
+ <filter id="xMinYMaxSlice" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMinYMax slice"/>
+ </filter>
+ <filter id="xMidYMaxSlice" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMidYMax slice"/>
+ </filter>
+ <filter id="xMaxYMaxSlice" x="0" y="0" width="1" height="1">
+ <feImage xlink:href="../images/smiley.png" preserveAspectRatio="xMaxYMax slice"/>
+ </filter>
+ </defs>
+ <g font-size="9" transform="translate(0, 30)">
+ <desc>Example PreserveAspectRatio - demonstrate available options</desc>
+ <text text-anchor="middle" x="240" font-size="16">Test preserveAspectRatio on an feImage element.</text>
+ <text x="40" y="30" text-anchor="middle">Raster to fit</text>
+ <g transform="translate(20,40)">
+ <rect fill="red" width="40" height="40" filter="url(#default)"/>
+ </g>
+ <text x="35.5" y="110" text-anchor="middle">Viewport 1</text>
+ <g transform="translate(10,120)"><rect x='.5' y='.5' width='49' height='29' fill='none' stroke='blue'/></g>
+ <text x="35.5" y="180" text-anchor="middle">Viewport 2</text>
+ <g transform="translate(20,190)"><rect x='.5' y='.5' width='29' height='59' fill='none' stroke='blue'/></g>
+ <g id="meet-group-1" transform="translate(120, 50)">
+ <text x="0" y="-20">---------- meet --------------------</text>
+ <g>
+ <text y="-5">xMin*</text>
+ <rect x='.5' y='.5' width='49' height='29' fill='none' stroke='blue'/>
+ <rect fill="red" width="50" height="30" filter="url(#xMinYMinMeet)"/>
+ </g>
+ <g transform="translate(70,0)">
+ <text y="-5">xMid*</text>
+ <rect x='.5' y='.5' width='49' height='29' fill='none' stroke='blue'/>
+ <rect fill="red" width="50" height="30" filter="url(#xMidYMidMeet)"/>
+ </g>
+ <g transform="translate(0,50)">
+ <text y="-5">xMax*</text>
+ <rect x='.5' y='.5' width='49' height='29' fill='none' stroke='blue'/>
+ <rect fill="red" width="50" height="30" filter="url(#xMaxYMaxMeet)"/>
+ </g>
+ </g>
+ <g id="meet-group-2" transform="translate(300, 50)">
+ <text x="0" y="-20">---------- meet ------------------------</text>
+ <g>
+ <text y="-5">*YMin</text><rect x='.5' y='.5' width='29' height='59' fill='none' stroke='blue'/>
+ <rect fill="red" width="30" height="60" filter="url(#xMinYMinMeet)"/>
+ </g>
+ <g transform="translate(50, 0)">
+ <text y="-5">*YMid</text><rect x='.5' y='.5' width='29' height='59' fill='none' stroke='blue'/>
+ <rect fill="red" width="30" height="60" filter="url(#xMidYMidMeet)"/>
+ </g>
+ <g transform="translate(100, 0)">
+ <text y="-5">*YMax</text><rect x='.5' y='.5' width='29' height='59' fill='none' stroke='blue'/>
+ <rect fill="red" width="30" height="60" filter="url(#xMaxYMaxMeet)"/>
+ </g>
+ </g>
+ <g id="slice-group-1" transform="translate(120, 185)">
+ <text x="0" y="-20">---------- slice -------------------------</text>
+ <g>
+ <text y="-5">xMin*</text><rect x='.5' y='.5' width='29' height='59' fill='none' stroke='blue'/>
+ <rect fill="red" width="30" height="60" filter="url(#xMinYMinSlice)"/>
+ </g>
+ <g transform="translate(50,0)">
+ <text y="-5">xMid*</text><rect x='.5' y='.5' width='29' height='59' fill='none' stroke='blue'/>
+ <rect fill="red" width="30" height="60" filter="url(#xMidYMidSlice)"/>
+ </g>
+ <g transform="translate(100,0)">
+ <text y="-5">xMax*</text><rect x='.5' y='.5' width='29' height='59' fill='none' stroke='blue'/>
+ <rect fill="red" width="30" height="60" filter="url(#xMaxYMaxSlice)"/>
+ </g>
+ </g>
+ <g id="slide-group-2" transform="translate(300, 155) translate(0, 30)">
+ <text x="0" y="-20">---------- slice ---------------------</text>
+ <g>
+ <text y="-5">*YMin</text>
+ <rect x='.5' y='.5' width='49' height='29' fill='none' stroke='blue'/>
+ <rect fill="red" width="50" height="30" filter="url(#xMinYMinSlice)"/>
+ </g>
+ <g transform="translate(70,0)">
+ <text y="-5">*YMid</text>
+ <rect x='.5' y='.5' width='49' height='29' fill='none' stroke='blue'/>
+ <rect fill="red" width="50" height="30" filter="url(#xMidYMidSlice)"/>
+ </g>
+ <g transform="translate(0,50)">
+ <text y="-5">*YMax</text>
+ <rect x='.5' y='.5' width='49' height='29' fill='none' stroke='blue'/>
+ <rect fill="red" width="50" height="30" filter="url(#xMaxYMaxSlice)"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-light-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-light-01-f-isvalid.html
new file mode 100644
index 0000000000..b490f3e155
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-light-01-f-isvalid.html
@@ -0,0 +1,170 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-light-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-light-01-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-light-01-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Title -->
+ <text x="240" y="20" fill="black" font-size="12" font-family="Arial" text-anchor="middle">Filters: feDistantLight, fePointLight, feSpotLight</text>
+ <!-- ===================================================================== -->
+ <!-- Filter definitions -->
+ <!-- ===================================================================== -->
+ <defs>
+ <!-- ================================================= -->
+ <!-- feDistantLight -->
+ <!-- ================================================= -->
+ <filter id="distantLightA" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <feDistantLight azimuth="0" elevation="0"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="distantLightB" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <feDistantLight azimuth="45" elevation="0"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="distantLightC" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <feDistantLight azimuth="0" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="distantLightD" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feDiffuseLighting>
+ </filter>
+ <!-- ================================================= -->
+ <!-- fePointLight -->
+ <!-- ================================================= -->
+ <filter id="pointLightA" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <fePointLight x="0" y="0" z="10"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="pointLightB" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <fePointLight x="50" y="0" z="10"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="pointLightC" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <fePointLight x="0" y="30" z="10"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="pointLightD" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <fePointLight x="50" y="30" z="10"/>
+ </feDiffuseLighting>
+ </filter>
+ <!-- ================================================= -->
+ <!-- feSpotLight -->
+ <!-- ================================================= -->
+ <filter id="spotLightA" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <feSpotLight x="25" y="0" z="35" pointsAtX="25" pointsAtY="30" pointsAtZ="0" specularExponent="0"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="spotLightB" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <feSpotLight x="25" y="30" z="35" pointsAtX="25" pointsAtY="0" pointsAtZ="0" specularExponent="0"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="spotLightC" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <feSpotLight x="25" y="0" z="35" pointsAtX="25" pointsAtY="30" pointsAtZ="0" specularExponent="1"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="spotLightD" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <feSpotLight x="25" y="0" z="35" pointsAtX="25" pointsAtY="30" pointsAtZ="0" specularExponent="0" limitingConeAngle="30"/>
+ </feDiffuseLighting>
+ </filter>
+ </defs>
+ <!-- ==================================================== -->
+ <!-- The same image is rendered multiple times with using -->
+ <!-- different filters. -->
+ <!-- ==================================================== -->
+ <!-- Various feDistantLights -->
+ <g transform="translate(0, 40)">
+ <text x="70" y="10">Various values for feDistantLight azimuth and elevation</text>
+ <text x="70" y="25">(0, 0)</text>
+ <text x="165" y="25">(45, 0)</text>
+ <text x="260" y="25">(0, 45)</text>
+ <text x="355" y="25">(45, 45)</text>
+ <image xlink:href="../images/bumpMap2.png" x="70" y="30" width="50" height="30" filter="url(#distantLightA)"/>
+ <image xlink:href="../images/bumpMap2.png" x="165" y="30" width="50" height="30" filter="url(#distantLightB)"/>
+ <image xlink:href="../images/bumpMap2.png" x="260" y="30" width="50" height="30" filter="url(#distantLightC)"/>
+ <image xlink:href="../images/bumpMap2.png" x="355" y="30" width="50" height="30" filter="url(#distantLightD)"/>
+ </g>
+ <!-- Various fePointLights -->
+ <g transform="translate(0, 120)">
+ <text x="70" y="10">Various values for fePointLight's x, y and z</text>
+ <text x="70" y="25">(0, 0, 10)</text>
+ <text x="165" y="25">(50, 0, 10)</text>
+ <text x="260" y="25">(0, 30, 10)</text>
+ <text x="355" y="25">(50, 30, 10)</text>
+ </g>
+ <g>
+ <image transform="translate(70, 150)" xlink:href="../images/bumpMap2.png" width="50" height="30" filter="url(#pointLightA)"/>
+ <image transform="translate(165, 150)" xlink:href="../images/bumpMap2.png" width="50" height="30" filter="url(#pointLightB)"/>
+ <image transform="translate(260, 150)" xlink:href="../images/bumpMap2.png" width="50" height="30" filter="url(#pointLightC)"/>
+ <image transform="translate(355, 150)" xlink:href="../images/bumpMap2.png" width="50" height="30" filter="url(#pointLightD)"/>
+ </g>
+ <!-- feSpotLight -->
+ <g transform="translate(0, 210)">
+ <text x="70" y="0">Various values for feSpotLight's x, y, z, pointsAtX, pointsAtY, pointsAtZ</text>
+ <text x="70" y="15">(25, 0, 25)</text>
+ <text x="70" y="30">(25, 30, 0)</text>
+ <text x="165" y="15">(25, 30, 25)</text>
+ <text x="165" y="30">(25, 0, 0)</text>
+ <text x="260" y="30">np=1</text>
+ <text x="355" y="30">limitingConeAngle=30</text>
+ </g>
+ <g>
+ <rect transform="translate(70, 245)" width="50" height="30" filter="url(#spotLightA)"/>
+ <rect transform="translate(165, 245)" width="50" height="30" filter="url(#spotLightB)"/>
+ <rect transform="translate(260, 245)" width="50" height="30" filter="url(#spotLightC)"/>
+ <rect transform="translate(355, 245)" width="50" height="30" filter="url(#spotLightD)"/>
+ </g>
+ <!-- ===================================================== -->
+ <!-- Legends -->
+ <!-- ===================================================== -->
+ <!-- Surface Scale -->
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-light-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-light-02-f-isvalid.html
new file mode 100644
index 0000000000..5ac432761d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-light-02-f-isvalid.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-light-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-light-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-light-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="right">
+ <feSpecularLighting surfaceScale="5" specularConstant="100" specularExponent="10">
+ <feDistantLight azimuth="0" elevation="30"/>
+ </feSpecularLighting>
+ </filter>
+ <filter id="down">
+ <feSpecularLighting surfaceScale="5" specularConstant="100" specularExponent="10">
+ <feDistantLight azimuth="90" elevation="30"/>
+ </feSpecularLighting>
+ </filter>
+ <filter id="left">
+ <feSpecularLighting surfaceScale="5" specularConstant="100" specularExponent="10">
+ <feDistantLight azimuth="180" elevation="30"/>
+ </feSpecularLighting>
+ </filter>
+ <filter id="up">
+ <feSpecularLighting surfaceScale="5" specularConstant="100" specularExponent="10">
+ <feDistantLight azimuth="270" elevation="30"/>
+ </feSpecularLighting>
+ </filter>
+
+ <marker id="arrow" markerWidth="10" markerHeight="10" viewBox="0 0 10 40" overflow="visible" orient="auto">
+ <path d="M-1 5l10 -5l-10 -5z"/>
+ </marker>
+ </defs>
+
+ <text x="50%" y="3em" style="font-size:18px; text-anchor:middle">'feDistantLight' azimuth</text>
+
+ <g transform="scale(4) translate(0 50)">
+ <circle id="c1" r="10" filter="url(#right)" transform="translate(20 0)"/>
+ <circle id="c2" r="10" filter="url(#down)" transform="translate(50 0)"/>
+ <circle id="c3" r="10" filter="url(#left)" transform="translate(80 0)"/>
+ <circle id="c4" r="10" filter="url(#up)" transform="translate(110 0)"/>
+ </g>
+
+ <line marker-end="url(#arrow)" x1="0" y1="-25" x2="0" y2="25" stroke="black" stroke-width="3" transform="translate(200 180)"/>
+ <line marker-end="url(#arrow)" x1="0" y1="-25" x2="0" y2="25" stroke="black" stroke-width="3" transform="rotate(90) translate(200 -350)"/>
+ <line marker-end="url(#arrow)" x1="0" y1="-25" x2="0" y2="25" stroke="black" stroke-width="3" transform="rotate(180) translate(-440 -225)"/>
+ <line marker-end="url(#arrow)" x1="0" y1="-25" x2="0" y2="25" stroke="black" stroke-width="3" transform="rotate(270) translate(-200 50)"/>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-light-03-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-light-03-f-isvalid.html
new file mode 100644
index 0000000000..a6a9c2b3ad
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-light-03-f-isvalid.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-light-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-light-03-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-light-03-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="light-primobjbbox" primitiveUnits="objectBoundingBox">
+ <feSpecularLighting lighting-color="blue" surfaceScale="5" specularConstant="10" specularExponent="6">
+ <!-- Note: for z this assumes that the scalefactor is
+ sqrt(bbox.width*bbox.width + bbox.height*bbox.height)/sqrt(2) -->
+ <fePointLight x="0.875" y="0.875" z="-0.0625"/>
+ </feSpecularLighting>
+ <feComposite operator="in" in2="SourceGraphic"/>
+ </filter>
+ <filter id="light-primobjbbox-rect" primitiveUnits="objectBoundingBox">
+ <feSpecularLighting lighting-color="blue" surfaceScale="5" specularConstant="10" specularExponent="6">
+ <!-- Note: for z the scalefactor is 31,622776601683793319988935444327
+ sqrt(bbox.width*bbox.width + bbox.height*bbox.height)/sqrt(2) -->
+ <fePointLight x="0.75" y="1.5" z="-0.15811388300841896659994467722167"/>
+ </feSpecularLighting>
+ <feComposite operator="in" in2="SourceGraphic"/>
+ </filter>
+ <filter id="light-primusou" primitiveUnits="userSpaceOnUse">
+ <feSpecularLighting lighting-color="blue" surfaceScale="5" specularConstant="10" specularExponent="6">
+ <fePointLight x="30" y="30" z="-5"/>
+ </feSpecularLighting>
+ <feComposite operator="in" in2="SourceGraphic"/>
+ </filter>
+ <filter id="light-primdefault">
+ <feSpecularLighting lighting-color="blue" surfaceScale="5" specularConstant="10" specularExponent="6">
+ <fePointLight x="30" y="30" z="-5"/>
+ </feSpecularLighting>
+ <feComposite operator="in" in2="SourceGraphic"/>
+ </filter>
+ </defs>
+
+ <g stroke="black" transform="translate(80 100)">
+ <circle r="40" stroke-width="10" filter="url(#light-primobjbbox)" fill="black"/>
+ <circle r="44" stroke-width="1" fill="none"/>
+ <rect width="40" height="20" filter="url(#light-primobjbbox-rect)" fill="black" transform="translate(-20 60)"/>
+ <rect width="40" height="20" fill="none" transform="translate(-20 60)"/>
+ <text y="100" font-size="8" stroke="none" text-anchor="middle">primitiveUnits="objectBoundingBox"</text>
+ <circle cx="30" cy="30" r="5" fill="white"/>
+ </g>
+
+ <g stroke="black" transform="translate(245 100)">
+ <circle r="40" stroke-width="10" filter="url(#light-primusou)" fill="black"/>
+ <circle r="44" stroke-width="1" fill="none"/>
+ <rect width="40" height="20" filter="url(#light-primusou)" fill="black" transform="translate(-20 60)"/>
+ <rect width="40" height="20" fill="none" transform="translate(-20 60)"/>
+ <text y="100" font-size="8" stroke="none" text-anchor="middle">primitiveUnits="userSpaceOnUse"</text>
+ <circle cx="30" cy="30" r="5" fill="white"/>
+ </g>
+
+ <g stroke="black" transform="translate(400 100)">
+ <circle r="40" stroke-width="10" filter="url(#light-primdefault)" fill="black"/>
+ <circle r="44" stroke-width="1" fill="none"/>
+ <rect width="40" height="20" filter="url(#light-primdefault)" fill="black" transform="translate(-20 60)"/>
+ <rect width="40" height="20" fill="none" transform="translate(-20 60)"/>
+ <text y="100" font-size="8" stroke="none" text-anchor="middle">primitiveUnits unspecified</text>
+ <circle cx="30" cy="30" r="5" fill="white"/>
+ </g>
+ </g>
+
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.10 $</text>
+ </g>
+
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-light-04-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-light-04-f-isvalid.html
new file mode 100644
index 0000000000..16c15798ee
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-light-04-f-isvalid.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-light-04-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-light-04-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-light-04-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Title -->
+ <text x="240" y="50" fill="black" font-size="16" font-family="Arial" text-anchor="middle">feSpotLight's limitingConeAngle</text>
+ <!-- ===================================================================== -->
+ <!-- Filter definitions -->
+ <!-- ===================================================================== -->
+ <defs>
+ <!-- ================================================= -->
+ <!-- feSpotLight -->
+ <!-- ================================================= -->
+ <filter id="spotLightA" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <feSpotLight x="25" y="0" z="35" pointsAtX="25" pointsAtY="30" pointsAtZ="0" specularExponent="0" limitingConeAngle="30"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="spotLightB" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <feSpotLight x="25" y="0" z="35" pointsAtX="25" pointsAtY="30" pointsAtZ="0" specularExponent="0" limitingConeAngle="20"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="spotLightC" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <feSpotLight x="25" y="0" z="35" pointsAtX="25" pointsAtY="30" pointsAtZ="0" specularExponent="0" limitingConeAngle="0">
+ <animate attributeName="limitingConeAngle" from="0" to="50" dur="10s" fill="freeze"/>
+ </feSpotLight>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="spotLightD" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <feSpotLight x="25" y="0" z="35" pointsAtX="25" pointsAtY="30" pointsAtZ="0" specularExponent="0" limitingConeAngle="5"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="spotLightE" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <feSpotLight x="25" y="0" z="35" pointsAtX="25" pointsAtY="30" pointsAtZ="0" specularExponent="0" limitingConeAngle="-30"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="spotLightF" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <feSpotLight x="25" y="0" z="35" pointsAtX="25" pointsAtY="30" pointsAtZ="0" specularExponent="0" limitingConeAngle="-20"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="spotLightG" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <feSpotLight x="25" y="0" z="35" pointsAtX="25" pointsAtY="30" pointsAtZ="0" specularExponent="0" limitingConeAngle="0">
+ <animate attributeName="limitingConeAngle" from="0" to="-50" dur="10s" fill="freeze"/>
+ </feSpotLight>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="spotLightH" filterUnits="objectBoundingBox" x="0" y="0" width="1" height="1">
+ <feDiffuseLighting in="SourceGraphic" diffuseConstant="1" surfaceScale="10" lighting-color="white">
+ <feSpotLight x="25" y="0" z="35" pointsAtX="25" pointsAtY="30" pointsAtZ="0" specularExponent="0" limitingConeAngle="-5"/>
+ </feDiffuseLighting>
+ </filter>
+ </defs>
+ <!-- feSpotLight -->
+ <g transform="translate(0 -20)">
+ <g transform="translate(0 110)" font-size="9" font-family="Arial">
+ <text x="70" y="30">30</text>
+ <text x="165" y="30">20</text>
+ <text x="260" y="30">Animated (0..50)</text>
+ <text x="355" y="30">5</text>
+ <g transform="translate(0 100)">
+ <text x="70" y="30">-30</text>
+ <text x="165" y="30">-20</text>
+ <text x="260" y="30">Animated (0..-50)</text>
+ <text x="355" y="30">-5</text>
+ </g>
+ </g>
+ <g>
+ <rect transform="translate(70, 145)" width="50" height="30" filter="url(#spotLightA)"/>
+ <rect transform="translate(165, 145)" width="50" height="30" filter="url(#spotLightB)"/>
+ <rect transform="translate(260, 145)" width="50" height="30" filter="url(#spotLightC)"/>
+ <rect transform="translate(355, 145)" width="50" height="30" filter="url(#spotLightD)"/>
+ <rect transform="translate(70, 245)" width="50" height="30" filter="url(#spotLightE)"/>
+ <rect transform="translate(165, 245)" width="50" height="30" filter="url(#spotLightF)"/>
+ <rect transform="translate(260, 245)" width="50" height="30" filter="url(#spotLightG)"/>
+ <rect transform="translate(355, 245)" width="50" height="30" filter="url(#spotLightH)"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-light-05-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-light-05-f-novalid.html
new file mode 100644
index 0000000000..9d2701034a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-light-05-f-novalid.html
@@ -0,0 +1,207 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-light-05-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-light-05-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-light-05-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs color="#00FF00">
+ <filter id="distantLightUp">
+ <feDiffuseLighting in="SourceGraphic" surfaceScale="10" diffuseConstant="1" lighting-color="currentColor">
+ <feDistantLight azimuth="0" elevation="90"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="distantLightDown">
+ <feDiffuseLighting in="SourceGraphic" surfaceScale="10" diffuseConstant="1" lighting-color="currentColor">
+ <feDistantLight azimuth="0" elevation="270"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="distantLightLeft">
+ <feDiffuseLighting in="SourceGraphic" surfaceScale="10" diffuseConstant="1" lighting-color="currentColor">
+ <feDistantLight azimuth="0" elevation="180"/>
+ </feDiffuseLighting>
+ </filter>
+ <filter id="distantLightRight">
+ <feDiffuseLighting in="SourceGraphic" surfaceScale="10" diffuseConstant="1" lighting-color="currentColor">
+ <feDistantLight azimuth="0" elevation="0"/>
+ </feDiffuseLighting>
+ </filter>
+
+ <filter id="specularLightUp">
+ <feSpecularLighting in="SourceGraphic" surfaceScale="10" specularConstant="1" specularExponent="1" lighting-color="currentColor">
+ <feDistantLight azimuth="0" elevation="90"/>
+ </feSpecularLighting>
+ </filter>
+ <filter id="specularLightDown">
+ <feSpecularLighting in="SourceGraphic" surfaceScale="10" specularConstant="1" specularExponent="1" lighting-color="currentColor">
+ <feDistantLight azimuth="0" elevation="270"/>
+ </feSpecularLighting>
+ </filter>
+ <filter id="specularLightLeft">
+ <feSpecularLighting in="SourceGraphic" surfaceScale="10" specularConstant="1" specularExponent="1" lighting-color="currentColor">
+ <feDistantLight azimuth="0" elevation="180"/>
+ </feSpecularLighting>
+ </filter>
+ <filter id="specularLightRight">
+ <feSpecularLighting in="SourceGraphic" surfaceScale="10" specularConstant="1" specularExponent="1" lighting-color="currentColor">
+ <feDistantLight azimuth="0" elevation="0"/>
+ </feSpecularLighting>
+ </filter>
+
+ <filter id="combinedUp">
+ <feDiffuseLighting in="SourceGraphic" surfaceScale="10" diffuseConstant="1" lighting-color="currentColor" result="res_a">
+ <feDistantLight azimuth="0" elevation="90"/>
+ </feDiffuseLighting>
+ <feSpecularLighting in="SourceGraphic" surfaceScale="10" specularConstant="1" specularExponent="1" lighting-color="currentColor" result="res_b">
+ <feDistantLight azimuth="0" elevation="90"/>
+ </feSpecularLighting>
+ <feMerge>
+ <feMergeNode in="res_a"/>
+ <feMergeNode in="res_b"/>
+ </feMerge>
+ </filter>
+ <filter id="combinedDown">
+ <feDiffuseLighting in="SourceGraphic" surfaceScale="10" diffuseConstant="1" lighting-color="currentColor" result="res_a">
+ <feDistantLight azimuth="0" elevation="270"/>
+ </feDiffuseLighting>
+ <feSpecularLighting in="SourceGraphic" surfaceScale="10" specularConstant="1" specularExponent="1" lighting-color="currentColor" result="res_b">
+ <feDistantLight azimuth="0" elevation="270"/>
+ </feSpecularLighting>
+ <feMerge>
+ <feMergeNode in="res_a"/>
+ <feMergeNode in="res_b"/>
+ </feMerge>
+ </filter>
+ <filter id="combinedLeft">
+ <feDiffuseLighting in="SourceGraphic" surfaceScale="10" diffuseConstant="1" lighting-color="currentColor" result="res_a">
+ <feDistantLight azimuth="0" elevation="180"/>
+ </feDiffuseLighting>
+ <feSpecularLighting in="SourceGraphic" surfaceScale="10" specularConstant="1" specularExponent="1" lighting-color="currentColor" result="res_b">
+ <feDistantLight azimuth="0" elevation="180"/>
+ </feSpecularLighting>
+ <feMerge>
+ <feMergeNode in="res_a"/>
+ <feMergeNode in="res_b"/>
+ </feMerge>
+ </filter>
+ <filter id="combinedRight">
+ <feDiffuseLighting in="SourceGraphic" surfaceScale="10" diffuseConstant="1" lighting-color="currentColor" result="res_a">
+ <feDistantLight azimuth="0" elevation="0"/>
+ </feDiffuseLighting>
+ <feSpecularLighting in="SourceGraphic" surfaceScale="10" specularConstant="1" specularExponent="1" lighting-color="currentColor" result="res_b">
+ <feDistantLight azimuth="0" elevation="0"/>
+ </feSpecularLighting>
+ <feMerge>
+ <feMergeNode in="res_a"/>
+ <feMergeNode in="res_b"/>
+ </feMerge>
+ </filter>
+ </defs>
+
+ <text x="70" y="40" stroke="none" fill="black">feDiffuseLight using feDistantLight source</text>
+ <g transform="scale(1.5) translate(5 45)">
+ <circle id="c1" r="10" fill="red" filter="url(#distantLightUp)" transform="translate(20 0)"/>
+ <circle id="c2" r="10" fill="red" filter="url(#distantLightDown)" transform="translate(50 0)"/>
+ <circle id="c3" r="10" fill="red" filter="url(#distantLightLeft)" transform="translate(80 0)"/>
+ <circle id="c4" r="10" fill="red" filter="url(#distantLightRight)" transform="translate(110 0)"/>
+ </g>
+ <text x="20" y="100" font-size="10" stroke="none" fill="black">90 deg</text>
+ <text x="65" y="100" font-size="10" stroke="none" fill="black">270 deg</text>
+ <text x="110" y="100" font-size="10" stroke="none" fill="black">180 deg</text>
+ <text x="160" y="100" font-size="10" stroke="none" fill="black">0 deg</text>
+
+ <text x="70" y="135" stroke="none" fill="black">feSpecularLight using feDistantLight source</text>
+ <g transform="scale(1.5) translate(5 110)">
+ <circle id="c1" r="10" fill="red" filter="url(#specularLightUp)" transform="translate(20 0)"/>
+ <circle id="c2" r="10" fill="red" filter="url(#specularLightDown)" transform="translate(50 0)"/>
+ <circle id="c3" r="10" fill="red" filter="url(#specularLightLeft)" transform="translate(80 0)"/>
+ <circle id="c4" r="10" fill="red" filter="url(#specularLightRight)" transform="translate(110 0)"/>
+ </g>
+ <text x="20" y="195" font-size="10" stroke="none" fill="black">90 deg</text>
+ <text x="65" y="195" font-size="10" stroke="none" fill="black">270 deg</text>
+ <text x="110" y="195" font-size="10" stroke="none" fill="black">180 deg</text>
+ <text x="160" y="195" font-size="10" stroke="none" fill="black">0 deg</text>
+
+ <text x="30" y="230" stroke="none" fill="black">feDiffuseLight and feSpecularLight using feDistantLight</text>
+ <g transform="scale(1.5) translate(5 170)">
+ <circle id="c1" r="10" fill="red" filter="url(#combinedUp)" transform="translate(20 0)"/>
+ <circle id="c2" r="10" fill="red" filter="url(#combinedDown)" transform="translate(50 0)"/>
+ <circle id="c3" r="10" fill="red" filter="url(#combinedLeft)" transform="translate(80 0)"/>
+ <circle id="c4" r="10" fill="red" filter="url(#combinedRight)" transform="translate(110 0)"/>
+ </g>
+ <text x="20" y="290" font-size="10" stroke="none" fill="black">90 deg</text>
+ <text x="65" y="290" font-size="10" stroke="none" fill="black">270 deg</text>
+ <text x="110" y="290" font-size="10" stroke="none" fill="black">180 deg</text>
+ <text x="160" y="290" font-size="10" stroke="none" fill="black">0 deg</text>
+
+ <g transform="translate(0, 55)">
+ <image xlink:href="../images/bumpMap3.png" x="240" y="0" width="40" height="30" filter="url(#distantLightUp)"/>
+ <image xlink:href="../images/bumpMap3.png" x="300" y="0" width="40" height="30" filter="url(#distantLightDown)"/>
+ <image xlink:href="../images/bumpMap3.png" x="360" y="0" width="40" height="30" filter="url(#distantLightLeft)"/>
+ <image xlink:href="../images/bumpMap3.png" x="420" y="0" width="40" height="30" filter="url(#distantLightRight)"/>
+ </g>
+ <text x="245" y="100" font-size="10" stroke="none" fill="black">90 deg</text>
+ <text x="305" y="100" font-size="10" stroke="none" fill="black">270 deg</text>
+ <text x="365" y="100" font-size="10" stroke="none" fill="black">180 deg</text>
+ <text x="430" y="100" font-size="10" stroke="none" fill="black">0 deg</text>
+
+ <g transform="translate(0, 150)">
+ <image xlink:href="../images/bumpMap3.png" x="240" y="0" width="40" height="30" filter="url(#specularLightUp)"/>
+ <image xlink:href="../images/bumpMap3.png" x="300" y="0" width="40" height="30" filter="url(#specularLightDown)"/>
+ <image xlink:href="../images/bumpMap3.png" x="360" y="0" width="40" height="30" filter="url(#specularLightLeft)"/>
+ <image xlink:href="../images/bumpMap3.png" x="420" y="0" width="40" height="30" filter="url(#specularLightRight)"/>
+ </g>
+ <text x="245" y="195" font-size="10" stroke="none" fill="black">90 deg</text>
+ <text x="305" y="195" font-size="10" stroke="none" fill="black">270 deg</text>
+ <text x="365" y="195" font-size="10" stroke="none" fill="black">180 deg</text>
+ <text x="430" y="195" font-size="10" stroke="none" fill="black">0 deg</text>
+
+ <g transform="translate(0, 240)">
+ <image xlink:href="../images/bumpMap3.png" x="240" y="0" width="40" height="30" filter="url(#combinedUp)"/>
+ <image xlink:href="../images/bumpMap3.png" x="300" y="0" width="40" height="30" filter="url(#combinedDown)"/>
+ <image xlink:href="../images/bumpMap3.png" x="360" y="0" width="40" height="30" filter="url(#combinedLeft)"/>
+ <image xlink:href="../images/bumpMap3.png" x="420" y="0" width="40" height="30" filter="url(#combinedRight)"/>
+ </g>
+ <text x="245" y="290" font-size="10" stroke="none" fill="black">90 deg</text>
+ <text x="305" y="290" font-size="10" stroke="none" fill="black">270 deg</text>
+ <text x="365" y="290" font-size="10" stroke="none" fill="black">180 deg</text>
+ <text x="430" y="290" font-size="10" stroke="none" fill="black">0 deg</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-morph-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-morph-01-f-isvalid.html
new file mode 100644
index 0000000000..2f3a162d66
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-morph-01-f-isvalid.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-morph-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-morph-01-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-morph-01-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="240" y="16" text-anchor="middle" font-size="12pt">Filter Effect: feMorphology</text>
+ <g transform="translate(0, -6)">
+ <defs>
+ <filter id="erode1" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feMorphology operator="erode" radius="1"/>
+ </filter>
+ <filter id="erode2" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feMorphology operator="erode" radius="2"/>
+ </filter>
+ <filter id="dilate1" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feMorphology operator="dilate" radius="1"/>
+ </filter>
+ <filter id="dilate2" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feMorphology operator="dilate" radius="3"/>
+ </filter>
+ <g id="morphologySource">
+ <g fill-rule="nonzero" clip-rule="nonzero" stroke="#000000" stroke-miterlimit="4">
+ <g>
+ <path fill="#FFFFFF" stroke="#6666FF" stroke-width="7.1711" d="M81.403,78.289H3.585v-64.75h77.818v64.75z"/>
+ <path fill="none" stroke="#00FF00" stroke-width="7.1711" d="M93.261,77.536c0,23.285-18.581,42.163-41.503,42.163c-22.921,0-41.503-18.877-41.503-42.163c0-23.286,18.582-42.163,41.503-42.163c22.922,0,41.503,18.877,41.503,42.163z"/>
+ <path fill="none" stroke="#FF8000" stroke-width="7.1711" d="M98.31,28.445l13.288,27.354l29.714,4.385l-21.501,21.292l5.076,30.064L98.31,97.347l-26.577,14.194l5.076-30.064L55.307,60.184l29.714-4.385L98.31,28.445z"/>
+ <path fill="none" stroke="#FFFF00" stroke-width="7.1711" d="M131.563,26.338c0,28.559-22.79,51.709-50.901,51.709c-22.489,0-40.72-18.521-40.72-41.367c0-18.278,14.584-33.095,32.576-33.095c14.394,0,26.061,11.854,26.061,26.475 c0,11.698-9.334,21.181-20.849,21.181c-9.211,0-16.68-7.586-16.68-16.944c0-7.486,5.975-13.555,13.344-13.555c5.895,0,10.674,4.855,10.674,10.844c0,4.791-3.823,8.676-8.54,8.676c-3.773,0-6.832-3.107-6.832-6.941"/>
+ </g>
+ </g>
+ </g>
+ </defs>
+ <g text-anchor="middle">
+ <g transform="translate(0, 0)">
+ <use xlink:href="#morphologySource" x="35" y="25" filter="url(#erode1)"/>
+ <text x="110" y="156">type=erode radius=1</text>
+ </g>
+ <g transform="translate(255, 0)">
+ <use xlink:href="#morphologySource" x="35" y="25" filter="url(#erode2)"/>
+ <text x="110" y="156">type=erode radius=2</text>
+ </g>
+ <g transform="translate(0, 140)">
+ <use xlink:href="#morphologySource" x="35" y="25" filter="url(#dilate1)"/>
+ <text x="110" y="156">type=dilate radius=1</text>
+ </g>
+ <g transform="translate(255, 140)">
+ <use xlink:href="#morphologySource" x="35" y="25" filter="url(#dilate2)"/>
+ <text x="110" y="156">type=dilate radius=3</text>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-offset-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-offset-01-b-isvalid.html
new file mode 100644
index 0000000000..d1129afd24
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-offset-01-b-isvalid.html
@@ -0,0 +1,85 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-offset-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-offset-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-offset-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <filter id="FOMTest" filterUnits="objectBoundingBox" x="0" y="0" width="2.5" height="4">
+
+ <feOffset result="Off1" dx="40" dy="30"/>
+ <feFlood result="F1" flood-color="#408000" flood-opacity=".8"/>
+ <feComposite in2="Off1" operator="in" result="C1"/>
+
+ <feOffset in="SourceGraphic" result="Off2" dx="80" dy="60"/>
+ <feFlood result="F2" flood-color="#408000" flood-opacity=".6"/>
+ <feComposite in2="Off2" operator="in" result="C2"/>
+
+ <feOffset in="SourceGraphic" result="Off3" dx="120" dy="90"/>
+ <feFlood result="F3" flood-color="#408000" flood-opacity=".4"/>
+ <feComposite in2="Off3" operator="in" result="C3"/>
+
+ <feMerge>
+ <feMergeNode in="C3"/>
+ <feMergeNode in="C2"/>
+ <feMergeNode in="C1"/>
+ <feMergeNode in="SourceGraphic"/>
+ </feMerge>
+ </filter>
+ </defs>
+
+ <circle cx="160" cy="50" r="40" fill="#000" filter="url(#FOMTest)"/>
+
+ <!-- Add some crosshairs of the same color of the
+ flood at the same location as the offset -->
+
+ <!-- 20 pixel cross hair at 120,90 -->
+ <path fill="#000" transform="translate(120, 90)" d="M-1,-11h2v10h10v2h-10v10h-2v-10h-10v-2h10v-10"/>
+
+ <!-- 20 pixel cross hair at 160,120 -->
+ <path fill="#408000" fill-opacity=".8" transform="translate(160, 120)" d="M-1,-11h2v10h10v2h-10v10h-2v-10h-10v-2h10v-10"/>
+
+ <!-- 20 pixel cross hair at 200,150 -->
+ <path fill="#408000" fill-opacity=".6" transform="translate(200, 150)" d="M-1,-11h2v10h10v2h-10v10h-2v-10h-10v-2h10v-10"/>
+
+ <!-- 20 pixel cross hair at 240,180 -->
+ <path fill="#408000" fill-opacity=".4" transform="translate(240, 180)" d="M-1,-11h2v10h10v2h-10v10h-2v-10h-10v-2h10v-10"/>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-offset-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-offset-02-b-isvalid.html
new file mode 100644
index 0000000000..951b0c5dd5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-offset-02-b-isvalid.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-offset-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-offset-02-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-offset-02-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <filter id="feoffset1" primitiveUnits="objectBoundingBox" x="0%" y="0%" width="200%" height="200%">
+ <feFlood width="100%" height="100%" flood-color="lime"/>
+ <feOffset dx="0.1" dy="0.2"/>
+ </filter>
+ <filter id="feoffset2" primitiveUnits="objectBoundingBox" x="0%" y="0%" width="200%" height="200%">
+ <feOffset dx="1" dy="1"/>
+ </filter>
+ <filter id="feoffset3" primitiveUnits="objectBoundingBox" x="-100%" y="0%" width="200%" height="100%">
+ <feOffset dx="-1"/>
+ </filter>
+ </defs>
+
+ <g transform="translate(-10 60)">
+ <rect x="60" y="70" width="100" height="100" fill="red"/>
+ <rect x="50" y="50" width="100" height="100" fill="red" filter="url(#feoffset1)"/>
+ <rect x="60" y="70" width="100" height="100" fill="none" stroke="black" stroke-width="2"/>
+
+ <rect x="200" y="70" width="100" height="100" fill="red"/>
+ <rect x="100" y="-30" width="100" height="100" fill="lime" filter="url(#feoffset2)"/>
+ <rect x="200" y="70" width="100" height="100" fill="none" stroke="black" stroke-width="2"/>
+
+ <rect x="340" y="70" width="100" height="100" fill="red"/>
+ <rect x="440" y="70" width="100" height="100" fill="lime" filter="url(#feoffset3)"/>
+ <rect x="340" y="70" width="100" height="100" fill="none" stroke="black" stroke-width="2"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-overview-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-overview-01-b-isvalid.html
new file mode 100644
index 0000000000..69726a9e9e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-overview-01-b-isvalid.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-overview-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-overview-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-overview-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <linearGradient id="grad1" gradientUnits="objectBoundingBox" x1="50%" y1="-3%" x2="50%" y2="106%">
+ <stop offset="0.00" stop-color="#0000ff"/>
+ <stop offset="0.33" stop-color="#ffffff"/>
+ <stop offset="0.67" stop-color="#ff0000"/>
+ <stop offset="1.00" stop-color="#ffff00"/>
+ </linearGradient>
+
+ <filter id="GaussianBlur1" filterUnits="objectBoundingBox" x="-20%" y="-20%" width="140%" height="140%">
+ <feGaussianBlur in="SourceAlpha" stdDeviation="2"/>
+ </filter>
+
+ <filter id="GaussianBlur2" filterUnits="objectBoundingBox" x="-20%" y="-20%" width="140%" height="140%">
+ <feGaussianBlur in="SourceGraphic" stdDeviation="2"/>
+ </filter>
+
+ <filter id="GaussianBlur3" filterUnits="objectBoundingBox" x="-30%" y="-30%" width="160%" height="160%">
+ <feFlood flood-color="white" result="flood"/>
+ <feGaussianBlur in="BackgroundAlpha" stdDeviation="2" result="blur"/>
+ <feMerge>
+ <feMergeNode in="flood"/>
+ <feMergeNode in="blur"/>
+ </feMerge>
+ </filter>
+
+ <filter id="GaussianBlur4" filterUnits="objectBoundingBox" x="-40%" y="-40%" width="180%" height="180%">
+ <feFlood flood-color="white" result="flood"/>
+ <feGaussianBlur in="BackgroundImage" stdDeviation="2" result="blur"/>
+ <feMerge>
+ <feMergeNode in="flood"/>
+ <feMergeNode in="blur"/>
+ </feMerge>
+ </filter>
+
+ <filter id="GaussianBlur5" filterUnits="objectBoundingBox" x="-20%" y="-20%" width="140%" height="140%">
+ <feGaussianBlur in="StrokePaint" stdDeviation="5"/>
+ </filter>
+
+ <filter id="GaussianBlur6" filterUnits="objectBoundingBox" x="-20%" y="-20%" width="140%" height="140%">
+ <feGaussianBlur in="FillPaint" stdDeviation="5"/>
+ </filter>
+ </defs>
+
+ <g enable-background="new" stroke-dasharray="25 5" stroke="black" stroke-width="3" font-size="14" fill="black">
+
+ <rect x="90" y="50" width="16" height="95" fill="green"/>
+ <g fill-opacity="0.6" stroke="black" stroke-width="3" filter="url(#GaussianBlur1)">
+ <circle cx="098" cy="085" r="25" fill="red"/>
+ <circle cx="080" cy="110" r="25" fill="blue"/>
+ <circle cx="116" cy="110" r="25" fill="green"/>
+ </g>
+ <text x="98" y="160" stroke="none" text-anchor="middle">SourceAlpha</text>
+
+ <desc> =========================================================================================== </desc>
+
+ <rect x="90" y="185" width="16" height="95" fill="green"/>
+ <g fill-opacity="0.6" stroke="black" stroke-width="3" filter="url(#GaussianBlur2)">
+ <circle cx="098" cy="220" r="25" fill="red"/>
+ <circle cx="080" cy="245" r="25" fill="blue"/>
+ <circle cx="116" cy="245" r="25" fill="green"/>
+ </g>
+ <text x="98" y="295" stroke="none" text-anchor="middle">SourceGraphic</text>
+
+ <desc> =========================================================================================== </desc>
+
+ <rect x="230" y="50" width="16" height="95" fill="green"/>
+ <g fill-opacity="0.6" stroke="black" stroke-width="3" filter="url(#GaussianBlur3)">
+ <circle cx="238" cy="085" r="25" fill="red"/>
+ <circle cx="220" cy="110" r="25" fill="blue"/>
+ <circle cx="256" cy="110" r="25" fill="green"/>
+ </g>
+ <text x="238" y="160" stroke="none" text-anchor="middle">BackgroundAlpha</text>
+
+ <desc> =========================================================================================== </desc>
+
+ <rect x="230" y="185" width="16" height="95" fill="green"/>
+ <g fill-opacity="0.6" stroke="black" stroke-width="3" filter="url(#GaussianBlur4)">
+ <circle cx="238" cy="220" r="25" fill="red"/>
+ <circle cx="220" cy="245" r="25" fill="blue"/>
+ <circle cx="256" cy="245" r="25" fill="green"/>
+ </g>
+ <text x="238" y="295" stroke="none" text-anchor="middle">BackgroundImage</text>
+
+ <desc> =========================================================================================== </desc>
+
+ <rect x="370" y="50" width="16" height="95" fill="green"/>
+ <g id='g' stroke-opacity="0.6" stroke="blue" stroke-width="3" filter="url(#GaussianBlur5)">
+ <circle cx="378" cy="085" r="25" fill="red"/>
+ <circle cx="360" cy="110" r="25" fill="blue"/>
+ <circle cx="396" cy="110" r="25" fill="green"/>
+ </g>
+ <text x="378" y="160" stroke="none" text-anchor="middle">FillPaint</text>
+
+ <desc> =========================================================================================== </desc>
+
+ <rect x="370" y="185" width="16" height="95" fill="green"/>
+ <g fill-opacity="0.6" fill="blue" stroke="black" stroke-width="3" filter="url(#GaussianBlur6)">
+ <circle cx="378" cy="220" r="25"/>
+ <circle cx="360" cy="245" r="25"/>
+ <circle cx="396" cy="245" r="25"/>
+ </g>
+ <text x="378" y="295" stroke="none" text-anchor="middle">StrokePaint</text>
+
+ </g>
+
+ <text x="240" y="30" font-size="20" text-anchor="middle">Filter input test</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-overview-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-overview-02-b-isvalid.html
new file mode 100644
index 0000000000..b91fc64207
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-overview-02-b-isvalid.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-overview-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-overview-02-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-overview-02-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <linearGradient id="grad1" gradientUnits="userSpaceOnUse" x1="140.5" y1="57.75" x2="140.5" y2="139.5">
+ <stop offset="0.00" stop-color="#0000ff"/>
+ <stop offset="0.33" stop-color="#ffffff"/>
+ <stop offset="0.67" stop-color="#ff0000"/>
+ <stop offset="1.00" stop-color="#ffff00"/>
+ </linearGradient>
+
+ <linearGradient id="grad2" gradientUnits="userSpaceOnUse" x1="140.5" y1="192.75" x2="140.5" y2="274.5">
+ <stop offset="0.00" stop-color="#0000ff"/>
+ <stop offset="0.33" stop-color="#ffffff"/>
+ <stop offset="0.67" stop-color="#ff0000"/>
+ <stop offset="1.00" stop-color="#ffff00"/>
+ </linearGradient>
+
+ <filter id="GaussianBlur1" filterUnits="objectBoundingBox" x="-20%" y="-20%" width="140%" height="140%">
+ <feGaussianBlur in="SourceAlpha" stdDeviation="2"/>
+ </filter>
+
+ <filter id="GaussianBlur2" filterUnits="objectBoundingBox" x="-20%" y="-20%" width="140%" height="140%">
+ <feGaussianBlur in="SourceGraphic" stdDeviation="2"/>
+ </filter>
+
+ <filter id="GaussianBlur3" filterUnits="objectBoundingBox" x="-30%" y="-30%" width="160%" height="160%">
+ <feFlood flood-color="white" result="flood"/>
+ <feGaussianBlur in="BackgroundAlpha" stdDeviation="2" result="blur"/>
+ <feMerge>
+ <feMergeNode in="flood"/>
+ <feMergeNode in="blur"/>
+ </feMerge>
+ </filter>
+
+ <filter id="GaussianBlur4" filterUnits="objectBoundingBox" x="-40%" y="-40%" width="180%" height="180%">
+ <feFlood flood-color="white" result="flood"/>
+ <feGaussianBlur in="BackgroundImage" stdDeviation="2" result="blur"/>
+ <feMerge>
+ <feMergeNode in="flood"/>
+ <feMergeNode in="blur"/>
+ </feMerge>
+ </filter>
+
+ <filter id="GaussianBlur5" filterUnits="objectBoundingBox" x="-20%" y="-20%" width="140%" height="140%">
+ <feGaussianBlur in="StrokePaint" stdDeviation="5"/>
+ </filter>
+
+ <filter id="GaussianBlur6" filterUnits="objectBoundingBox" x="-20%" y="-20%" width="140%" height="140%">
+ <feGaussianBlur in="FillPaint" stdDeviation="5"/>
+ </filter>
+ </defs>
+
+ <g enable-background="new" stroke-dasharray="25 5" stroke="black" stroke-width="3" font-size="14" fill="black">
+
+ <rect x="90" y="50" width="16" height="95" fill="green"/>
+ <g fill-opacity="0.6" stroke="black" stroke-width="3" filter="url(#GaussianBlur1)">
+ <circle cx="098" cy="085" r="25" fill="red"/>
+ <circle cx="080" cy="110" r="25" fill="blue"/>
+ <circle cx="116" cy="110" r="25" fill="green"/>
+ </g>
+ <text x="98" y="160" stroke="none" text-anchor="middle">SourceAlpha</text>
+
+ <desc> =========================================================================================== </desc>
+
+ <rect x="90" y="185" width="16" height="95" fill="green"/>
+ <g fill-opacity="0.6" stroke="black" stroke-width="3" filter="url(#GaussianBlur2)">
+ <circle cx="098" cy="220" r="25" fill="red"/>
+ <circle cx="080" cy="245" r="25" fill="blue"/>
+ <circle cx="116" cy="245" r="25" fill="green"/>
+ </g>
+ <text x="98" y="295" stroke="none" text-anchor="middle">SourceGraphic</text>
+
+ <desc> =========================================================================================== </desc>
+
+ <rect x="230" y="50" width="16" height="95" fill="green"/>
+ <g fill-opacity="0.6" stroke="black" stroke-width="3" filter="url(#GaussianBlur3)">
+ <circle cx="238" cy="085" r="25" fill="red"/>
+ <circle cx="220" cy="110" r="25" fill="blue"/>
+ <circle cx="256" cy="110" r="25" fill="green"/>
+ </g>
+ <text x="238" y="160" stroke="none" text-anchor="middle">BackgroundAlpha</text>
+
+ <desc> =========================================================================================== </desc>
+
+ <rect x="230" y="185" width="16" height="95" fill="green"/>
+ <g fill-opacity="0.6" stroke="black" stroke-width="3" filter="url(#GaussianBlur4)">
+ <circle cx="238" cy="220" r="25" fill="red"/>
+ <circle cx="220" cy="245" r="25" fill="blue"/>
+ <circle cx="256" cy="245" r="25" fill="green"/>
+ </g>
+ <text x="238" y="295" stroke="none" text-anchor="middle">BackgroundImage</text>
+
+ <desc> =========================================================================================== </desc>
+
+ <rect x="370" y="50" width="16" height="95" fill="green"/>
+ <!-- bbox: 335 60 86 75 -->
+ <g stroke-opacity="0.6" stroke="url(#grad1)" stroke-width="3" filter="url(#GaussianBlur5)">
+ <circle cx="378" cy="085" r="25" fill="red"/>
+ <circle cx="360" cy="110" r="25" fill="blue"/>
+ <circle cx="396" cy="110" r="25" fill="green"/>
+ </g>
+ <text x="378" y="160" stroke="none" text-anchor="middle">FillPaint</text>
+
+ <desc> =========================================================================================== </desc>
+
+ <rect x="370" y="185" width="16" height="95" fill="green"/>
+ <!-- bbox: 335 195 86 75 -->
+ <g fill-opacity="0.6" fill="url(#grad2)" stroke="black" stroke-width="3" filter="url(#GaussianBlur6)">
+ <circle cx="378" cy="220" r="25"/>
+ <circle cx="360" cy="245" r="25"/>
+ <circle cx="396" cy="245" r="25"/>
+ </g>
+ <text x="378" y="295" stroke="none" text-anchor="middle">StrokePaint</text>
+
+ </g>
+
+ <text x="240" y="30" font-size="20" text-anchor="middle">Filter input test</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-overview-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-overview-03-b-isvalid.html
new file mode 100644
index 0000000000..6ecdc69fe4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-overview-03-b-isvalid.html
@@ -0,0 +1,151 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-overview-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-overview-03-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-overview-03-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <linearGradient id="grad1" gradientUnits="objectBoundingBox" x1="50%" y1="-3%" x2="50%" y2="106%">
+ <stop offset="0.00" stop-color="#0000ff"/>
+ <stop offset="0.33" stop-color="#ffffff"/>
+ <stop offset="0.67" stop-color="#ff0000"/>
+ <stop offset="1.00" stop-color="#ffff00"/>
+ </linearGradient>
+
+ <filter id="GaussianBlur1" filterUnits="objectBoundingBox" x="-20%" y="-20%" width="140%" height="140%">
+ <feGaussianBlur in="SourceAlpha" stdDeviation="2"/>
+ </filter>
+
+ <filter id="GaussianBlur2" filterUnits="objectBoundingBox" x="-20%" y="-20%" width="140%" height="140%">
+ <feGaussianBlur in="SourceGraphic" stdDeviation="2"/>
+ </filter>
+
+ <filter id="GaussianBlur3" filterUnits="objectBoundingBox" x="-30%" y="-30%" width="160%" height="160%">
+ <feFlood flood-color="white" result="flood"/>
+ <feGaussianBlur in="BackgroundAlpha" stdDeviation="2" result="blur"/>
+ <feMerge>
+ <feMergeNode in="flood"/>
+ <feMergeNode in="blur"/>
+ </feMerge>
+ </filter>
+
+ <filter id="GaussianBlur4" filterUnits="objectBoundingBox" x="-40%" y="-40%" width="180%" height="180%">
+ <feFlood flood-color="white" result="flood"/>
+ <feGaussianBlur in="BackgroundImage" stdDeviation="2" result="blur"/>
+ <feMerge>
+ <feMergeNode in="flood"/>
+ <feMergeNode in="blur"/>
+ </feMerge>
+ </filter>
+
+ <filter id="GaussianBlur5" filterUnits="objectBoundingBox" x="-20%" y="-20%" width="140%" height="140%">
+ <feGaussianBlur in="StrokePaint" stdDeviation="5"/>
+ </filter>
+
+ <filter id="GaussianBlur6" filterUnits="objectBoundingBox" x="-20%" y="-20%" width="140%" height="140%">
+ <feGaussianBlur in="FillPaint" stdDeviation="5"/>
+ </filter>
+ </defs>
+
+ <g enable-background="new" stroke-dasharray="25 5" stroke="black" stroke-width="3" font-size="14" fill="black">
+
+ <rect x="90" y="50" width="16" height="95" fill="green"/>
+ <g fill-opacity="0.6" stroke="black" stroke-width="3" filter="url(#GaussianBlur1)">
+ <circle cx="098" cy="085" r="25" fill="red"/>
+ <circle cx="080" cy="110" r="25" fill="blue"/>
+ <circle cx="116" cy="110" r="25" fill="green"/>
+ </g>
+ <text x="98" y="160" stroke="none" text-anchor="middle">SourceAlpha</text>
+
+ <desc> =========================================================================================== </desc>
+
+ <rect x="90" y="185" width="16" height="95" fill="green"/>
+ <g fill-opacity="0.6" stroke="black" stroke-width="3" filter="url(#GaussianBlur2)">
+ <circle cx="098" cy="220" r="25" fill="red"/>
+ <circle cx="080" cy="245" r="25" fill="blue"/>
+ <circle cx="116" cy="245" r="25" fill="green"/>
+ </g>
+ <text x="98" y="295" stroke="none" text-anchor="middle">SourceGraphic</text>
+
+ <desc> =========================================================================================== </desc>
+
+ <rect x="230" y="50" width="16" height="95" fill="green"/>
+ <g fill-opacity="0.6" stroke="black" stroke-width="3" filter="url(#GaussianBlur3)">
+ <circle cx="238" cy="085" r="25" fill="red"/>
+ <circle cx="220" cy="110" r="25" fill="blue"/>
+ <circle cx="256" cy="110" r="25" fill="green"/>
+ </g>
+ <text x="238" y="160" stroke="none" text-anchor="middle">BackgroundAlpha</text>
+
+ <desc> =========================================================================================== </desc>
+
+ <rect x="230" y="185" width="16" height="95" fill="green"/>
+ <g fill-opacity="0.6" stroke="black" stroke-width="3" filter="url(#GaussianBlur4)">
+ <circle cx="238" cy="220" r="25" fill="red"/>
+ <circle cx="220" cy="245" r="25" fill="blue"/>
+ <circle cx="256" cy="245" r="25" fill="green"/>
+ </g>
+ <text x="238" y="295" stroke="none" text-anchor="middle">BackgroundImage</text>
+
+ <desc> =========================================================================================== </desc>
+
+ <rect x="370" y="50" width="16" height="95" fill="green"/>
+ <g id='g' stroke-opacity="0.6" stroke="url(#grad1)" stroke-width="3" filter="url(#GaussianBlur5)">
+ <circle cx="378" cy="085" r="25" fill="red"/>
+ <circle cx="360" cy="110" r="25" fill="blue"/>
+ <circle cx="396" cy="110" r="25" fill="green"/>
+ </g>
+ <text x="378" y="160" stroke="none" text-anchor="middle">FillPaint</text>
+
+ <desc> =========================================================================================== </desc>
+
+ <rect x="370" y="185" width="16" height="95" fill="green"/>
+ <g fill-opacity="0.6" fill="url(#grad1)" stroke="black" stroke-width="3" filter="url(#GaussianBlur6)">
+ <circle cx="378" cy="220" r="25"/>
+ <circle cx="360" cy="245" r="25"/>
+ <circle cx="396" cy="245" r="25"/>
+ </g>
+ <text x="378" y="295" stroke="none" text-anchor="middle">StrokePaint</text>
+
+ </g>
+
+ <text x="240" y="30" font-size="20" text-anchor="middle">Filter input test</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-specular-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-specular-01-f-isvalid.html
new file mode 100644
index 0000000000..03da4c31b3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-specular-01-f-isvalid.html
@@ -0,0 +1,179 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-specular-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-specular-01-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-specular-01-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Title -->
+ <text x="240" y="20" fill="black" font-size="12" font-family="Arial" text-anchor="middle">Filters: feSpecularLighting</text>
+ <!-- ===================================================================== -->
+ <!-- Filter definitions -->
+ <!-- ===================================================================== -->
+ <defs>
+ <!-- ================================================= -->
+ <!-- Surface scale -->
+ <!-- ================================================= -->
+ <filter id="surfaceScaleA" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feSpecularLighting in="SourceGraphic" specularConstant="1" specularExponent="1" surfaceScale="1" lighting-color="white">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feSpecularLighting>
+ </filter>
+ <filter id="surfaceScaleB" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feSpecularLighting in="SourceGraphic" specularConstant="1" specularExponent="1" surfaceScale="10" lighting-color="white">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feSpecularLighting>
+ </filter>
+ <filter id="surfaceScaleC" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feSpecularLighting in="SourceGraphic" specularConstant="1" specularExponent="1" surfaceScale="-10" lighting-color="white">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feSpecularLighting>
+ </filter>
+ <!-- ================================================= -->
+ <!-- Specular Constants -->
+ <!-- ================================================= -->
+ <filter id="specularConstantA" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feSpecularLighting in="SourceGraphic" specularConstant="0" specularExponent="1" surfaceScale="10" lighting-color="white">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feSpecularLighting>
+ </filter>
+ <filter id="specularConstantB" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feSpecularLighting in="SourceGraphic" specularConstant="1" specularExponent="1" surfaceScale="10" lighting-color="white">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feSpecularLighting>
+ </filter>
+ <filter id="specularConstantC" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feSpecularLighting in="SourceGraphic" specularConstant="2" specularExponent="1" surfaceScale="10" lighting-color="white">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feSpecularLighting>
+ </filter>
+ <!-- ================================================= -->
+ <!-- Specular Exponent -->
+ <!-- ================================================= -->
+ <filter id="specularExponentA" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feSpecularLighting in="SourceGraphic" specularConstant="1" specularExponent="1" surfaceScale="10" lighting-color="white">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feSpecularLighting>
+ </filter>
+ <filter id="specularExponentB" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feSpecularLighting in="SourceGraphic" specularConstant="1" specularExponent="2" surfaceScale="10" lighting-color="white">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feSpecularLighting>
+ </filter>
+ <filter id="specularExponentC" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feSpecularLighting in="SourceGraphic" specularConstant="1" specularExponent="4" surfaceScale="10" lighting-color="white">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feSpecularLighting>
+ </filter>
+ <!-- ================================================= -->
+ <!-- Lighting colors -->
+ <!-- ================================================= -->
+ <filter id="lightingColorA" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feSpecularLighting in="SourceGraphic" specularConstant="1" specularExponent="1" surfaceScale="10" lighting-color="red">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feSpecularLighting>
+ </filter>
+ <filter id="lightingColorB" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feSpecularLighting in="SourceGraphic" specularConstant="1" specularExponent="1" surfaceScale="10" lighting-color="yellow">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feSpecularLighting>
+ </filter>
+ <filter id="lightingColorC" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feSpecularLighting in="SourceGraphic" specularConstant="1" specularExponent="1" surfaceScale="10" lighting-color="blue">
+ <feDistantLight azimuth="45" elevation="45"/>
+ </feSpecularLighting>
+ </filter>
+ </defs>
+ <!-- ==================================================== -->
+ <!-- The same image is rendered multiple times with using -->
+ <!-- different filters. -->
+ <!-- ==================================================== -->
+ <!-- Various Surface Scales -->
+ <g transform="translate(0, 20)">
+ <text x="90" y="25">Various values for surfaceScale: 1, 10 and -10</text>
+ <g fill="black">
+ <rect x="90" y="30" width="50" height="30"/>
+ <rect x="205" y="30" width="50" height="30"/>
+ <rect x="320" y="30" width="50" height="30"/>
+ </g>
+ <image xlink:href="../images/bumpMap2.png" x="90" y="30" width="50" height="30" filter="url(#surfaceScaleA)"/>
+ <image xlink:href="../images/bumpMap2.png" x="205" y="30" width="50" height="30" filter="url(#surfaceScaleB)"/>
+ <image xlink:href="../images/bumpMap2.png" x="320" y="30" width="50" height="30" filter="url(#surfaceScaleC)"/>
+ </g>
+ <!-- Various Specular Constants -->
+ <g transform="translate(0, 90)">
+ <text x="90" y="25">Various values for specularConstants: 0, 1 and 2</text>
+ <g fill="black">
+ <rect x="90" y="30" width="50" height="30"/>
+ <rect x="205" y="30" width="50" height="30"/>
+ <rect x="320" y="30" width="50" height="30"/>
+ </g>
+ <image xlink:href="../images/bumpMap2.png" x="90" y="30" width="50" height="30" filter="url(#specularConstantA)"/>
+ <image xlink:href="../images/bumpMap2.png" x="205" y="30" width="50" height="30" filter="url(#specularConstantB)"/>
+ <image xlink:href="../images/bumpMap2.png" x="320" y="30" width="50" height="30" filter="url(#specularConstantC)"/>
+ </g>
+ <!-- Various Specular Exponents -->
+ <g transform="translate(0, 160)">
+ <text x="90" y="25">Various values for specularExponents: 1, 2 and 4</text>
+ <g fill="black">
+ <rect x="90" y="30" width="50" height="30"/>
+ <rect x="205" y="30" width="50" height="30"/>
+ <rect x="320" y="30" width="50" height="30"/>
+ </g>
+ <image xlink:href="../images/bumpMap2.png" x="90" y="30" width="50" height="30" filter="url(#specularExponentA)"/>
+ <image xlink:href="../images/bumpMap2.png" x="205" y="30" width="50" height="30" filter="url(#specularExponentB)"/>
+ <image xlink:href="../images/bumpMap2.png" x="320" y="30" width="50" height="30" filter="url(#specularExponentC)"/>
+ </g>
+ <!-- Various Light Colors -->
+ <g transform="translate(0, 230)">
+ <text x="90" y="25">Various values for lighting color: red, yellow and blue</text>
+ <g fill="black">
+ <rect x="90" y="30" width="50" height="30"/>
+ <rect x="205" y="30" width="50" height="30"/>
+ <rect x="320" y="30" width="50" height="30"/>
+ </g>
+ <image xlink:href="../images/bumpMap2.png" x="90" y="30" width="50" height="30" filter="url(#lightingColorA)"/>
+ <image xlink:href="../images/bumpMap2.png" x="205" y="30" width="50" height="30" filter="url(#lightingColorB)"/>
+ <image xlink:href="../images/bumpMap2.png" x="320" y="30" width="50" height="30" filter="url(#lightingColorC)"/>
+ </g>
+ <!-- ===================================================== -->
+ <!-- Legends -->
+ <!-- ===================================================== -->
+ <!-- Surface Scale -->
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-tile-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-tile-01-b-isvalid.html
new file mode 100644
index 0000000000..8f0402a7da
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-tile-01-b-isvalid.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-tile-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-tile-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" preserveAspectRatio="xMidYMid meet" zoomAndPan="magnify" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-tile-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="15" x="240" y="25" text-anchor="middle">feTile filter test: a tiled pattern</text>
+ <!-- ====================================================================== -->
+ <!-- Tiled created in defs then applied to rectangle -->
+ <!-- this seems pretty complex to me -->
+ <!-- ====================================================================== -->
+ <defs>
+ <filter id="feTileFilter" filterUnits="userSpaceOnUse" primitiveUnits="userSpaceOnUse" x="115" y="40" width="250" height="250">
+ <feFlood x="115" y="40" width="54" height="19" flood-color="lime"/>
+ <feOffset x="115" y="40" width="50" height="25" dx="6" dy="6" result="offset"/>
+ <feTile/>
+ </filter>
+ </defs>
+ <!-- The 'g' has no content, but the filter causes a rectangle
+ to be created which is filled with a tiled pattern. -->
+ <g filter="url(#feTileFilter)"/>
+ <!-- Show the outline of the rectangle which is filled with the tiled pattern. -->
+ <rect x="115" y="40" width="250" height="250" fill="none" stroke="blue" stroke-width="2"/>
+ <!-- draw a semi-transparent rectangle over one of the tiles -->
+ <rect x="215" y="115" width="50" height="25" fill="blue" fill-opacity="0.5" stroke="black"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-turb-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-turb-01-f-isvalid.html
new file mode 100644
index 0000000000..780459e875
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-turb-01-f-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-turb-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-turb-01-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-turb-01-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <desc>Six rectangular areas showing the effects of various parameter settings for feTurbulence.</desc>
+ <g font-family="Verdana" text-anchor="middle" font-size="10">
+ <defs>
+ <filter id="Turb1" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2"/>
+ </filter>
+ <filter id="Turb2" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feTurbulence type="turbulence" baseFrequency="0.1" numOctaves="2"/>
+ </filter>
+ <filter id="Turb3" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="8"/>
+ </filter>
+ <filter id="Turb4" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="4"/>
+ </filter>
+ <filter id="Turb5" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feTurbulence type="fractalNoise" baseFrequency="0.4" numOctaves="4"/>
+ </filter>
+ <filter id="Turb6" filterUnits="objectBoundingBox" x="0%" y="0%" width="100%" height="100%">
+ <feTurbulence type="fractalNoise" baseFrequency="0.1" numOctaves="1"/>
+ </filter>
+ </defs>
+ <rect x="25" y="25" width="100" height="75" filter="url(#Turb1)"/>
+ <text x="75" y="117">type=turbulence</text>
+ <text x="75" y="129">baseFrequency=0.05</text>
+ <text x="75" y="141">numOctaves=2</text>
+ <rect x="175" y="25" width="100" height="75" filter="url(#Turb2)"/>
+ <text x="225" y="117">type=turbulence</text>
+ <text x="225" y="129">baseFrequency=0.1</text>
+ <text x="225" y="141">numOctaves=2</text>
+ <rect x="325" y="25" width="100" height="75" filter="url(#Turb3)"/>
+ <text x="375" y="117">type=turbulence</text>
+ <text x="375" y="129">baseFrequency=0.05</text>
+ <text x="375" y="141">numOctaves=8</text>
+ <rect x="25" y="180" width="100" height="75" filter="url(#Turb4)"/>
+ <text x="75" y="272">type=fractalNoise</text>
+ <text x="75" y="284">baseFrequency=0.1</text>
+ <text x="75" y="296">numOctaves=4</text>
+ <rect x="175" y="180" width="100" height="75" filter="url(#Turb5)"/>
+ <text x="225" y="272">type=fractalNoise</text>
+ <text x="225" y="284">baseFrequency=0.4</text>
+ <text x="225" y="296">numOctaves=4</text>
+ <rect x="325" y="180" width="100" height="75" filter="url(#Turb6)"/>
+ <text x="375" y="272">type=fractalNoise</text>
+ <text x="375" y="284">baseFrequency=0.1</text>
+ <text x="375" y="296">numOctaves=1</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/filters-turb-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/filters-turb-02-f-isvalid.html
new file mode 100644
index 0000000000..42306736a9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/filters-turb-02-f-isvalid.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>filters-turb-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: filters-turb-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: filters-turb-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <!-- test negative values, these two should be same as seed="0" and seed="1" -->
+ <filter id="turbneg1" x="0" y="0" width="100%" height="100%">
+ <feTurbulence seed="-0.2" baseFrequency="0.01" type="turbulence"/>
+ </filter>
+ <filter id="turbneg2" x="0" y="0" width="100%" height="100%">
+ <feTurbulence seed="-0.5" baseFrequency="0.01" type="turbulence"/>
+ </filter>
+ <filter id="turbneg3" x="0" y="0" width="100%" height="100%">
+ <feTurbulence seed="-0.8" baseFrequency="0.01" type="turbulence"/>
+ </filter>
+
+ <!-- the reference for seed="0" -->
+ <filter id="turbzero" x="0" y="0" width="100%" height="100%">
+ <feTurbulence seed="0" baseFrequency="0.01" type="turbulence"/>
+ </filter>
+
+ <!-- seed="0" is transformed by the setup_seed method to be equal to seed="1" -->
+ <filter id="turbpos1" x="0" y="0" width="100%" height="100%">
+ <feTurbulence seed="0.2" baseFrequency="0.01" type="turbulence"/>
+ </filter>
+ <filter id="turbpos2" x="0" y="0" width="100%" height="100%">
+ <feTurbulence seed="0.5" baseFrequency="0.01" type="turbulence"/>
+ </filter>
+ <filter id="turbpos3" x="0" y="0" width="100%" height="100%">
+ <feTurbulence seed="1.5" baseFrequency="0.01" type="turbulence"/>
+ </filter>
+
+ <!-- These should be the same -->
+ <filter id="turbneg4" x="0" y="0" width="100%" height="100%">
+ <feTurbulence seed="-1" baseFrequency="0.01" type="turbulence"/>
+ </filter>
+ <filter id="turbneg5" x="0" y="0" width="100%" height="100%">
+ <feTurbulence seed="-1.5" baseFrequency="0.01" type="turbulence"/>
+ </filter>
+
+ <!-- These should be the same -->
+ <filter id="turbneg6" x="0" y="0" width="100%" height="100%">
+ <feTurbulence seed="-2" baseFrequency="0.01" type="turbulence"/>
+ </filter>
+ <filter id="turbneg7" x="0" y="0" width="100%" height="100%">
+ <feTurbulence seed="-2.6" baseFrequency="0.01" type="turbulence"/>
+ </filter>
+
+ <style>
+ #subtests text { fill: black }
+ </style>
+ </defs>
+
+ <text x="50%" y="2em" style="font-size:24px; text-anchor:middle">feTurbulence seed</text>
+
+ <g id="subtests" transform="translate(65 80)" text-anchor="middle" fill="red">
+ <rect width="50" height="50" filter="url(#turbneg3)"/>
+ <text x="25" y="80">-0.8</text>
+ <rect width="50" height="50" filter="url(#turbneg2)" transform="translate(50 0)"/>
+ <text x="75" y="80">-0.5</text>
+ <rect width="50" height="50" filter="url(#turbneg1)" transform="translate(100 0)"/>
+ <text x="125" y="80">-0.2</text>
+ <rect width="50" height="50" filter="url(#turbzero)" transform="translate(150 0)"/>
+ <text x="175" y="80">0</text>
+ <rect width="50" height="50" filter="url(#turbpos1)" transform="translate(200 0)"/>
+ <text x="225" y="80">0.2</text>
+ <rect width="50" height="50" filter="url(#turbpos2)" transform="translate(250 0)"/>
+ <text x="275" y="80">0.5</text>
+ <rect width="50" height="50" filter="url(#turbpos3)" transform="translate(300 0)"/>
+ <text x="325" y="80">1.5</text>
+ <rect x="-5" y="-5" width="360" height="100" stroke="black" fill="none"/>
+
+ <rect width="50" height="50" filter="url(#turbneg4)" transform="translate(0 120)"/>
+ <text x="25" y="200">-1</text>
+ <rect width="50" height="50" filter="url(#turbneg5)" transform="translate(50 120)"/>
+ <text x="75" y="200">-1.5</text>
+ <rect x="-5" y="115" width="110" height="100" stroke="black" fill="none"/>
+
+ <rect width="50" height="50" filter="url(#turbneg6)" transform="translate(250 120)"/>
+ <text x="275" y="200">-2</text>
+ <rect width="50" height="50" filter="url(#turbneg7)" transform="translate(300 120)"/>
+ <text x="325" y="200">-2.6</text>
+ <rect x="245" y="115" width="110" height="100" stroke="black" fill="none"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-01-t-isvalid.html
new file mode 100644
index 0000000000..38fd497363
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-01-t-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-desc-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-desc-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-desc-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="diamond" d="M0 500L250 250L500 500L250 750Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="square" d="M0 250L250 250L250 500L0 500Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="upward-triangle" d="M0 0L500 0L250 900Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont2" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="upward-triangle" d="M0 0L500 0L250 900Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont2" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="square" d="M0 250L250 250L250 500L0 500Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont2" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="diamond" d="M0 500L250 250L500 500L250 750Z"/>
+ </font>
+ </defs>
+ <g font-size="50" transform="translate(50, 50)">
+ <text x="50" y="50" font-family="SVGFont1">a</text>
+ <text x="100" y="50" font-family="SVGFont2">a</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-02-t-isvalid.html
new file mode 100644
index 0000000000..7fd43f5c74
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-02-t-isvalid.html
@@ -0,0 +1,115 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-desc-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-desc-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-desc-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="square" d="M0 250L500 250L500 750L0 750Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" font-variant="small-caps" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="upward-triangle" d="M0 0L500 0L250 900Z"/>
+ </font>
+
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont2" font-variant="small-caps" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="upward-triangle" d="M0 0L500 0L250 900Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont2" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="square" d="M0 250L500 250L500 750L0 750Z"/>
+ </font>
+
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont4" font-variant="normal" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="square" d="M0 250L500 250L500 750L0 750Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont5" font-variant="small-caps" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="diamond" d="M0 500L250 250L500 500L250 750Z"/>
+ </font>
+
+ </defs>
+
+ <g font-size="30">
+ <!-- This should produce a square followed by a triangle -->
+ <text x="50" y="50" font-family="SVGFont1">a</text>
+ <text x="100" y="50" font-family="SVGFont1" font-variant="small-caps">a</text>
+
+ <!-- This should produce a square followed by a triangle -->
+ <text x="50" y="100" font-family="SVGFont2">a</text>
+ <text x="100" y="100" font-family="SVGFont2" font-variant="small-caps">a</text>
+
+ <!-- This should produce a square, diamond, square, diamond. -->
+ <text x="50" y="150" font-family="SVGFont5,SVGFont4" font-variant="normal">a</text>
+ <text x="100" y="150" font-family="SVGFont5,SVGFont4" font-variant="small-caps">a</text>
+ <text x="150" y="150" font-family="SVGFont4,SVGFont5" font-variant="normal">a</text>
+ <text x="200" y="150" font-family="SVGFont4,SVGFont5" font-variant="small-caps">a</text>
+
+ <!--
+ This should produce a square, 'a', 'a', diamond. Or a small-caps version of the 'A'
+ instead of the first lower-case 'a' if synethesis is supported
+ -->
+ <text x="50" y="200" font-family="SVGFont4" font-variant="normal">a</text>
+ <text x="100" y="200" font-family="SVGFont4" font-variant="small-caps">a</text>
+ <text x="150" y="200" font-family="SVGFont5" font-variant="normal">a</text>
+ <text x="200" y="200" font-family="SVGFont5" font-variant="small-caps">a</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-03-t-isvalid.html
new file mode 100644
index 0000000000..7a847714a8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-03-t-isvalid.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-desc-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-desc-03-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-desc-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" font-weight="normal" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="square" d="M0 250L500 250L500 750L0 750Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" font-weight="bold" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="upward-triangle" d="M0 0L500 0L250 900Z"/>
+ </font>
+
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont2" font-weight="bold" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="square" d="M0 250L500 250L500 750L0 750Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont2" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="upward-triangle" d="M0 0L500 0L250 900Z"/>
+ </font>
+
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont3" font-weight="300" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="square" d="M0 250L500 250L500 750L0 750Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont3" font-weight="700" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="upward-triangle" d="M0 0L500 0L250 900Z"/>
+ </font>
+
+ </defs>
+
+ <g font-size="50">
+ <text x="50" y="50" font-family="SVGFont1">a</text>
+ <text x="100" y="50" font-family="SVGFont1" font-weight="bold">a</text>
+
+ <text x="50" y="150" font-family="SVGFont2">a</text>
+ <text x="100" y="150" font-family="SVGFont2" font-weight="bold">a</text>
+
+ <text x="50" y="250" font-family="SVGFont3" font-weight="100">a</text>
+ <text x="100" y="250" font-family="SVGFont3" font-weight="900">a</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g> -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-04-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-04-t-isvalid.html
new file mode 100644
index 0000000000..1420e16a2c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-04-t-isvalid.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-desc-04-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-desc-04-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-desc-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="square" d="M0 250L500 250L500 750L0 750Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" font-style="italic" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="upward-triangle" d="M0 0L500 0L250 900Z"/>
+ </font>
+
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont2" font-style="italic" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="upward-triangle" d="M0 0L500 0L250 900Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont2" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="square" d="M0 250L500 250L500 750L0 750Z"/>
+ </font>
+
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont3" font-style="italic" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="square" d="M0 250L500 250L500 750L0 750Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont3" font-style="oblique" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="upward-triangle" d="M0 0L500 0L250 900Z"/>
+ </font>
+
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont4" font-style="italic" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="square" d="M0 250L500 250L500 750L0 750Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont5" font-style="oblique" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="diamond" d="M0 500L250 250L500 500L250 750Z"/>
+ </font>
+
+ </defs>
+
+ <g font-size="50">
+ <!-- This should produce a square followed by a triangle -->
+ <text x="50" y="50" font-family="SVGFont1">a</text>
+ <text x="100" y="50" font-family="SVGFont1" font-style="italic">a</text>
+
+ <!-- This should produce a square followed by a triangle -->
+ <text x="50" y="150" font-family="SVGFont2">a</text>
+ <text x="100" y="150" font-family="SVGFont2" font-style="italic">a</text>
+
+ <!-- This should produce a letter 'a' followed by a diamond -->
+ <text x="50" y="250" font-family="SVGFont4" font-style="oblique">a</text>
+ <text x="100" y="250" font-family="SVGFont4,SVGFont5" font-style="oblique">a</text>
+ <text x="150" y="250" font-family="SVGFont5" font-style="italic">a</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-05-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-05-t-isvalid.html
new file mode 100644
index 0000000000..7799438c3e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-desc-05-t-isvalid.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-desc-05-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-desc-05-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-desc-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="square" d="M0 250L500 250L500 750L0 750Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" font-style="italic" font-variant="small-caps" font-weight="bold" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="upward-triangle" d="M0 0L500 0L250 900Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" font-variant="small-caps" font-weight="bold" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="downward-triangle" d="M250 0L0 900L500 900Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" font-style="italic" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="diamond" d="M0 500L250 250L500 500L250 750Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" font-style="oblique" font-weight="bold" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="circle" d="M250 500A 250,250 0 1,0 250 499 Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont2" font-style="oblique" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="right-triangle" d="M0 100L0 600L900 350Z"/>
+ </font>
+
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont2" font-weight="bold" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="left-triangle" d="M900 100L900 600L0 350Z"/>
+ </font>
+
+ </defs>
+ <g transform="scale(1.5) translate(0, -50)">
+ <!-- This should produce a diamond, diamond, upward-triangle, downard-triangle. -->
+ <text x="50" y="100" font-size="20" font-family="SVGFont1" font-style="italic">a</text>
+ <text x="100" y="100" font-size="20" font-family="SVGFont1" font-style="italic" font-weight="bold">a</text>
+ <text x="150" y="100" font-size="20" font-family="SVGFont1" font-style="italic" font-variant="small-caps">a</text>
+ <text x="200" y="100" font-size="20" font-family="SVGFont1" font-variant="small-caps" font-weight="bold">a</text>
+
+ <!-- This should produce a upward-triangle, downard triangle, and a right-triangle. -->
+ <text x="50" y="200" font-size="20" font-family="SVGFont2, SVGFont1" font-style="italic" font-variant="small-caps" font-weight="bold">a</text>
+ <text x="100" y="200" font-size="20" font-family="SVGFont2, SVGFont1" font-variant="small-caps" font-weight="bold">a</text>
+ <text x="150" y="200" font-size="20" font-family="SVGFont2, SVGFont1" font-style="italic">a</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-01-t-isvalid.html
new file mode 100644
index 0000000000..6788ac071e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-01-t-isvalid.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-elem-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-elem-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-elem-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ===================================================================== -->
+ <!-- Define the font for embedding - using Microsoft's "Comic Sans MS" -->
+ <!-- This is an SVG Font version of Comic. The Comic font license -->
+ <!-- allows editable and installable font embedding. -->
+ <!-- Only need to embed the characters that are used in the test -->
+ <!-- ===================================================================== -->
+ <defs>
+ <font horiz-adv-x="959">
+ <font-face font-family="TestComic" units-per-em="2048" panose-1="3 15 7 2 3 3 2 2 2 4" ascent="2257" descent="-597" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="1024" d="M128 0V1638H896V0H128zM256 128H768V1510H256V128z"/>
+ <glyph unicode="@" horiz-adv-x="1907" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z"/>
+ <glyph unicode="A" horiz-adv-x="1498" d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z"/>
+ <glyph unicode="y" horiz-adv-x="1066" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z"/>
+ <glyph unicode="Ö" horiz-adv-x="1635" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z"/>
+ <glyph unicode="ç" horiz-adv-x="1052" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z"/>
+ </font>
+ </defs>
+ <text fill="black" stroke="none" font-size="35" x="56" y="35">Basic SVG font element</text>
+ <!-- ====================================================================== -->
+ <!-- First place the glyphs by hand -->
+ <!-- ====================================================================== -->
+ <g fill="black" stroke="none">
+ <text x="30" y="130" font-size="18">Placed Glyphs</text>
+ <!-- translate to text position and flip y axis (glyphs are drawn -->
+ <!-- upside down -->
+ <g transform="translate(165,140) scale(1, -1)">
+ <line x1="0" y1="0" x2="210" y2="0" stroke-width="1" stroke="#888888"/>
+ <!-- fontsize / units-per-em == 60 / 2048 == 0.029296875 -->
+ <g transform="scale(0.029296875)">
+ <!-- uppercase A -->
+ <line x1="0" y1="-3500" x2="0" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z"/>
+ <!-- lowercase y -->
+ <line x1="1498" y1="-3500" x2="1498" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path transform="translate(1498,0)" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z"/>
+ <!-- unicode 00D6 -->
+ <line x1="2564" y1="-3500" x2="2564" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path transform="translate(2564,0)" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z"/>
+ <!-- @ sign -->
+ <line x1="4199" y1="-3500" x2="4199" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path transform="translate(4199,0)" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z"/>
+ <!-- unicode 00E7 -->
+ <line x1="6106" y1="-3500" x2="6106" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path transform="translate(6106,0)" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z"/>
+ <line x1="7158" y1="-3500" x2="7158" y2="2000" stroke-width="50" stroke="#888888"/>
+ </g>
+ </g>
+ </g>
+ <text x="65" y="210" font-size="18">SVG Font</text>
+ <g transform="translate(165, 220)" font-family="TestComic" font-size="60" fill="black" stroke="none">
+ <line x1="0" y1="0" x2="210" y2="0" stroke-width="1" stroke="#888888"/>
+ <text>AyÖ@ç</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-02-t-isvalid.html
new file mode 100644
index 0000000000..191196b0cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-02-t-isvalid.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-elem-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-elem-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-elem-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ===================================================================== -->
+ <!-- Define the font for embedding - using Microsoft's "Comic Sans MS" -->
+ <!-- This is an SVG Font version of Comic. The Comic font license -->
+ <!-- allows editable and installable font embedding. -->
+ <!-- Only need to embed the characters that are used in the test -->
+ <!-- ===================================================================== -->
+ <defs>
+ <font horiz-adv-x="959">
+ <font-face font-family="TestComic" units-per-em="2048" panose-1="3 15 7 2 3 3 2 2 2 4" ascent="2257" descent="-597" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="1024" d="M128 0V1638H896V0H128zM256 128H768V1510H256V128z"/>
+ <glyph unicode="@" horiz-adv-x="1907" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z"/>
+ <glyph unicode="A" horiz-adv-x="1498" d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z"/>
+ <glyph unicode="y" horiz-adv-x="1066" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z"/>
+ <glyph unicode="Ö" horiz-adv-x="1635" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z"/>
+ <glyph unicode="ç" horiz-adv-x="1052" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z"/>
+ </font>
+ </defs>
+ <text fill="black" stroke="none" font-size="35" x="28" y="35">SVG font element accuracy</text>
+ <rect x="165" y="80" width="220" height="165" fill="black"/>
+ <text x="7" y="130" font-size="18">SVG over Glyphs</text>
+ <!-- translate to text position and flip y axis (glyphs are drawn -->
+ <!-- upside down -->
+ <g transform="translate(165,140) scale(1, -1)" fill="white">
+ <!-- fontsize / units-per-em == 60 / 2048 == 0.029296875 -->
+ <g transform="scale(0.029296875)">
+ <!-- uppercase A -->
+ <path d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z"/>
+ <!-- lowercase y -->
+ <path transform="translate(1498,0)" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z"/>
+ <!-- unicode 00D6 -->
+ <path transform="translate(2564,0)" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z"/>
+ <!-- @ sign -->
+ <path transform="translate(4199,0)" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z"/>
+ <!-- unicode 00E7 -->
+ <path transform="translate(6106,0)" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z"/>
+ </g>
+ </g>
+ <g transform="translate(165, 140)" font-family="TestComic" font-size="60" fill="black" stroke="none">
+ <text>AyÖ@ç</text>
+ </g>
+ <text x="7" y="210" font-size="18">Glyphs over SVG</text>
+ <g transform="translate(165, 210)" font-family="TestComic" font-size="60" fill="white" stroke="none">
+ <text>AyÖ@ç</text>
+ </g>
+ <!-- translate to text position and flip y axis (glyphs are drawn -->
+ <!-- upside down -->
+ <g transform="translate(165,210) scale(1, -1)" fill="black">
+ <!-- fontsize / units-per-em == 60 / 2048 == 0.029296875 -->
+ <g transform="scale(0.029296875)">
+ <!-- uppercase A -->
+ <path d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z"/>
+ <!-- lowercase y -->
+ <path transform="translate(1498,0)" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z"/>
+ <!-- unicode 00D6 -->
+ <path transform="translate(2564,0)" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z"/>
+ <!-- @ sign -->
+ <path transform="translate(4199,0)" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z"/>
+ <!-- unicode 00E7 -->
+ <path transform="translate(6106,0)" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-03-b-isvalid.html
new file mode 100644
index 0000000000..3fc08bcb41
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-03-b-isvalid.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-elem-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-elem-03-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-elem-03-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <!--style>
+ <![CDATA[
+ @font-face {
+ font-family: 'TestComic';
+ font-weight: normal;
+ font-style: normal;
+ src: url("../images/ext-TestComic.svg#Font") format("svg")
+ }
+ ]]>
+ </style-->
+ <font-face font-family="TestComic">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/ext-TestComic.svg#Font"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <text fill="black" stroke="none" font-size="30" x="26" y="35">External SVG font element (xml)</text>
+ <!-- ====================================================================== -->
+ <!-- First place the glyphs by hand -->
+ <!-- ====================================================================== -->
+ <g fill="black" stroke="none">
+ <text x="31" y="130" font-size="18">Placed Glyphs</text>
+ <!-- translate to text position and flip y axis (glyphs are drawn -->
+ <!-- upside down -->
+ <g transform="translate(165,140) scale(1, -1)">
+ <line x1="0" y1="0" x2="210" y2="0" stroke-width="1" stroke="#888888"/>
+ <!-- fontsize / units-per-em == 60 / 2048 == 0.029296875 -->
+ <g transform="scale(0.029296875)">
+ <!-- uppercase A -->
+ <line x1="0" y1="-3500" x2="0" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z"/>
+ <!-- lowercase y -->
+ <line x1="1498" y1="-3500" x2="1498" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path transform="translate(1498,0)" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z"/>
+ <!-- unicode 00D6 -->
+ <line x1="2564" y1="-3500" x2="2564" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path transform="translate(2564,0)" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z"/>
+ <!-- @ sign -->
+ <line x1="4199" y1="-3500" x2="4199" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path transform="translate(4199,0)" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z"/>
+ <!-- unicode 00E7 -->
+ <line x1="6106" y1="-3500" x2="6106" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path transform="translate(6106,0)" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z"/>
+ <line x1="7158" y1="-3500" x2="7158" y2="2000" stroke-width="50" stroke="#888888"/>
+ </g>
+ </g>
+ </g>
+ <text x="67" y="210" font-size="18">SVG Font</text>
+ <g transform="translate(165, 220)" font-family="TestComic" font-size="60" fill="black" stroke="none">
+ <line x1="0" y1="0" x2="210" y2="0" stroke-width="1" stroke="#888888"/>
+ <text>AyÖ@ç</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-04-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-04-b-isvalid.html
new file mode 100644
index 0000000000..c14bcc509f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-04-b-isvalid.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-elem-04-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-elem-04-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-elem-04-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <style>
+
+ @font-face {
+ font-family: 'TestComic';
+ font-weight: normal;
+ font-style: normal;
+ src: url("../images/ext-TestComic.svg#Font") format("svg")
+ }
+
+ </style>
+ <!--font-face font-family="TestComic">
+ <font-face-src>
+ <font-face-uri xlink:href="../images/ext-TestComic.svg#Font"/>
+ </font-face-src>
+ </font-face-->
+ </defs>
+ <text fill="black" stroke="none" font-size="30" x="26" y="35">External SVG font element (css)</text>
+ <!-- ====================================================================== -->
+ <!-- First place the glyphs by hand -->
+ <!-- ====================================================================== -->
+ <g fill="black" stroke="none">
+ <text x="31" y="130" font-size="18">Placed Glyphs</text>
+ <!-- translate to text position and flip y axis (glyphs are drawn -->
+ <!-- upside down -->
+ <g transform="translate(165,140) scale(1, -1)">
+ <line x1="0" y1="0" x2="210" y2="0" stroke-width="1" stroke="#888888"/>
+ <!-- fontsize / units-per-em == 60 / 2048 == 0.029296875 -->
+ <g transform="scale(0.029296875)">
+ <!-- uppercase A -->
+ <line x1="0" y1="-3500" x2="0" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z"/>
+ <!-- lowercase y -->
+ <line x1="1498" y1="-3500" x2="1498" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path transform="translate(1498,0)" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z"/>
+ <!-- unicode 00D6 -->
+ <line x1="2564" y1="-3500" x2="2564" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path transform="translate(2564,0)" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z"/>
+ <!-- @ sign -->
+ <line x1="4199" y1="-3500" x2="4199" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path transform="translate(4199,0)" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z"/>
+ <!-- unicode 00E7 -->
+ <line x1="6106" y1="-3500" x2="6106" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path transform="translate(6106,0)" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z"/>
+ <line x1="7158" y1="-3500" x2="7158" y2="2000" stroke-width="50" stroke="#888888"/>
+ </g>
+ </g>
+ </g>
+ <text x="67" y="210" font-size="18">SVG Font</text>
+ <g transform="translate(165, 220)" font-family="TestComic" font-size="60" fill="black" stroke="none">
+ <line x1="0" y1="0" x2="210" y2="0" stroke-width="1" stroke="#888888"/>
+ <text>AyÖ@ç</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-05-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-05-t-isvalid.html
new file mode 100644
index 0000000000..5eaa8a62e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-05-t-isvalid.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-elem-05-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-elem-05-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-elem-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="240" y="50" text-anchor="middle" font-size="30">&lt;font&gt; horiz-origin-x</text>
+ <defs>
+ <font id="orginDefault" horiz-adv-x="1000">
+ <font-face font-family="originDefault" units-per-em="1000" ascent="1000" descent="0" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="800" d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z"/>
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="1500" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="1500" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/>
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1500" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/>
+ </font>
+
+ <font id="orgin500" horiz-adv-x="1000" horiz-origin-x="500">
+ <font-face font-family="origin500" units-per-em="1000" ascent="1000" descent="0" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="800" d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z"/>
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="1500" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="1500" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/>
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1500" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/>
+ </font>
+
+ <font id="orgin1000" horiz-adv-x="1000" horiz-origin-x="1000">
+ <font-face font-family="origin1000" units-per-em="1000" ascent="1000" descent="0" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="800" d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z"/>
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="1500" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="1500" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/>
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1500" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/>
+ </font>
+
+
+ <g id="marker">
+ <line y2="-40" stroke="blue"/>
+ <rect x="-4" y="-4" width="8" height="8" fill="#8888ff"/>
+ </g>
+
+ <g id="marker500">
+ <line y2="-40" stroke="blue"/>
+ <line x1="15" x2="15" y2="-40" stroke="blue"/>
+ <line x2="15" stroke="blue"/>
+ <rect x="-4" y="-4" width="8" height="8" fill="#8888ff"/>
+ </g>
+
+ <g id="marker1000">
+ <line y2="-40" stroke="blue"/>
+ <line x1="30" x2="30" y2="-40" stroke="blue"/>
+ <line x2="30" stroke="blue"/>
+ <rect x="-4" y="-4" width="8" height="8" fill="#8888ff"/>
+ </g>
+ </defs>
+
+ <g transform="translate(20, 120)" font-size="14">
+
+ <g>
+ <text>horiz-origin-x unspecified (0)</text>
+ <use xlink:href="#marker" x="240"/>
+ <use xlink:href="#marker" x="285"/>
+ <use xlink:href="#marker" x="330"/>
+ <use xlink:href="#marker" x="375"/>
+ <text x="240" font-family="originDefault" font-size="30">1234</text>
+ </g>
+
+ <g transform="translate(0, 60)">
+ <text>horiz-origin-x=500</text>
+ <use xlink:href="#marker500" x="240"/>
+ <use xlink:href="#marker500" x="285"/>
+ <use xlink:href="#marker500" x="330"/>
+ <use xlink:href="#marker500" x="375"/>
+ <text x="240" font-family="origin500" font-size="30">1234</text>
+ </g>
+
+
+ <g transform="translate(0, 120)">
+ <text>horiz-adv-x=1000 but ignored</text>
+ <use xlink:href="#marker1000" x="240"/>
+ <use xlink:href="#marker1000" x="285"/>
+ <use xlink:href="#marker1000" x="330"/>
+ <use xlink:href="#marker1000" x="375"/>
+ <text x="240" font-family="origin1000" font-size="30">1234</text>
+ </g>
+
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-06-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-06-t-isvalid.html
new file mode 100644
index 0000000000..54c42c57db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-06-t-isvalid.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-elem-06-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-elem-06-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-elem-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="240" y="50" text-anchor="middle" font-size="30">&lt;font&gt; horiz-adv-x</text>
+ <defs>
+ <font id="advance1000" horiz-adv-x="1000">
+ <font-face font-family="advance1000" units-per-em="1000" ascent="1000" descent="0" alphabetic="0"/>
+ <missing-glyph d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z"/>
+ <glyph unicode="1" glyph-name="gl_1" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ </font>
+
+ <font id="advance2000" horiz-adv-x="2000">
+ <font-face font-family="advance2000" units-per-em="1000" ascent="1000" descent="0" alphabetic="0"/>
+ <missing-glyph d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z"/>
+ <glyph unicode="1" glyph-name="gl_1" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ </font>
+
+ <font id="advanceIgnored" horiz-adv-x="0">
+ <font-face font-family="advanceIgnored" units-per-em="1000" ascent="1000" descent="0" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="800" d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z"/>
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="3000" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="3000" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ </font>
+
+ <g id="marker">
+ <line y2="-20" stroke="blue"/>
+ <rect x="-4" y="-4" width="8" height="8" fill="#8888ff"/>
+ </g>
+ </defs>
+
+ <g transform="translate(20, 120)" font-size="14">
+
+ <g>
+ <text>horiz-adv-x=1000</text>
+ <use xlink:href="#marker" x="240"/>
+ <use xlink:href="#marker" x="270"/>
+ <text x="240" font-family="advance1000" font-size="30">12</text>
+ </g>
+
+ <g transform="translate(0, 40)">
+ <text>horiz-adv-x=2000</text>
+ <use xlink:href="#marker" x="240"/>
+ <use xlink:href="#marker" x="300"/>
+ <text x="240" font-family="advance2000" font-size="30">12</text>
+ </g>
+
+
+ <g transform="translate(0, 80)">
+ <text>horiz-adv-x=1000 but ignored</text>
+ <use xlink:href="#marker" x="240"/>
+ <use xlink:href="#marker" x="330"/>
+ <text x="240" font-family="advanceIgnored" font-size="30">12</text>
+ </g>
+
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-07-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-07-b-isvalid.html
new file mode 100644
index 0000000000..bdaa26ff77
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-elem-07-b-isvalid.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-elem-07-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-elem-07-b-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-elem-07-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <style>
+ @font-face {
+ font-family: 'TestComic';
+ font-weight: normal;
+ font-style: normal;
+ src: url("#InternalFont") format("svg")
+ }
+ #foo {font-family: TestComic}
+ </style>
+ </defs>
+ <!-- ===================================================================== -->
+ <!-- Define the font for embedding - using Microsoft's "Comic Sans MS" -->
+ <!-- This is an SVG Font version of Comic. The Comic font license -->
+ <!-- allows editable and installable font embedding. -->
+ <!-- Only need to embed the characters that are used in the test -->
+ <!-- ===================================================================== -->
+ <defs>
+ <font horiz-adv-x="959" id="InternalFont">
+ <font-face units-per-em="2048" panose-1="3 15 7 2 3 3 2 2 2 4" ascent="2257" descent="-597" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="1024" d="M128 0V1638H896V0H128zM256 128H768V1510H256V128z"/>
+ <glyph unicode="@" horiz-adv-x="1907" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z"/>
+ <glyph unicode="A" horiz-adv-x="1498" d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z"/>
+ <glyph unicode="y" horiz-adv-x="1066" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z"/>
+ <glyph unicode="Ö" horiz-adv-x="1635" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z"/>
+ <glyph unicode="ç" horiz-adv-x="1052" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z"/>
+ </font>
+ </defs>
+ <text fill="black" stroke="none" font-size="35" x="56" y="35">Basic SVG font element</text>
+ <!-- ====================================================================== -->
+ <!-- First place the glyphs by hand -->
+ <!-- ====================================================================== -->
+ <g fill="black" stroke="none">
+ <text x="30" y="130" font-size="18">Placed Glyphs</text>
+ <!-- translate to text position and flip y axis (glyphs are drawn -->
+ <!-- upside down -->
+ <g transform="translate(165,140) scale(1, -1)">
+ <line x1="0" y1="0" x2="210" y2="0" stroke-width="1" stroke="#888888"/>
+ <!-- fontsize / units-per-em == 60 / 2048 == 0.029296875 -->
+ <g transform="scale(0.029296875)">
+ <!-- uppercase A -->
+ <line x1="0" y1="-3500" x2="0" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z"/>
+ <!-- lowercase y -->
+ <line x1="1498" y1="-3500" x2="1498" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path transform="translate(1498,0)" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z"/>
+ <!-- unicode 00D6 -->
+ <line x1="2564" y1="-3500" x2="2564" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path transform="translate(2564,0)" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z"/>
+ <!-- @ sign -->
+ <line x1="4199" y1="-3500" x2="4199" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path transform="translate(4199,0)" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z"/>
+ <!-- unicode 00E7 -->
+ <line x1="6106" y1="-3500" x2="6106" y2="2000" stroke-width="50" stroke="#888888"/>
+ <path transform="translate(6106,0)" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z"/>
+ <line x1="7158" y1="-3500" x2="7158" y2="2000" stroke-width="50" stroke="#888888"/>
+ </g>
+ </g>
+ </g>
+ <text x="65" y="210" font-size="18">SVG Font</text>
+ <g transform="translate(165, 220)" font-size="60" fill="black" stroke="none">
+ <line x1="0" y1="0" x2="210" y2="0" stroke-width="1" stroke="#888888"/>
+ <text id="foo">AyÖ@ç</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-glyph-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-glyph-02-t-isvalid.html
new file mode 100644
index 0000000000..26fe17a3f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-glyph-02-t-isvalid.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-glyph-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-glyph-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-glyph-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="300">
+ <font-face font-family="SVGFont" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space" horiz-adv-x="300"/>
+ <glyph unicode="ښ" glyph-name="downward-triangle" horiz-adv-x="500" arabic-form="isolated" d="M0 900L500 900L250 0Z"/>
+ <glyph unicode="ښ" glyph-name="square" horiz-adv-x="500" arabic-form="initial" d="M0 250L500 250L500 750L0 750Z"/>
+ <glyph unicode="ښ" glyph-name="diamond" horiz-adv-x="500" arabic-form="medial" d="M0 500L250 250L500 500L250 750Z"/>
+ <glyph unicode="ښ" glyph-name="upward-triangle" horiz-adv-x="500" arabic-form="terminal" d="M0 0L500 0L250 900Z"/>
+ </font>
+ <font horiz-adv-x="573">
+ <font-face font-family="SVGAr" units-per-em="1000" panose-1="5 1 1 1 1 1 1 1 1 1" ascent="1025" descent="-399" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="500" d="M31 0V800H469V0H31ZM438 31V769H62V31H438Z"/>
+ <glyph unicode=" " glyph-name="space" horiz-adv-x="370"/>
+ <glyph unicode="خ" glyph-name="khah-isolated" arabic-form="isolated" horiz-adv-x="562" d="M309 360Q309 353 297 335T271 317Q260 317 227 337T194 370Q194 380 205 397T232 415Q246 415 277 395T309 360ZM518 -265Q516 -269 509 -275Q507 -277 502 -281Q447 -319 424 -330Q356 -363 281 -363Q228 -363 186 -347T110 -294Q69 -249 54 -199Q44 -167 44 -127Q44 -96 50 -65T76 12Q88 39 110 70Q152 127 152 137Q152 151 148 156T121 161Q95 161 85 156Q72 146 62 140Q44 128 35 130Q35 138 35 146Q37 151 43 162Q77 208 98 219T159 231Q170 231 234 221Q255 218 298 210H340Q347 210 382 218T425 230T435 235Q446 239 449 234Q454 226 444 189T426 152Q418 152 393 154T360 156Q327 156 297 149T228 120Q180 93 142 36Q96 -33 96 -110Q96 -209 168 -257Q223 -294 300 -294Q343 -294 371 -291Q429 -285 489 -267Q506 -260 511 -260Q514 -262 518 -265Z"/>
+ <glyph unicode="خ" glyph-name="khah-initial" arabic-form="initial" horiz-adv-x="728" d="M297 372Q297 365 285 347T259 329Q248 329 215 349T182 382Q182 392 193 409T220 427Q234 427 265 407T297 372ZM600 0H0V68H373Q396 68 396 86Q396 89 394 95Q377 137 347 159Q308 188 243 188Q210 188 183 171Q165 160 157 158T145 156Q138 156 138 164L140 174Q145 196 191 220Q228 240 269 240Q313 240 355 221T447 160Q488 120 530 81Q543 73 563 71T609 68Q619 68 620 68T625 68Q645 68 645 46Q645 30 633 15T600 0Z"/>
+ <glyph unicode="خ" glyph-name="khah-medial" arabic-form="medial" horiz-adv-x="625" d="M296 376Q296 369 284 351T258 333Q247 333 214 353T181 386Q181 396 192 413T219 431Q233 431 264 411T296 376ZM625 0H0V68H373Q396 68 396 86Q396 89 394 95Q377 137 347 159Q308 188 243 188Q210 188 183 171Q165 160 157 158T145 156Q138 156 138 164L140 174Q145 196 191 220Q228 240 269 240Q313 240 355 221T447 160Q488 120 530 81Q543 73 563 71T609 68Q619 68 620 68T625 68V0Z"/>
+ <glyph unicode="خ" glyph-name="khah-terminal" arabic-form="terminal" horiz-adv-x="514" d="M296 352Q296 345 284 327T258 309Q247 309 214 329T181 362Q181 372 192 389T219 407Q233 407 264 387T296 352ZM514 0H375Q313 0 298 64T261 128Q209 128 153 62Q91 -12 91 -101Q91 -199 162 -243Q220 -279 319 -279Q367 -279 390 -276T463 -259Q466 -258 475 -255T488 -252Q490 -252 491 -254T489 -263Q484 -272 466 -286T433 -307Q408 -320 401 -323Q349 -344 277 -344Q169 -344 104 -274Q44 -210 44 -118Q44 -88 51 -53T73 14Q80 31 97 56Q132 108 132 118Q132 127 126 134T110 141Q92 141 85 137Q72 127 59 117Q49 112 44 112Q38 112 38 119Q38 122 40 128Q49 156 80 182Q116 212 157 212Q170 212 188 208Q232 198 258 198H320Q345 198 357 201Q374 207 383 209T398 214T412 216Q420 216 421 212Q424 202 414 170T396 137Q394 137 382 140T362 143Q346 143 337 135T327 104Q327 91 341 80T379 68H514V0Z"/>
+ </font>
+ </defs>
+ <g font-family="SVGFont" font-size="80" text-anchor="middle">
+ <!-- This should produce 'downward triangle' 'space' 'square' 'diamond' 'upward-triangle' -->
+ <text x="240" y="100" direction="rtl">ښ ښښښ</text>
+ </g>
+ <g font-family="SVGAr" font-size="80" text-anchor="middle">
+ <!-- this should produce isolated khah, followed by initial,medial and terminal khah -->
+ <text x="240" y="200" direction="rtl">خ خخخ</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-glyph-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-glyph-03-t-isvalid.html
new file mode 100644
index 0000000000..912da902bd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-glyph-03-t-isvalid.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-glyph-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-glyph-03-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-glyph-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <missing-glyph horiz-adv-x="500" d="M0 0L500 0L500 1000L0 1000M50 50L50 950L450 950L450 50Z"/>
+ <glyph unicode=" " glyph-name="space"/>
+ <glyph unicode="a" glyph-name="upward-triangle" lang="en" d="M0 0L500 0L250 900Z"/>
+ <glyph unicode="a" glyph-name="square" lang="fr" d="M0 250L500 250L500 750L0 750Z"/>
+ </font>
+ </defs>
+ <g font-family="SVGFont" font-size="50">
+ <!-- Should produce an upward pointing triangle -->
+ <text x="50" y="50" xml:lang="en">a</text>
+ <!-- Should produce a square -->
+ <text x="50" y="120" xml:lang="fr">a</text>
+ <!-- Should also produce a square -->
+ <text x="50" y="190" xml:lang="fr-ca">a</text>
+ <!-- Should fall back to another font -->
+ <text x="50" y="260" xml:lang="de">a</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-glyph-04-t-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-glyph-04-t-novalid.html
new file mode 100644
index 0000000000..d8c09495be
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-glyph-04-t-novalid.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-glyph-04-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-glyph-04-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-glyph-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont1" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <glyph unicode="f" glyph-name="upward-triangle" d="M0 0L500 0L250 900Z"/>
+ <glyph unicode="ffl" glyph-name="square" d="M0 250L500 250L500 750L0 750Z"/>
+ </font>
+ <font horiz-adv-x="500">
+ <font-face font-family="SVGFont2" units-per-em="1000" ascent="800" descent="200" alphabetic="200"/>
+ <glyph unicode="ffl" glyph-name="square 2" d="M0 250L500 250L500 750L0 750Z"/>
+ <glyph unicode="f" glyph-name="upward-triangle 2" d="M0 0L500 0L250 900Z"/>
+ </font>
+ </defs>
+ <text x="100" y="100" font-size="50" font-family="SVGFont1">ffl</text>
+ <text x="100" y="200" font-size="50" font-family="SVGFont2">ffl</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-kern-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-kern-01-t-isvalid.html
new file mode 100644
index 0000000000..f23ccc5b10
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-kern-01-t-isvalid.html
@@ -0,0 +1,253 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-kern-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-kern-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-kern-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <g id="marker">
+ <!-- <rect x="0" y="-10" width="10" height="10" /> -->
+ <line y2="-12" stroke="red" stroke-width="1"/>
+ <line x2="12" stroke="red" stroke-width="1"/>
+ <rect x="-2" y="-2" width="4" height="4" fill="red"/>
+ </g>
+ <g id="sampleBkg">
+ <rect width="200" height="20" fill="#eeeeee"/>
+ <rect y="20" width="200" height="30" fill="#cccccc"/>
+ <rect width="200" height="50" fill="none" stroke="black"/>
+ </g>
+ </defs>
+ <defs>
+
+ <font horiz-adv-x="224">
+<font-face font-family="fontG" units-per-em="1000" ascent="917" descent="-250"/>
+ <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z"/>
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ <hkern u1="1" g2="gl_2" k="-1000"/>
+ </font>
+
+ <font horiz-adv-x="224">
+<font-face font-family="fontF" units-per-em="1000" ascent="917" descent="-250"/>
+ <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z"/>
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="750" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/>
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1000" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/>
+ <!-- u1 covers '0' to '9' and ':' ';' '<' '=' '>' '?' -->
+ <!-- u2 covers '1' '2' '3' and '4' -->
+ <!-- So, this is a match for '12', '23' and '34' -->
+ <hkern u1="U+003?" u2="U+0031-0034" k="-1500"/>
+ </font>
+
+ <font horiz-adv-x="224">
+<font-face font-family="fontE" units-per-em="1000" ascent="917" descent="-250"/>
+ <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z"/>
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="750" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/>
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1000" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/>
+ <hkern g1="gl_1,gl_3" g2="gl_2,gl_4" k="-1500"/>
+ </font>
+
+ <font horiz-adv-x="224">
+<font-face font-family="fontD" units-per-em="1000" ascent="917" descent="-250"/>
+ <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z"/>
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="750" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/>
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1000" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/>
+ <hkern u1="1,3" u2="2,4" k="-1500"/>
+ </font>
+
+ <font horiz-adv-x="224">
+<font-face font-family="fontC" units-per-em="1000" ascent="917" descent="-250"/>
+ <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z"/>
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="750" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/>
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1000" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/>
+
+ <hkern u1="1" u2="2" g1="gl_3" g2="gl_4" k="-1500"/>
+ </font>
+
+ <font horiz-adv-x="224">
+<font-face font-family="fontB" units-per-em="1000" ascent="917" descent="-250"/>
+ <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z"/>
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ <hkern g1="gl_1" g2="gl_2" k="-2000"/>
+ </font>
+
+ <font horiz-adv-x="224">
+<font-face font-family="fontA" units-per-em="1000" ascent="917" descent="-250"/>
+ <missing-glyph horiz-adv-x="800" d="M 0 0 L 750 0 L 750 1000 L 0 1000 Z"/>
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="250" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ <hkern u1="1" u2="2" k="-1000"/>
+ </font>
+
+ </defs>
+ <text x="240" y="30" font-size="20" text-anchor="middle">&lt;hkern&gt;</text>
+ <g id="legend" transform="translate(30, 60)">
+ <g>
+ <g>
+ <rect x="-20" width="20" height="50" fill="none" stroke="black"/>
+ <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font A</text>
+ </g>
+ <use xlink:href="#sampleBkg"/>
+ <text x="5" y="15" font-size="12">u1="1" u2="2"</text>
+ <g transform="translate(5, 45) scale(2)" font-size="10">
+ <!-- Advance for '1': 0 -->
+ <use xlink:href="#marker" fill="#8888ff"/>
+
+ <!-- Advance for '2' : '1'.advance + kerning -->
+ <!-- : ((250 - (-1000))/1000)*10 -->
+ <!-- : 12.5 -->
+ <use xlink:href="#marker" x="12.5" fill="#8888ff"/>
+ <text font-family="fontA" font-size="10">12</text>
+ </g>
+ </g>
+
+ <g transform="translate(0, 55)">
+ <g>
+ <rect x="-20" width="20" height="50" fill="none" stroke="black"/>
+ <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font B</text>
+ </g>
+ <use xlink:href="#sampleBkg"/>
+ <text x="5" y="15" font-size="12">g1="gl_1" g2="gl_2"</text>
+ <g transform="translate(5, 45) scale(2)">
+ <use xlink:href="#marker" fill="#8888ff"/>
+ <use xlink:href="#marker" x="22.5" fill="#8888ff"/>
+ <text font-family="fontB" font-size="10">12</text>
+ </g>
+ </g>
+
+ <g transform="translate(0, 110)">
+ <g>
+ <rect x="-20" width="20" height="50" fill="none" stroke="black"/>
+ <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font C</text>
+ </g>
+ <use xlink:href="#sampleBkg"/>
+ <text x="5" y="15" font-size="12">u1="1" u2="2" g1="gl_3" g2="gl_4"</text>
+ <g transform="translate(5, 45) scale(2)">
+ <use xlink:href="#marker" fill="#8888ff"/>
+ <!-- ((1.adv + '12'.k)/unitsPerEm)*fontSize -->
+ <use xlink:href="#marker" x="17.5" fill="#8888ff"/>
+ <use xlink:href="#marker" x="32.5" fill="#8888ff"/>
+ <!-- ((3.adv + '34'.k)/unitsPerEm)*fontSize -->
+ <use xlink:href="#marker" x="55" fill="#8888ff"/>
+ <text font-family="fontC" font-size="10">1234</text>
+ </g>
+ </g>
+
+ <g transform="translate(0, 165)">
+ <g>
+ <rect x="-20" width="20" height="50" fill="none" stroke="black"/>
+ <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font D</text>
+ </g>
+ <use xlink:href="#sampleBkg"/>
+ <text x="5" y="15" font-size="12">u1="1,3" u2="2,4"</text>
+ <g transform="translate(5, 45) scale(2)">
+ <use xlink:href="#marker" fill="#8888ff"/>
+ <use xlink:href="#marker" x="17.5" fill="#8888ff"/>
+ <use xlink:href="#marker" x="32.5" fill="#8888ff"/>
+ <use xlink:href="#marker" x="55" fill="#8888ff"/>
+ <text font-family="fontD" font-size="10">1234</text>
+ </g>
+ </g>
+
+ <g transform="translate(240, 0)">
+ <g>
+ <rect x="-20" width="20" height="50" fill="none" stroke="black"/>
+ <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font E</text>
+ </g>
+ <use xlink:href="#sampleBkg"/>
+ <text x="5" y="15" font-size="12">g1="gl_1,gl_3" g2="gl_2,gl_4"</text>
+ <g transform="translate(5, 45) scale(2)">
+ <use xlink:href="#marker" fill="#8888ff"/>
+ <use xlink:href="#marker" x="17.5" fill="#8888ff"/>
+ <use xlink:href="#marker" x="32.5" fill="#8888ff"/>
+ <use xlink:href="#marker" x="55" fill="#8888ff"/>
+ <text font-family="fontE" font-size="10">1234</text>
+ </g>
+ </g>
+
+ <g transform="translate(240, 55)">
+ <g>
+ <rect x="-20" width="20" height="50" fill="none" stroke="black"/>
+ <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font F</text>
+ </g>
+ <use xlink:href="#sampleBkg"/>
+ <text x="5" y="15" font-size="12">u1="U+003?" u2="U+0031-34"</text>
+ <g transform="translate(5, 45) scale(2)">
+ <use xlink:href="#marker" fill="#8888ff"/>
+ <!-- '2' -->
+ <use xlink:href="#marker" x="17.5" fill="#8888ff"/>
+ <!-- '3' -->
+ <use xlink:href="#marker" x="47.5" fill="#8888ff"/>
+ <!-- '4' -->
+ <use xlink:href="#marker" x="70" fill="#8888ff"/>
+ <text font-family="fontF" font-size="10">1234</text>
+ </g>
+ </g>
+
+ <g transform="translate(240, 110)">
+ <g>
+ <rect x="-20" width="20" height="50" fill="none" stroke="black"/>
+ <text transform="translate(-5, 25) rotate(-90)" text-anchor="middle">font G</text>
+ </g>
+ <use xlink:href="#sampleBkg"/>
+ <text x="5" y="15" font-size="12">u1="1" g2="gl_2"</text>
+ <g transform="translate(5, 45) scale(2)">
+ <!-- Advance for '1': 0 -->
+ <use xlink:href="#marker" fill="#8888ff"/>
+
+ <!-- Advance for '2' : '1'.advance + kerning -->
+ <!-- : ((250 - (-1000))/1000)*10 -->
+ <!-- : 12.5 -->
+ <use xlink:href="#marker" x="12.5" fill="#8888ff"/>
+ <text font-family="fontG" font-size="10">12</text>
+ </g>
+ </g>
+ </g>
+ <g id="testContent" transform="translate(320, 100)" font-size="10">
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/fonts-overview-201-t-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-overview-201-t-novalid.html
new file mode 100644
index 0000000000..8cc1f54b52
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/fonts-overview-201-t-novalid.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>fonts-overview-201-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: fonts-overview-201-t-manual.svg</h1>
+
+<svg version="1.2" baseProfile="tiny" id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xe="http://www.w3.org/2001/xml-events">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: fonts-overview-201-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font id="beta" horiz-adv-x="550" >
+ <font-face
+ font-family="SVGbeta1"
+ font-weight="500"
+ units-per-em="1000"
+ ascent="800"
+ descent="-200"
+ unicode-range="U+03B2"
+ />
+ <missing-glyph />
+ <glyph glyph-name="beta" unicode="&#x3b2;"
+ d="M522.35 177.05c0 -103.55 -73.73 -201.4 -190.89 -201.4c-62.62 0 -123.22 22.7998 -138.37 85.5h-2.01999v-261.15h-135.34v573.7c0 136.8 37.3691 304.95 218.16 304.95c95.95 0 198.97 -40.85 198.97 -145.35c0 -94.05 -72.72 -133 -160.59 -152v-1.89999
+ c126.25 -16.15 210.08 -76 210.08 -202.35zM360.75 128.6v80.75c0 41.8 -3.03 149.15 -67.67 149.15c-15.15 0 -29.29 -8.54999 -44.44 -8.54999c-14.14 0 -20.2 18.05 -20.2 28.5c0 11.4 9.09 24.7 22.22 24.7c12.12 0 24.24 -6.64999 36.36 -6.64999
+ c45.45 0 45.45 79.8 45.45 108.3c0 42.75 2.01999 146.3 -63.63 146.3c-75.75 0 -77.77 -138.7 -77.77 -188.1v-394.25h31.31c3.03 -23.75 29.29 -49.4004 55.55 -49.4004c68.68 0 82.82 56.0508 82.82 109.25z" />
+ </font>
+ <font id="beta2" horiz-adv-x="5.50" >
+ <font-face
+ font-family="SVGbeta2"
+ font-weight="500"
+ units-per-em="10"
+ ascent="8"
+ descent="-2"
+ unicode-range="U+03B2"
+ />
+ <missing-glyph />
+ <glyph glyph-name="beta" unicode="&#x3b2;"
+ d="M5.2235 1.7705c0 -1.0355 -0.7373 -2.014 -1.9089 -2.014c-0.6262 0 -1.2322 0.227998 -1.3837 0.855h-0.0201999v-2.6115h-1.3534v5.737c0 1.368 0.373691 3.0495 2.1816 3.0495c0.9595 0 1.9897 -0.4085 1.9897 -1.4535c0 -0.9405 -0.7272 -1.33 -1.6059 -1.52v-0.0189999
+ c1.2625 -0.1615 2.1008 -0.76 2.1008 -2.0235zM3.6075 1.286v0.8075c0 0.418 -0.0303 1.4915 -0.6767 1.4915c-0.1515 0 -0.2929 -0.0854999 -0.4444 -0.0854999c-0.1414 0 -0.202 0.1805 -0.202 0.285c0 0.114 0.0909 0.247 0.2222 0.247c0.1212 0 0.2424 -0.0664999 0.3636 -0.0664999
+ c0.4545 0 0.4545 0.798 0.4545 1.083c0 0.4275 0.0201999 1.463 -0.6363 1.463c-0.7575 0 -0.7777 -1.387 -0.7777 -1.881v-3.9425h0.3131c0.0303 -0.2375 0.2929 -0.494004 0.5555 -0.494004c0.6868 0 0.8282 0.560508 0.8282 1.0925z" />
+ </font>
+ <font id="beta3" horiz-adv-x="55000" >
+ <font-face
+ font-family="SVGbeta3"
+ font-weight="500"
+ units-per-em="10000"
+ ascent="8000"
+ descent="-2000"
+ unicode-range="U+03B2"
+ />
+ <missing-glyph />
+ <glyph glyph-name="beta" unicode="&#x3b2;"
+ d="M5223.5 1770.5c0 -1035.5 -737.3 -2014.0 -1908.9 -2014.0c-626.2 0 -1232.2 227.998 -1383.7 855.0h-20.1999v-2611.5h-1353.4v5737.0c0 1368.0 373.691 3049.5 2181.6 3049.5c959.5 0 1989.7 -408.5 1989.7 -1453.5c0 -940.5 -727.2 -1330.0 -1605.9 -1520.0v-18.9999
+ c1262.5 -161.5 2100.8 -760.0 2100.8 -2023.5zM3607.5 1286.0v807.5c0 418.0 -30.3 1491.5 -676.7 1491.5c-151.5 0 -292.9 -85.4999 -444.4 -85.4999c-141.4 0 -202.0 180.5 -202.0 285.0c0 114.0 90.9 247.0 222.2 247.0c121.2 0 242.4 -66.4999 363.6 -66.4999
+ c454.5 0 454.5 798.0 454.5 1083.0c0 427.5 20.1999 1463.0 -636.3 1463.0c-757.5 0 -777.7 -1387.0 -777.7 -1881.0v-3942.5h313.1c30.3 -237.5 292.9 -494.004 555.5 -494.004c686.8 0 828.2 560.508 828.2 1092.5z" />
+ </font>
+ </defs>
+ <!-- alphabetic baseline -->
+ <path stroke-width="2" stroke="#888" d="M 50,200 H 420"/>
+ <!-- ascent -->
+ <path stroke-width="2" stroke="#888" d="M 50, 56 H 420"/>
+ <!-- descent -->
+ <path stroke-width="2" stroke="#888" d="M 50, 236 H 420"/>
+
+ <text x="50" y="200" font-family="SVGbeta1" font-size="180">β</text>
+ <text x="180" y="200" font-family="SVGbeta2" font-size="180">β</text>
+ <text x="310" y="200" font-family="SVGbeta3" font-size="180">β</text>
+
+ <text x="60" y="260" font-size="10">1,000</text>
+ <text x="190" y="260" font-size="10">10</text>
+ <text x="320" y="260" font-size="10">10,000</text>
+ <text x="110" y="280" font-size="16">varying units-per-em values</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/imp-path-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/imp-path-01-f-isvalid.html
new file mode 100644
index 0000000000..905bcb3194
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/imp-path-01-f-isvalid.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>imp-path-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: imp-path-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: imp-path-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <marker id="testMarker">
+ <rect width="96" height="96" fill="blue" />
+ </marker>
+ </defs>
+ <path d="m 0 0 L 0 0" stroke-width="25" marker-end="url(#testMarker)" />
+ <line x1="0" x2="0" y1="100" y2="100" stroke-width="25" marker-end="url(#testMarker)" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-cursor-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-cursor-01-f-isvalid.html
new file mode 100644
index 0000000000..2fa936410e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-cursor-01-f-isvalid.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-cursor-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-cursor-01-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-cursor-01-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <cursor id="magglass" xlink:href="../images/magnify.png" x="10" y="11"/>
+ </defs>
+ <text x="240" y="25" text-anchor="middle" font-size="26">
+ Text Cursor
+ <a xlink:href="http://www.w3.org/TR/SVG/interact#Cursors" fill="blue" xlink:show="new">Pointer Cursor</a>
+ </text>
+ <!-- use this text to check the native 'text' and 'pointer' cursor -->
+ <rect x="120" y="40" width="240" height="236" stroke="#666" stroke-width="3" fill="none"/>
+ <!-- ====================================================================== -->
+ <!-- Predefined keyword values for cursors ===================== -->
+ <!-- ====================================================================== -->
+ <g class="button">
+ <g cursor="crosshair">
+ <rect stroke="none" fill="#666" x="148" y="70" width="80" height="32"/>
+ <text stroke="none" fill="#FFF" font-family="Geneva, Arial, Helvetica, sans-serif" font-weight="bold" font-size="16" x="154" y="90">crosshair</text>
+ </g>
+ <g cursor="default">
+ <rect stroke="none" fill="#666" x="148" y="118" width="80" height="32"/>
+ <text stroke="none" fill="#FFF" font-family="Geneva, Arial, Helvetica, sans-serif" font-weight="bold" font-size="16" x="154" y="138">default</text>
+ </g>
+ <g cursor="pointer">
+ <rect stroke="none" fill="#666" x="148" y="166" width="80" height="32"/>
+ <text stroke="none" fill="#FFF" font-family="Geneva, Arial, Helvetica, sans-serif" font-weight="bold" font-size="16" x="154" y="186">pointer</text>
+ </g>
+ <g cursor="move">
+ <rect stroke="none" fill="#666" x="148" y="214" width="80" height="32"/>
+ <text stroke="none" fill="#FFF" font-family="Geneva, Arial, Helvetica, sans-serif" font-weight="bold" font-size="16" x="154" y="235">move</text>
+ </g>
+ <g cursor="text">
+ <rect stroke="none" fill="#666" x="252" y="70" width="80" height="32"/>
+ <text stroke="none" fill="#FFF" font-family="Geneva, Arial, Helvetica, sans-serif" font-weight="bold" font-size="16" x="258" y="90">text</text>
+ </g>
+ <g cursor="wait">
+ <rect stroke="none" fill="#666" x="252" y="118" width="80" height="32"/>
+ <text stroke="none" fill="#FFF" font-family="Geneva, Arial, Helvetica, sans-serif" font-weight="bold" font-size="16" x="258" y="138">wait</text>
+ </g>
+ <g cursor="help">
+ <rect stroke="none" fill="#666" x="252" y="166" width="80" height="32"/>
+ <text stroke="none" fill="#FFF" font-family="Geneva, Arial, Helvetica, sans-serif" font-weight="bold" font-size="16" x="258" y="186">help</text>
+ </g>
+ <g cursor="url(#magglass),crosshair">
+ <rect stroke="none" fill="#666" x="252" y="214" width="80" height="32"/>
+ <text stroke="none" fill="#FFF" font-family="Geneva, Arial, Helvetica, sans-serif" font-weight="bold" font-size="16" x="258" y="235">&lt;url&gt;</text>
+ </g>
+ </g>
+ <g stroke="black" stroke-width="1" fill="#900">
+ <polygon points="116,36 116,68 148,36" cursor="nw-resize"/>
+ <polygon points="364,36 364,68 332,36" cursor="ne-resize"/>
+ <polygon points="364,280 332,280 364,248" cursor="se-resize"/>
+ <polygon points="116,280 148,280 116,248" cursor="sw-resize"/>
+ <polygon points="340,134 340,182 364,158" cursor="e-resize"/>
+ <polygon points="116,158 140,134 140,182" cursor="w-resize"/>
+ <polygon points="240,36 264,63.3 214,63.3" cursor="n-resize"/>
+ <polygon points="240,280 264,252.7 214,252.7" cursor="s-resize"/>
+ </g>
+ <!-- link to check consistency of 'pointer' cursor -->
+ <!-- target for hotspot test -->
+ <g id="target" stroke-width="1" stroke="black" cursor="url(#magglass),crosshair">
+ <!-- make a target to test the hotspot -->
+ <circle cx="390" cy="315" r="16" stroke="none" fill="#FFC"/>
+ <polyline points="390,295 390,335"/>
+ <polyline points="370,315 410,315"/>
+ <circle cx="390" cy="315" r="6" stroke="none" fill="#FFF"/>
+ <!-- make the hotspot, taking care the cursor stays the same -->
+ <a fill="blue" xlink:href="http://www.w3.org/Icons/w3c_home">
+ <circle cx="390" cy="315" r="2" stroke="none" fill="#000"/>
+ </a>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-dom-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-dom-01-b-isvalid.html
new file mode 100644
index 0000000000..101082a941
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-dom-01-b-isvalid.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-dom-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-dom-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360" onload="initTest(evt)"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-dom-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <script type="text/ecmascript">
+ <![CDATA[
+
+ var svg_ns = "http://www.w3.org/2000/svg"
+ var doc;
+ var content;
+ var startButton;
+ var buttonRect;
+ var yLocation = 280;
+ //
+ // onload handler for top level svg element. Sets a UI event listener for
+ // the test start button.
+ //
+ function initTest(evt){
+ // Get Document
+ var target = evt.target;
+ doc = target.ownerDocument;
+ content = doc.getElementById("test-body-content");
+
+ // Get start rect and add a UI listener
+ startButton = doc.getElementById("startButton");
+ buttonRect = doc.getElementById("buttonRect");
+ startButton.addEventListener("click", uiEventDetected, false);
+ }
+
+ //
+ // click handler for 'startButton' rect element.
+ //
+ function uiEventDetected(evt) {
+ //
+ // Add an element to show that UI event was detected
+ //
+ var newText = doc.createElementNS(svg_ns, 'text');
+ newText.setAttribute('x', '5');
+ newText.setAttribute('y', yLocation);
+ newText.setAttribute('font-size', '40');
+ var message = "Event Listeners supported";
+ var textContent = doc.createTextNode(message);
+ newText.appendChild(textContent);
+ content.appendChild(newText);
+
+ startButton.removeEventListener("click", uiEventDetected, false);
+
+ // Make start button green
+ buttonRect.setAttribute("fill", "#88ff88");
+ buttonRect.setAttribute("stroke", "black");
+
+ // If test does not successfully remove the event listener, then
+ // a second click will cause a subsequent text string to appear 50 units
+ // below the first new text string.
+ yLocation = yLocation + 50;
+ }
+
+ ]]>
+ </script>
+
+ <!-- ===================================================================== -->
+ <!-- Start button -->
+ <!-- ===================================================================== -->
+ <g id="startButton">
+ <rect id="buttonRect" x="65" y="20" width="350" height="200" fill="#dddddd" stroke="black"/>
+ <text font-size="54" x="120" y="130">Start Test</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-events-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-events-01-b-isvalid.html
new file mode 100644
index 0000000000..64041cfd8b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-events-01-b-isvalid.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-events-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-events-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" onload="onEvent(evt, 'Rect6', 'visible')" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-events-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <script type="text/ecmascript"><![CDATA[
+
+ function onEvent(evt, indicatorId, visibilityValue){
+ // Get Document
+ var target = evt.target;
+ var doc = target.ownerDocument;
+
+ // Mark test as passed
+ var elementToShow = doc.getElementById(indicatorId);
+ elementToShow.setAttribute('visibility', '' + visibilityValue);
+ }
+
+ ]]></script>
+ </defs>
+ <text font-family="Arial" font-size="40" x="30" y="40">
+ 'onload' event attribute.
+ </text>
+ <g font-family="Arial" font-size="40" fill="blue" stroke="none">
+ <g transform="translate(77.5,45)">
+ <rect id="Rect1" width="80" height="80" visibility="hidden"/>
+ <text x="-30" y="120" fill="red">1: No</text>
+ </g>
+ <g transform="translate(202.5,45)">
+ <rect id="Rect2" width="80" height="80" onload="onEvent(evt, 'Rect2', 'visible')" visibility="hidden"/>
+ <text x="-30" y="120" fill="red">2: Yes</text>
+ </g>
+ <g transform="translate(327.5,45)">
+ <g onload="onEvent(evt, 'Rect3', 'visible')">
+ <rect id="Rect3" width="80" height="80" visibility="hidden"/>
+ </g>
+ <text x="-30" y="120" fill="red">3: Yes</text>
+ </g>
+ <g transform="translate(77.5,178)">
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="200" height="200" onload="onEvent(evt, 'Rect4', 'visible')">
+ <rect id="Rect4" width="80" height="80" visibility="hidden"/>
+ </svg>
+ <text x="-30" y="120" fill="red">4: Yes</text>
+ </g>
+ <g transform="translate(202.5,178)">
+ <g onload="onEvent(evt, 'Rect5', 'hidden')">
+ <rect id="Rect5" width="80" height="80" onload="onEvent(evt, 'Rect5', 'visible')" visibility="hidden"/>
+ </g>
+ <text x="-30" y="120" fill="red">5: No</text>
+ </g>
+ <g transform="translate(327.5,178)">
+ <rect id="Rect6" width="80" height="80" visibility="hidden"/>
+ <text x="-30" y="120" fill="red">6: Yes</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-events-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-events-02-b-isvalid.html
new file mode 100644
index 0000000000..e85bd93e7a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-events-02-b-isvalid.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-events-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-events-02-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" onload='f(evt)'>
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-events-02-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='30'>Testing that SVGLoad does not bubble</text>
+
+ <rect id='r1' x='10' y='50' width='50' height='50' fill='red'/>
+ <rect id='r2' x='210' y='50' width='50' height='50' fill='red'/>
+ <g font-size='14'>
+ <text x='10' y='130'>On root &lt;svg></text>
+ <text x='210' y='130'>On an &lt;image></text>
+ </g>
+
+ <script><![CDATA[
+ function f(evt) { if (!evt.bubbles && evt.target == document.getElementById("svg-root")) document.getElementById('r1').setAttribute('fill', 'green'); }
+ function g(evt) { if (!evt.bubbles && evt.target == document.getElementById("image")) document.getElementById('r2').setAttribute('fill', 'green'); }
+ ]]></script>
+
+ <image id="image" xlink:href='../images/20x20.png' width='20' height='20' visibility='hidden' onload='g(evt)'/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5>" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-events-202-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-events-202-f-isvalid.html
new file mode 100644
index 0000000000..378177a13b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-events-202-f-isvalid.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-events-202-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-events-202-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-events-202-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect id="r1" x="10" y="20" width="90" height="65" visibility="inherit" fill="inherit"/>
+ </defs>
+
+ <g id="g1" transform="translate( 0, 0)" visibility="visible">
+ <use xlink:href="#r1" visibility="inherit" fill="blue"
+ onmouseover="g3.setAttribute('visibility', 'visible')"
+ onmouseout="g3.setAttribute('visibility', 'hidden')"/>
+ </g>
+ <g id="g2" transform="translate(90, 0)" visibility="visible"
+ onmouseover="g4.setAttribute('visibility', 'visible')"
+ onmouseout="g4.setAttribute('visibility', 'hidden')">
+ <use xlink:href="#r1" visibility="inherit" fill="green"/>
+ </g>
+ <g id="g3" transform="translate( 0, 65)" visibility="hidden">
+ <use xlink:href="#r1" visibility="inherit" fill="yellow"/>
+ </g>
+ <g id="g4" transform="translate(90, 65)" visibility="hidden">
+ <use xlink:href="#r1" visibility="inherit" fill="purple"/>
+ </g>
+
+ <script type="text/ecmascript">
+ var g1 = document.getElementById("g1");
+ var g2 = document.getElementById("g2");
+ var g3 = document.getElementById("g3");
+ var g4 = document.getElementById("g4");
+ </script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-events-203-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-events-203-t-isvalid.html
new file mode 100644
index 0000000000..6aa4683b04
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-events-203-t-isvalid.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-events-203-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-events-203-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-events-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <!-- SVGElementInstance animates fill on mouseover -->
+ <rect id="rect" width="50" height="50" fill="red" onmouseover="document.getElementById('rect').setAttribute('fill','blue')" onmouseout="document.getElementById('rect').setAttribute('fill','red')" />
+ </defs>
+
+ <text x="120" y="20" font-size="15">Shadow tree event listener chain</text>
+
+ <!--basic event dispatch - all rectangles turn blue -->
+ <use fill="red" x="30" y="30" xlink:href="#rect"/>
+ <text x="95" y="45" font-size="12">Case 1: on mouseover all squares must turn blue</text>
+
+ <!-- event bubbling from SVGElementInstance to referencing element -->
+ <!-- all rectangles turn blue and second rectangle displays black stroke -->
+ <use id="use2" fill="red" x="30" y="100" xlink:href="#rect" onmouseover="document.getElementById('rect1').setAttribute('stroke','black')" onmouseout="document.getElementById('rect1').setAttribute('stroke','none')"/>
+ <rect id="rect1" pointer-events="none" x="30" y="100" width="50" height="50" fill="none" stroke-width="5" stroke="none"/>
+
+ <g font-size="12">
+ <text x="95" y="115">Case 2: on mouseover all squares must turn blue</text>
+ <text x="95" y="130">and a black stroke must appear on reference square</text>
+ </g>
+
+ <!-- event bubbling from SVGElementInstance to referencing element ancestors-->
+ <!-- all rectangles turn blue and third rectangle displays black stroke -->
+ <g id="g1" onmouseover="document.getElementById('rect2').setAttribute('stroke','black')" onmouseout="document.getElementById('rect2').setAttribute('stroke','none')">
+ <use fill="red" x="30" y="170" xlink:href="#rect"/>
+ <rect id="rect2" pointer-events="none" x="30" y="170" width="50" height="50" fill="none" stroke-width="5" stroke="none"/>
+ </g>
+ <g font-size="12">
+ <text x="95" y="185">Case 3: on mouseover all squares must turn blue</text>
+ <text x="95" y="200">and a black stroke must appear on reference square</text>
+ </g>
+
+ <!--SVGElementInstance is not effected by event listener on referencing element -->
+ <!-- all rectangles turn blue and displays black stroke only on mouse down -->
+ <use id="use3" fill="red" x="30" y="240" xlink:href="#rect" onmousedown="document.getElementById('rect3').setAttribute('stroke','black')" onmouseup="document.getElementById('rect3').setAttribute('stroke','none')"/>
+ <rect id="rect3" pointer-events="none" x="30" y="240" width="50" height="50" fill="none" stroke-width="5" stroke="none"/>
+ <g font-size="12">
+ <text x="95" y="255">Case 4: on mouseover all squares must turn blue</text>
+ <text x="95" y="270">and on mousedown a black stroke must appear on reference square</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-order-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-order-01-b-isvalid.html
new file mode 100644
index 0000000000..02d48a0d86
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-order-01-b-isvalid.html
@@ -0,0 +1,89 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-order-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-order-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-order-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <script type="text/ecmascript">
+
+ function bubbleYes(evt, color){
+ // Get Document
+ var target = evt.target;
+ target.setAttribute('fill', '' +color);
+ }
+ function bubbleNo(evt, color){
+ // Get Document
+ var target = evt.target;
+ target.setAttribute('fill', '' +color);
+ evt.stopPropagation();
+ evt.preventDefault();
+ }
+
+ </script>
+ </defs>
+ <text font-family="Arial" font-size="40" x="60" y="45">Event bubbling - a</text>
+ <g id="background">
+ <rect fill="#EEE" stroke="#000" x="10" y="60" width="460" height="120"/>
+ <rect fill="#FFF" stroke="#000" x="10" y="180" width="460" height="120"/>
+ </g>
+ <g fill="#000" font-family="Arial" font-size="40">
+ <!-- Event bubbling (i.e., propagation) is not turned off, so
+ event if first processed by 'circle', but then processed by 'g',
+ with result that circle turns blue, but then instantaneously
+ turns pink. -->
+ <g onmouseover="bubbleYes(evt, '#F08')" onmouseout="bubbleYes(evt, 'inherit')">
+ <circle onmouseover="bubbleYes(evt, '#00F')" onmouseout="bubbleYes(evt, 'inherit')" cx="70" cy="120" r="50"/>
+ <circle onmouseover="bubbleNo(evt, '#00F')" onmouseout="bubbleNo(evt, 'inherit')" cx="70" cy="240" r="50"/>
+ </g>
+ <text x="150" y="110">
+ Pointer in circle,
+ </text>
+ <text x="150" y="150">
+ circle turns pink
+ </text>
+ <text x="150" y="230">
+ Pointer in circle,
+ </text>
+ <text x="150" y="270">
+ circle turns blue
+ </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-order-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-order-02-b-isvalid.html
new file mode 100644
index 0000000000..39eb27681c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-order-02-b-isvalid.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-order-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-order-02-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-order-02-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <script type="text/ecmascript"><![CDATA[
+
+ function bubbleYes(evt, color){
+ // Get Document
+ var target = evt.target;
+ target.setAttribute('fill', '' +color);
+ }
+ function bubbleNo(evt, color){
+ // Get Document
+ var target = evt.target;
+ target.setAttribute('fill', '' +color);
+ evt.stopPropagation();
+ evt.preventDefault();
+ }
+
+ ]]></script>
+ </defs>
+ <text font-family="Arial" font-size="40" x="60" y="45">Event bubbling - b</text>
+ <g id="background">
+ <rect fill="#EEE" stroke="#000" x="10" y="60" width="460" height="120"/>
+ <rect fill="#FFF" stroke="#000" x="10" y="180" width="460" height="120"/>
+ </g>
+ <g fill="#000" font-family="Arial" font-size="40">
+ <!-- Test the order of events -->
+ <!-- Ensure that events get the event before the hyperlink. -->
+ <a xlink:href="../images/interact-order-02-b-targ.svg">
+ <circle onclick="bubbleNo(evt, 'red')" onmouseout="bubbleNo(evt, 'inherit')" cx="70" cy="120" r="50"/>
+ <circle onclick="bubbleYes(evt, 'blue')" onmouseout="bubbleNo(evt, 'inherit')" cx="70" cy="240" r="50"/>
+ </a>
+ <text x="135" y="110">
+ Click on circle,
+ </text>
+ <text x="135" y="150">
+ circle turns red
+ </text>
+ <text x="135" y="230">
+ Click on circle,
+ </text>
+ <text x="135" y="270">
+ hyperlink
+ </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-order-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-order-03-b-isvalid.html
new file mode 100644
index 0000000000..85f2b717db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-order-03-b-isvalid.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-order-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-order-03-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-order-03-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <script type="text/ecmascript"><![CDATA[
+
+ function bubbleYes(evt, color){
+ // Get Document
+ var target = evt.target;
+ target.setAttribute('fill', '' +color);
+ }
+ function bubbleNo(evt, color){
+ // Get Document
+ var target = evt.target;
+ target.setAttribute('fill', '' +color);
+ evt.stopPropagation();
+ evt.preventDefault();
+ }
+
+ ]]></script>
+ </defs>
+ <text font-family="Arial" font-size="40" x="60" y="40">Event bubbling - c</text>
+ <g id="background">
+ <rect fill="#EEE" stroke="#000" x="10" y="55" width="460" height="230"/>
+ </g>
+ <g fill="#000" font-family="Arial" font-size="40">
+ <!-- Ensure that events get the event before the hyperlink which
+ happens before text selection -->
+ <a xlink:href="../images/interact-order-03-b-targ.svg" font-size="40">
+ <text x="20" y="90" onclick="bubbleNo(evt, 'red')" onmouseout="bubbleNo(evt, 'inherit')">
+ String turns red on click
+ </text>
+ <g onclick="bubbleYes(evt, 'blue')" onmouseout="bubbleYes(evt, 'inherit')">
+ <text x="60" y="160">
+ String hyperlinks to
+ </text>
+ <text x="20" y="200" font-size="33">
+ interact-order-03b-targ.svg
+ </text>
+ </g>
+ <text x="30" y="270" onclick="bubbleNo(evt, 'inherit')">
+ All strings are selectable.
+ </text>
+ </a>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-01-b-isvalid.html
new file mode 100644
index 0000000000..851efb6528
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-01-b-isvalid.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-pevents-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-pevents-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-pevents-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="sans-serif" font-size="40" text-rendering="geometricPrecision">
+ <script><![CDATA[
+ var no_reset = 1;
+
+ function pass_in(elm)
+ {
+ elm.setAttribute("fill", "green");
+ elm.setAttribute("visibility", "visible");
+ }
+
+ function pass_out(elm)
+ {
+ if(!no_reset)
+ {
+ elm.removeAttribute("fill");
+ elm.removeAttribute("visibility");
+ }
+ }
+
+ function fail_in(elm)
+ {
+ elm.setAttribute("fill", "red");
+ elm.setAttribute("visibility", "visible");
+ }
+
+ function fail_out(elm)
+ {
+ if(!no_reset)
+ {
+ elm.removeAttribute("fill");
+ elm.removeAttribute("visibility");
+ }
+ }
+
+ function toggle_freeze()
+ {
+ no_reset = !no_reset;
+ }
+ ]]></script>
+
+ <text x="240" y="40" text-anchor="middle" font-size="20">Test pointer-events on text</text>
+ <g transform="translate(40, -10)">
+ <g id="first-line">
+ <text x="50" y="100" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="80" y="100" pointer-events="visiblePainted" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="110" y="100" pointer-events="visibleFill" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="140" y="100" pointer-events="visibleStroke" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="170" y="100" pointer-events="visible" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="200" y="100" pointer-events="painted" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="230" y="100" pointer-events="fill" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="260" y="100" pointer-events="stroke" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="290" y="100" pointer-events="all" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="320" y="100" pointer-events="none" onmouseover="fail_in(evt.target)" onmouseout="fail_out(evt.target)">O</text>
+
+ <g pointer-events="none">
+ <rect x="50" y="65" height="40" width="270" fill="green" fill-opacity="0.5" visibility="visible"/>
+
+ <rect x="50" y="65" height="40" width="300" fill="none" stroke="black" visibility="visible"/>
+ </g>
+ </g>
+
+ <g id="second-line" transform="translate(0 60)" fill="none" stroke="black">
+ <text x="50" y="100" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="80" y="100" pointer-events="visiblePainted" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="110" y="100" pointer-events="visibleFill" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="140" y="100" pointer-events="visibleStroke" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="170" y="100" pointer-events="visible" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="200" y="100" pointer-events="painted" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="230" y="100" pointer-events="fill" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="260" y="100" pointer-events="stroke" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="290" y="100" pointer-events="all" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="320" y="100" pointer-events="none" onmouseover="fail_in(evt.target)" onmouseout="fail_out(evt.target)">O</text>
+
+ <g pointer-events="none">
+ <rect x="50" y="65" height="40" width="270" fill="green" fill-opacity="0.5" visibility="visible" stroke="none"/>
+
+ <rect x="50" y="65" height="40" width="300" fill="none" stroke="black" visibility="visible"/>
+ </g>
+ </g>
+
+ <g id="third-line" transform="translate(0 120)" visibility="hidden">
+ <text x="50" y="100" onmouseover="fail_in(evt.target)" onmouseout="fail_out(evt.target)">O</text>
+ <text x="80" y="100" pointer-events="visiblePainted" onmouseover="fail_in(evt.target)" onmouseout="fail_out(evt.target)">O</text>
+ <text x="110" y="100" pointer-events="visibleFill" onmouseover="fail_in(evt.target)" onmouseout="fail_out(evt.target)">O</text>
+ <text x="140" y="100" pointer-events="visibleStroke" onmouseover="fail_in(evt.target)" onmouseout="fail_out(evt.target)">O</text>
+ <text x="170" y="100" pointer-events="visible" onmouseover="fail_in(evt.target)" onmouseout="fail_out(evt.target)">O</text>
+ <text x="200" y="100" pointer-events="painted" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="230" y="100" pointer-events="fill" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="260" y="100" pointer-events="stroke" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="290" y="100" pointer-events="all" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="320" y="100" pointer-events="none" onmouseover="fail_in(evt.target)" onmouseout="fail_out(evt.target)">O</text>
+
+ <g pointer-events="none">
+ <rect x="200" y="65" height="40" width="120" fill="green" fill-opacity="0.5" visibility="visible"/>
+
+ <rect x="50" y="65" height="40" width="300" fill="none" stroke="black" visibility="visible"/>
+ </g>
+ </g>
+
+ <g id="fourth-line" transform="translate(0 180)" fill="none" stroke="none">
+ <text x="50" y="100" onmouseover="fail_in(evt.target)" onmouseout="fail_out(evt.target)">O</text>
+ <text x="80" y="100" pointer-events="visiblePainted" onmouseover="fail_in(evt.target)" onmouseout="fail_out(evt.target)">O</text>
+
+ <text x="110" y="100" pointer-events="visibleFill" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="140" y="100" pointer-events="visibleStroke" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="170" y="100" pointer-events="visible" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+
+ <text x="200" y="100" pointer-events="painted" onmouseover="fail_in(evt.target)" onmouseout="fail_out(evt.target)">O</text>
+
+ <text x="230" y="100" pointer-events="fill" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="260" y="100" pointer-events="stroke" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+ <text x="290" y="100" pointer-events="all" onmouseover="pass_in(evt.target)" onmouseout="pass_out(evt.target)">O</text>
+
+ <text x="320" y="100" pointer-events="none" onmouseover="fail_in(evt.target)" onmouseout="fail_out(evt.target)">O</text>
+
+ <g pointer-events="none">
+ <rect x="110" y="65" height="40" width="90" fill="green" fill-opacity="0.5" visibility="visible"/>
+ <rect x="230" y="65" height="40" width="90" fill="green" fill-opacity="0.5" visibility="visible"/>
+
+ <rect x="50" y="65" height="40" width="300" fill="none" stroke="black" visibility="visible"/>
+ </g>
+ </g>
+
+ <g transform="translate(275, 300) scale(0.5)" onclick="toggle_freeze();">
+ <rect id="button" width="150" height="26" fill="blue"/>
+ <text x="75" y="19" text-anchor="middle" font-size="20" fill="white">Toggle freeze</text>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-03-b-isvalid.html
new file mode 100644
index 0000000000..7e28b1e9d3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-03-b-isvalid.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-pevents-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-pevents-03-b-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-pevents-03-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="sans-serif" font-size="30" text-rendering="geometricPrecision">
+ <defs>
+ <!-- ===================================================================== -->
+ <!-- Define the font for embedding - using Microsoft's "Comic Sans MS" -->
+ <!-- This is an SVG Font version of Comic. The Comic font license -->
+ <!-- allows editable and installable font embedding. -->
+ <!-- Only need to embed the characters that are used in the test -->
+ <!-- ===================================================================== -->
+ <font horiz-adv-x="959">
+ <font-face font-family="TestComicSVGFont" units-per-em="2048" panose-1="3 15 7 2 3 3 2 2 2 4" ascent="2257" descent="-597" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="1024" d="M128 0V1638H896V0H128zM256 128H768V1510H256V128z"/>
+ <glyph unicode=" " horiz-adv-x="1024" d="M0 0l1024 0l0 2048l-1024 0l0 -1024Z"/>
+ <glyph unicode="@" horiz-adv-x="1907" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z"/>
+ <glyph unicode="A" horiz-adv-x="1498" d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z"/>
+ <glyph unicode="y" horiz-adv-x="1066" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z"/>
+ <glyph unicode="Ö" horiz-adv-x="1635" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z"/>
+ <glyph unicode="ç" horiz-adv-x="1052" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z"/>
+ </font>
+
+ <font horiz-adv-x="959">
+ <font-face font-family="TestComicSVGFont-space" units-per-em="2048" panose-1="3 15 7 2 3 3 2 2 2 4" ascent="2257" descent="-597" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="1024" d="M128 0V1638H896V0H128zM256 128H768V1510H256V128z"/>
+ <glyph unicode=" " horiz-adv-x="1024"/>
+ <glyph unicode="@" horiz-adv-x="1907" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z"/>
+ <glyph unicode="A" horiz-adv-x="1498" d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z"/>
+ <glyph unicode="y" horiz-adv-x="1066" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z"/>
+ <glyph unicode="Ö" horiz-adv-x="1635" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z"/>
+ <glyph unicode="ç" horiz-adv-x="1052" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z"/>
+ </font>
+ <script><![CDATA[
+ function mouseover(elm)
+ {
+ elm.setAttribute("fill", "green");
+ }
+
+ function mouseout(elm)
+ {
+ elm.removeAttribute("fill");
+ }
+ ]]></script>
+ </defs>
+
+ <text x="240" y="40" text-anchor="middle" font-size="20">Test pointer-events on text</text>
+
+ <g transform="translate(0, -10)" text-anchor="middle">
+ <g font-family="TestComicSVGFont">
+ <g id="first-line" letter-spacing="10">
+ <text x="240" y="100" onmouseover="mouseover(evt.target)" onmouseout="mouseout(evt.target)">@ A y Ö ç</text>
+ </g>
+
+ <g id="second-line" transform="translate(0 50)" letter-spacing="10" font-family="TestComicSVGFont-space">
+ <text x="240" y="100" onmouseover="mouseover(evt.target)" onmouseout="mouseout(evt.target)">@ A y Ö ç</text>
+ </g>
+
+ <g id="third-line" transform="translate(0 100)" letter-spacing="30">
+ <text x="240" y="100" onmouseover="mouseover(evt.target)" onmouseout="mouseout(evt.target)">@AyÖç</text>
+ </g>
+ </g>
+
+ <g font-family="sans-serif">
+ <g id="fourth-line" transform="translate(0 150)" letter-spacing="10">
+ <text x="240" y="100" onmouseover="mouseover(evt.target)" onmouseout="mouseout(evt.target)">@ A y Ö ç</text>
+ </g>
+
+ <g id="fifth-line" transform="translate(0 200)" letter-spacing="30">
+ <text x="240" y="100" onmouseover="mouseover(evt.target)" onmouseout="mouseout(evt.target)">@AyÖç</text>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-04-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-04-t-isvalid.html
new file mode 100644
index 0000000000..10f0395387
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-04-t-isvalid.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-pevents-04-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-pevents-04-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-pevents-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="sans-serif" font-size="30" text-rendering="geometricPrecision">
+ <defs>
+ <!-- ===================================================================== -->
+ <!-- Define the font for embedding - using Microsoft's "Comic Sans MS" -->
+ <!-- This is an SVG Font version of Comic. The Comic font license -->
+ <!-- allows editable and installable font embedding. -->
+ <!-- Only need to embed the characters that are used in the test -->
+ <!-- ===================================================================== -->
+ <font horiz-adv-x="959">
+ <font-face font-family="TestComicSVGFont" units-per-em="2048" panose-1="3 15 7 2 3 3 2 2 2 4" ascent="2257" descent="-597" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="1024" d="M128 0V1638H896V0H128zM256 128H768V1510H256V128z"/>
+ <glyph unicode=" " horiz-adv-x="1024" d="M0 0Z"/>
+ <glyph unicode="@" horiz-adv-x="1907" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z"/>
+ <glyph unicode="A" horiz-adv-x="1498" d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z"/>
+ <glyph unicode="y" horiz-adv-x="1066" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z"/>
+ <glyph unicode="Ö" horiz-adv-x="1635" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z"/>
+ <glyph unicode="ç" horiz-adv-x="1052" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z"/>
+ </font>
+
+ <font horiz-adv-x="959">
+ <font-face font-family="TestComicSVGFont-space" units-per-em="2048" panose-1="3 15 7 2 3 3 2 2 2 4" ascent="2257" descent="-597" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="1024" d="M128 0V1638H896V0H128zM256 128H768V1510H256V128z"/>
+ <glyph unicode=" " horiz-adv-x="1024"/>
+ <glyph unicode="@" horiz-adv-x="1907" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z"/>
+ <glyph unicode="A" horiz-adv-x="1498" d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z"/>
+ <glyph unicode="y" horiz-adv-x="1066" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z"/>
+ <glyph unicode="Ö" horiz-adv-x="1635" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z"/>
+ <glyph unicode="ç" horiz-adv-x="1052" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z"/>
+ </font>
+ </defs>
+
+ <text x="240" y="40" text-anchor="middle" font-size="20">Test pointer-events on text</text>
+
+ <g transform="translate(0, -10)">
+ <g font-family="TestComicSVGFont">
+ <g id="first-line" letter-spacing="10">
+ <text id="line1" x="120" y="100">@ A y Ö ç</text>
+ </g>
+
+ <g id="second-line" transform="translate(0 50)" letter-spacing="10" font-family="TestComicSVGFont-space">
+ <text id="line2" x="120" y="100">@ A y Ö ç</text>
+ </g>
+
+ <g id="third-line" transform="translate(0 100)" letter-spacing="30">
+ <text id="line3" x="120" y="100">@AyÖç</text>
+ </g>
+ </g>
+
+ <g font-family="sans-serif">
+ <g id="fourth-line" transform="translate(0 150)" letter-spacing="10">
+ <text id="line4" x="120" y="100">@ A y Ö ç</text>
+ </g>
+
+ <g id="fifth-line" transform="translate(0 200)" letter-spacing="30">
+ <text id="line5" x="120" y="100">@AyÖç</text>
+ </g>
+ </g>
+
+ <set attributeName="fill" to="green" begin="line1.mouseover" end="line1.mouseout" dur="indefinite" xlink:href="#line1"/>
+ <set attributeName="fill" to="green" begin="line2.mouseover" end="line2.mouseout" dur="indefinite" xlink:href="#line2"/>
+ <set attributeName="fill" to="green" begin="line3.mouseover" end="line3.mouseout" dur="indefinite" xlink:href="#line3"/>
+ <set attributeName="fill" to="green" begin="line4.mouseover" end="line4.mouseout" dur="indefinite" xlink:href="#line4"/>
+ <set attributeName="fill" to="green" begin="line5.mouseover" end="line5.mouseout" dur="indefinite" xlink:href="#line5"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-05-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-05-b-isvalid.html
new file mode 100644
index 0000000000..69d39b6492
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-05-b-isvalid.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-pevents-05-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-pevents-05-b-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" onload="init()" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-pevents-05-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="sans-serif" font-size="30" text-rendering="geometricPrecision">
+ <defs>
+ <!-- ===================================================================== -->
+ <!-- Define the font for embedding - using Microsoft's "Comic Sans MS" -->
+ <!-- This is an SVG Font version of Comic. The Comic font license -->
+ <!-- allows editable and installable font embedding. -->
+ <!-- Only need to embed the characters that are used in the test -->
+ <!-- ===================================================================== -->
+ <font horiz-adv-x="959">
+ <font-face font-family="TestComicSVGFont" units-per-em="2048" panose-1="3 15 7 2 3 3 2 2 2 4" ascent="2257" descent="-597" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="1024" d="M128 0V1638H896V0H128zM256 128H768V1510H256V128z"/>
+ <glyph unicode=" " horiz-adv-x="1024" d="M0 0l1024 0l0 2048l-1024 0l0 -1024Z"/>
+ <glyph unicode="@" horiz-adv-x="1907" d="M1306 412Q1200 412 1123 443T999 535Q945 482 894 455T793 428Q682 428 584 518T485 717Q485 902 630 1055T961 1208Q1003 1208 1031 1177T1059 1102Q1059 1042 959 1013Q826 975 771 926Q690 855 690 717Q690 688 717 661Q748 631 794 633Q881 637 955 795Q1022 933 1074 933Q1116 933 1142 902T1168 826Q1168 806 1162 766T1155 706Q1155 641 1211 624Q1233 617 1306 617Q1443 617 1498 684Q1548 744 1548 883Q1548 1128 1351 1283Q1171 1425 921 1425Q630 1425 465 1205Q316 1009 316 712Q316 438 491 250Q673 54 959 54Q1040 54 1142 85L1317 150Q1361 166 1374 166Q1415 166 1445 134T1475 58Q1475 -37 1262 -96Q1101 -140 961 -140Q820 -140 673 -86T420 60Q110 328 110 712Q110 1096 322 1354Q547 1630 921 1630Q1259 1630 1500 1427Q1753 1212 1753 883Q1753 658 1643 537Q1528 412 1306 412z"/>
+ <glyph unicode="A" horiz-adv-x="1498" d="M1250 -30Q1158 -30 1090 206Q1064 296 1025 521Q923 507 758 471L492 416Q442 285 321 33Q289 -23 234 -23Q194 -23 163 6T131 78Q131 126 282 443Q265 469 265 503Q265 584 363 607Q477 821 651 1099Q888 1478 946 1478Q1025 1478 1054 1368L1117 1032L1266 337L1323 179Q1352 98 1352 71Q1352 28 1321 -1T1250 -30zM897 1113L611 652Q732 683 978 727L897 1113z"/>
+ <glyph unicode="y" horiz-adv-x="1066" d="M1011 892L665 144Q537 -129 469 -313L403 -507Q377 -579 313 -579Q271 -579 241 -552T210 -483Q210 -383 426 96L68 785L23 858Q-4 904 -4 935Q-4 976 27 1007T98 1038Q144 1038 169 1003Q339 767 534 331L682 676Q762 855 836 984Q868 1040 920 1040Q961 1040 992 1011T1024 942Q1024 920 1011 892z"/>
+ <glyph unicode="Ö" horiz-adv-x="1635" d="M802 -61Q520 -61 324 108Q116 288 116 572Q116 918 321 1201Q550 1515 892 1515Q1221 1515 1381 1367Q1548 1213 1548 881Q1548 535 1360 257Q1144 -61 802 -61zM892 1310Q647 1310 477 1066Q320 842 320 572Q320 379 463 258Q600 144 802 144Q1045 144 1203 389Q1344 608 1344 881Q1344 1120 1237 1217Q1135 1310 892 1310zM682 1848Q813 1848 813 1743Q813 1713 769 1685Q729 1660 694 1660Q571 1660 571 1763Q571 1792 608 1820T682 1848zM1221 1856Q1255 1856 1290 1825T1325 1763Q1325 1671 1182 1671Q1141 1671 1109 1692Q1073 1716 1073 1755Q1073 1824 1118 1844Q1143 1856 1221 1856z"/>
+ <glyph unicode="ç" horiz-adv-x="1052" d="M770 -196Q770 -320 710 -382T528 -445Q443 -445 367 -413Q271 -371 271 -298Q271 -244 339 -244Q375 -244 420 -268T517 -293Q566 -292 590 -269T614 -201Q614 -153 577 -115T463 -48Q304 -12 208 104Q105 227 105 404Q105 607 240 823Q390 1063 578 1063Q676 1063 797 1017Q950 958 950 873Q950 835 925 806T863 776Q834 776 813 793T771 828Q712 875 578 875Q476 875 376 693Q285 526 285 404Q285 272 375 196Q459 125 591 125Q651 125 719 157L835 219Q865 235 878 235Q915 235 942 206T969 138Q969 35 713 -40Q742 -78 756 -117T770 -196z"/>
+ </font>
+ <script>
+ <![CDATA[
+ function init()
+ {
+ drawBBox("line1");
+ drawBBox("line2");
+ }
+
+ function mouseover(elm)
+ {
+ elm.setAttribute("fill", "green");
+ }
+
+ function mouseout(elm)
+ {
+ elm.removeAttribute("fill");
+ }
+
+ function drawBBox(id)
+ {
+ var elm = document.getElementById(id);
+ var bbox = elm.getBBox();
+ var bboxrect = document.createElementNS("http://www.w3.org/2000/svg", "rect");
+ bboxrect.setAttribute("x", bbox.x);
+ bboxrect.setAttribute("y", bbox.y);
+ bboxrect.setAttribute("width", bbox.width);
+ bboxrect.setAttribute("height", bbox.height);
+ bboxrect.setAttribute("fill-opacity", "0.1");
+ bboxrect.setAttribute("fill", "blue");
+ elm.parentNode.insertBefore(bboxrect, elm);
+ }
+ ]]></script>
+ </defs>
+
+ <text x="240" y="40" text-anchor="middle" font-size="20">Test pointer-events on text</text>
+ <g transform="translate(0, -10)" text-anchor="middle">
+ <text id="line1" dx="0 10 10 10 10 10" dy="-10 10 60 -10 10" x="240" y="100" onmouseover="mouseover(evt.target)" onmouseout="mouseout(evt.target)">@AyÖç</text>
+ <text id="line2" font-family="TestComicSVGFont" dx="0 10 10 10 10 10" dy="-10 10 60 -10 10" x="240" y="220" onmouseover="mouseover(evt.target)" onmouseout="mouseout(evt.target)">@AyÖç</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-07-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-07-t-isvalid.html
new file mode 100644
index 0000000000..0ee3f03d94
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-07-t-isvalid.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-pevents-07-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-pevents-07-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-pevents-07-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script><![CDATA[
+ function changeFill(id, fill)
+ {
+ document.getElementById(id).setAttribute("fill", fill);
+ }
+
+ function changePointerEvents(value)
+ {
+ if ('on' == value)
+ {
+ document.getElementById('all').setAttribute("visibility", 'visible');
+ document.getElementById('none').setAttribute("visibility", 'hidden');
+ document.getElementById('on').setAttribute("stroke-width", '3');
+ document.getElementById('off').setAttribute("stroke-width", '1');
+ document.getElementById('c10').setAttribute("pointer-events", 'all');
+ document.getElementById('c11').setAttribute("pointer-events", 'all');
+ document.getElementById('c12').setAttribute("pointer-events", 'all');
+ }
+ else
+ {
+ document.getElementById('all').setAttribute("visibility", 'hidden');
+ document.getElementById('none').setAttribute("visibility", 'visible');
+ document.getElementById('on').setAttribute("stroke-width", '1');
+ document.getElementById('off').setAttribute("stroke-width", '3');
+ document.getElementById('c10').setAttribute("pointer-events", 'none');
+ document.getElementById('c11').setAttribute("pointer-events", 'none');
+ document.getElementById('c12').setAttribute("pointer-events", 'none');
+ }
+
+ }
+ ]]></script>
+ <rect x="15" y="15" height="280" width="450" fill="none" stroke="black" stroke-width="0.25"/>
+ <g text-anchor="middle">
+ <text x="240" y="30" fill="black" font-size="15">Testing pointer-events and rendering order</text>
+ <text x="240" y="42" fill="#555" font-size="10">Rectangles should turn RED on mouseover </text>
+ <text x="240" y="54" fill="#555" font-size="10">Ovals should turn RED if Pointer-Events are set to "ALL"</text>
+ </g>
+ <g id="buttons">
+ <g text-anchor="middle" font-size="8" fill="#555" transform="translate(0,10)">
+ <text x="400" y="85">Change "Pointer-Events" of </text>
+ <text x="400" y="95">ovals from "ALL" to "NONE"</text>
+ <circle id="on" cx="385" cy="65" r="10" fill-opacity="1" fill="#3c5" stroke="black" stroke-width="3" onmousedown="changePointerEvents('on')" />
+ <circle id="off" cx="415" cy="65" r="10" fill-opacity="1" fill="#f35" stroke="black" onmousedown="changePointerEvents('off')" />
+ </g>
+ <g text-anchor="middle" font-size="12" fill="#555">
+ <text id="all" x="240" y="285" fill="#555" visibility="visible" >Purple ovals have "Pointer-Events" set to "ALL".</text>
+ <text id="none" x="240" y="285" fill="#555" visibility="hidden">Purple ovals have Pointer-Events set to "NONE".</text>
+ </g>
+ </g>
+ <g transform="scale(0.75, 0.5) translate(100, 85)">
+ <circle id="c10" cx="160" cy="350" r="100" fill-opacity="1" fill="#53f" stroke="black" pointer-events="all" onmouseover="changeFill('c10', '#F55')" onmouseout="changeFill('c10', '#53F')" />
+ <rect id="r10" x="10" y="50" width="300" height="300" fill-opacity="1" fill="#35f" stroke="black" onmouseover="changeFill('r10', '#F55')" onmouseout="changeFill('r10', '#35F')" />
+ <circle id="c11" cx="310" cy="350" r="90" fill-opacity="1" fill="#75f" stroke="black" pointer-events="all" onmouseover="changeFill('c11', '#F55')" onmouseout="changeFill('c11', '#75f')" />
+ <rect id="r11" x="60" y="100" width="200" height="200" fill-opacity="1" fill="#57f" stroke="black" onmouseover="changeFill('r11', '#F55')" onmouseout="changeFill('r11', '#57f')" />
+ <circle id="c12" cx="310" cy="200" r="75" fill-opacity="1" fill="#97f" stroke="black" pointer-events="all" onmouseover="changeFill('c12', '#F55')" onmouseout="changeFill('c12', '#97f')" />
+ <rect id="r12" x="110" y="150" width="100" height="100" fill-opacity="1" fill="#79f" stroke="black" onmouseover="changeFill('r12', '#F55')" onmouseout="changeFill('r12', '#79F')" />
+ <g id="dasharray-rectangles" stroke-width="0.5" stroke-dasharray="4, 4">
+ <rect id="r-dash10" x="10" y="50" width="300" height="300" fill-opacity="0" fill="none" stroke="black" pointer-events="none"/>
+ <rect id="r-dash11" x="60" y="100" width="200" height="200" fill-opacity="0" fill="none" stroke="black" pointer-events="none"/>
+ <rect id="r-dash12" x="110" y="150" width="100" height="100" fill-opacity="0" fill="none" stroke="black" pointer-events="none"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-08-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-08-f-isvalid.html
new file mode 100644
index 0000000000..42126ad1fd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-08-f-isvalid.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-pevents-08-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-pevents-08-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-pevents-08-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script><![CDATA[
+ function show(id)
+ {
+ document.getElementById(id).setAttribute("fill-opacity", "0.4");
+ }
+
+ function hide(id)
+ {
+ document.getElementById(id).setAttribute("fill-opacity", "0");
+ }
+ ]]></script>
+ <g text-anchor="middle">
+ <text id="display-title" x="240" y="25" fill="#555" font-size="12">
+ <tspan fill="black" font-size="10">Testing pointer-events</tspan> - pale RED rect should appear on mouseover.
+ </text>
+ <text id="comment-1" x="240" y="37" fill="#555" font-size="10">
+ 2nd and 3rd columns represent respectively rects with no fill/stroke and transparent fill/stroke
+ </text>
+ </g>
+ <g transform="translate(0, 5)">
+ <g transform="translate(25, 50)">
+ <rect id="m1" x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0"/>
+ <rect id="r10" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" onmouseover="show('m1')" onmouseout="hide('m1')"/>
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r11" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" onmouseover="show('m1')" onmouseout="hide('m1')"/>
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r12" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" onmouseover="show('m1')" onmouseout="hide('m1')"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r13" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden" onmouseover="show('m1')" onmouseout="hide('m1')"/>
+ <g font-size="12">
+ <text x="200" y="15">default : </text>
+ <text x="200" y="30" fill="#777">fill and stroke of rects 1 and 3 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 100)">
+ <rect id="m2" x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0"/>
+ <rect id="r20" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="visiblePainted" onmouseover="show('m2')" onmouseout="hide('m2')"/>
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r21" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="visiblePainted" onmouseover="show('m2')" onmouseout="hide('m2')"/>
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r22" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="visiblePainted" onmouseover="show('m2')" onmouseout="hide('m2')"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r23" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden" pointer-events="visiblePainted" onmouseover="show('m2')" onmouseout="hide('m2')"/>
+ <g font-size="12">
+ <text x="200" y="15">visiblePainted : </text>
+ <text x="200" y="30" fill="#777">fill and stroke of rects 1 and 3 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 150)">
+ <rect id="m3" x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0"/>
+ <rect id="r30" width="30" height="30" fill="blue" stroke-width="10" stroke="black" fill-opacity=".3" stroke-opacity=".3" pointer-events="visibleFill" onmouseover="show('m3')" onmouseout="hide('m3')"/>
+
+ <rect x="50" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r31" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="visibleFill" onmouseover="show('m3')" onmouseout="hide('m3')"/>
+
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r32" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="black" fill-opacity="0" stroke-opacity="0" pointer-events="visibleFill" onmouseover="show('m3')" onmouseout="hide('m3')"/>
+
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r33" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden" pointer-events="visibleFill" onmouseover="show('m3')" onmouseout="hide('m3')"/>
+ <g font-size="12">
+ <text x="200" y="15">visibleFill : </text>
+ <text x="200" y="30" fill="#777">only fill of rects 1, 2 and 3 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 200)">
+ <rect id="m4" x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0"/>
+ <rect id="r40" width="30" height="30" fill="black" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="visibleStroke" onmouseover="show('m4')" onmouseout="hide('m4')"/>
+
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r41" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="visibleStroke" onmouseover="show('m4')" onmouseout="hide('m4')"/>
+
+ <rect x="100" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r42" x="100" width="30" height="30" fill="black" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="visibleStroke" onmouseover="show('m4')" onmouseout="hide('m4')"/>
+
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r43" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden" pointer-events="visibleStroke" onmouseover="show('m4')" onmouseout="hide('m4')"/>
+ <g font-size="12">
+ <text x="200" y="15">visibleStroke : </text>
+ <text x="200" y="30" fill="#777">only stroke of rects 1, 2 and 3 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 250)">
+ <rect id="m5" x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0"/>
+ <rect id="r50" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="visible" onmouseover="show('m5')" onmouseout="hide('m5')"/>
+
+ <rect x="50" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r51" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="visible" onmouseover="show('m5')" onmouseout="hide('m5')"/>
+
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r52" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="visible" onmouseover="show('m5')" onmouseout="hide('m5')"/>
+
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r53" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden" pointer-events="visible" onmouseover="show('m5')" onmouseout="hide('m5')"/>
+ <g font-size="12">
+ <text x="200" y="15">visible : </text>
+ <text x="200" y="30" fill="#777">fill and stroke of rects 1, 2 and 3 must trigger</text>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-09-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-09-f-isvalid.html
new file mode 100644
index 0000000000..fb8d9a82ba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-09-f-isvalid.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-pevents-09-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-pevents-09-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-pevents-09-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script><![CDATA[
+ function show(id)
+ {
+ document.getElementById(id).setAttribute("fill-opacity", "0.4");
+ }
+
+ function hide(id)
+ {
+ document.getElementById(id).setAttribute("fill-opacity", "0");
+ }
+ ]]></script>
+ <g text-anchor="middle">
+ <text id="display-title" x="240" y="25" fill="#555" font-size="12">
+ <tspan fill="black" font-size="10">Testing pointer-events</tspan> - pale RED rect should appear on mouseover.
+ </text>
+ <text id="comment-1" x="240" y="37" fill="#555" font-size="10">
+ 2nd and 3rd columns represent respectively rects with no fill/stroke and transparent fill/stroke
+ </text>
+ </g>
+ <g transform="translate(0, 5)">
+ <g transform="translate(25, 50)">
+ <rect id="m1" x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0"/>
+ <rect id="r60" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="painted" onmouseover="show('m1')" onmouseout="hide('m1')"/>
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r61" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="painted" onmouseover="show('m1')" onmouseout="hide('m1')"/>
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r62" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="painted" onmouseover="show('m1')" onmouseout="hide('m1')"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r63" x="150" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" visibility="hidden" pointer-events="painted" onmouseover="show('m1')" onmouseout="hide('m1')"/>
+ <g font-size="12">
+ <text x="200" y="15">painted : </text>
+ <text x="200" y="30" fill="#777">fill and stroke of rects 1, 3 and 4 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 100)">
+ <rect id="m2" x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0"/>
+ <rect id="r70" width="30" height="30" fill="blue" stroke-width="10" stroke="black" fill-opacity=".3" stroke-opacity=".3" pointer-events="fill" onmouseover="show('m2')" onmouseout="hide('m2')"/>
+ <rect x="50" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r71" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="fill" onmouseover="show('m2')" onmouseout="hide('m2')"/>
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r72" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="black" fill-opacity="0" stroke-opacity="0" pointer-events="fill" onmouseover="show('m2')" onmouseout="hide('m2')"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r73" x="150" width="30" height="30" fill="blue" stroke-width="10" stroke="black" visibility="hidden" pointer-events="fill" onmouseover="show('m2')" onmouseout="hide('m2')"/>
+ <g font-size="12">
+ <text x="200" y="15">fill : </text>
+ <text x="200" y="30" fill="#777">fill of rects 1 to 4 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 150)">
+ <rect id="m3" x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0"/>
+ <rect id="r80" width="30" height="30" fill="black" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="stroke" onmouseover="show('m3')" onmouseout="hide('m3')"/>
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r81" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="stroke" onmouseover="show('m3')" onmouseout="hide('m3')"/>
+ <rect x="100" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r82" x="100" width="30" height="30" fill="black" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="stroke" onmouseover="show('m3')" onmouseout="hide('m3')"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r83" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="blue" visibility="hidden" pointer-events="stroke" onmouseover="show('m3')" onmouseout="hide('m3')"/>
+ <g font-size="12">
+ <text x="200" y="15">stroke : </text>
+ <text x="200" y="30" fill="#777">stroke of rects 1 to 4 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 200)">
+ <rect id="m4" x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0"/>
+ <rect id="r90" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity=".3" stroke-opacity=".3" pointer-events="all" onmouseover="show('m4')" onmouseout="hide('m4')"/>
+ <rect x="50" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r91" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="all" onmouseover="show('m4')" onmouseout="hide('m4')"/>
+ <rect x="100" width="30" height="30" fill="blue" fill-opacity="0.1" stroke-width="10" stroke="blue" stroke-opacity="0.1"/>
+ <rect id="r92" x="100" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" fill-opacity="0" stroke-opacity="0" pointer-events="all" onmouseover="show('m4')" onmouseout="hide('m4')"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="blue" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r93" x="150" width="30" height="30" fill="blue" stroke-width="10" stroke="blue" visibility="hidden" pointer-events="all" onmouseover="show('m4')" onmouseout="hide('m4')"/>
+ <g font-size="12">
+ <text x="200" y="15">all : </text>
+ <text x="200" y="30" fill="#777">stroke and fill of rects 1 to 4 must trigger</text>
+ </g>
+ </g>
+ <g transform="translate(25, 250)">
+ <rect id="m5" x="-10" y="-10" width="200" height="50" fill="red" fill-opacity="0"/>
+ <rect id="r00" width="30" height="30" fill="black" stroke-width="10" stroke="black" fill-opacity=".3" stroke-opacity=".3" pointer-events="none" onmouseover="show('m5')" onmouseout="hide('m5')"/>
+ <rect x="50" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r01" x="50" width="30" height="30" fill="none" stroke-width="10" stroke="none" fill-opacity=".3" stroke-opacity=".3" pointer-events="none" onmouseover="show('m5')" onmouseout="hide('m5')"/>
+ <rect x="100" width="30" height="30" fill="black" fill-opacity="0.1" stroke-width="10" stroke="black" stroke-opacity="0.1"/>
+ <rect id="r02" x="100" width="30" height="30" fill="black" stroke-width="10" stroke="black" fill-opacity="0" stroke-opacity="0" pointer-events="none" onmouseover="show('m5')" onmouseout="hide('m5')"/>
+ <rect x="145" y="-5" width="40" height="40" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect x="150" width="30" height="30" fill="none" stroke-width="1" stroke="black" stroke-dasharray="1,1"/>
+ <rect x="155" y="5" width="20" height="20" fill="none" stroke-width="1" stroke="black" stroke-dasharray="3,3" stroke-opacity=".5"/>
+ <rect id="r03" x="150" width="30" height="30" fill="black" stroke-width="10" stroke="black" visibility="hidden" pointer-events="none" onmouseover="show('m5')" onmouseout="hide('m5')"/>
+ <g font-size="12">
+ <text x="200" y="15">none : </text>
+ <text x="200" y="30" fill="#777">nothing is to trigger</text>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-10-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-10-f-isvalid.html
new file mode 100644
index 0000000000..553f1a3f44
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pevents-10-f-isvalid.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-pevents-10-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-pevents-10-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-pevents-10-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <circle cx="100" cy="200" r="50" />
+ <circle onclick="failTest()" display="none" cx="100" cy="200" r="50" />
+ <circle cx="250" cy="200" r="50" pointer-events="none" />
+ <g display="none">
+ <circle onclick="failTest()" cx="250" cy="200" r="50" />
+ </g>
+ <text id="failText" visibility="hidden" x="100" y="100" font-size="80" fill="red">FAIL</text>
+ <script><![CDATA[
+ try
+ {
+ function failTest()
+ {
+ var testElement = document.getElementById("failText");
+ testElement.setAttribute("visibility", "visible");
+ }
+ }
+ catch(ex)
+ {
+ //alert('ERROR: ' + ex.message);
+ }]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-pointer-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pointer-01-t-isvalid.html
new file mode 100644
index 0000000000..5b2da1f4c7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pointer-01-t-isvalid.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-pointer-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-pointer-01-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-pointer-01-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='40' font-size='18'>Test pointer events with zero opacity mask pixels</text>
+
+ <mask id='m' maskUnits='userSpaceOnUse' x='10' y='80' width='50' height='50'/>
+ <rect id='r' x='10' y='80' width='50' height='50' onmouseover='report(false)'/>
+ <rect x='10' y='80' width='50' height='50' mask='url(#m)' fill='red' onmouseover='report(true)'/>
+
+ <g id='g'>
+ <text id='t' x='10' y='150' font-size='13'>Move the pointing device over the rectangle.</text>
+ <text id='t2' x='10' y='166' font-size='13'>If it is red, you've already failed.</text>
+ </g>
+
+ <script>
+ function report(pass) {
+ document.getElementById('r').setAttribute('fill', pass ? 'green' : 'red');
+ document.getElementById('t').firstChild.nodeValue = pass ? "If the rectangle is green, you've passed! Otherwise, you've failed." : "You've failed.";
+ document.getElementById('g').removeChild(document.getElementById('t2'));
+ }
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-pointer-02-t-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pointer-02-t-novalid.html
new file mode 100644
index 0000000000..2a2724caf1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pointer-02-t-novalid.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-pointer-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-pointer-02-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-pointer-02-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='40' font-size='17'>Test pointer events with shapes that have clip paths</text>
+
+ <clipPath id='c' clipPathUnits='userSpaceOnUse' x='10' y='80' width='50' height='50'/>
+ <rect id='r' x='10' y='80' width='50' height='50' onmouseover='report(true)'/>
+ <rect x='10' y='80' width='50' height='50' clip-path='url(#c)' fill='red' onmouseover='report(false)'/>
+
+ <g id='g'>
+ <text id='t' x='10' y='150' font-size='13'>Move the pointing device over the rectangle.</text>
+ <text id='t2' x='10' y='166' font-size='13'>If it is red, you've already failed.</text>
+ </g>
+
+ <script>
+ function report(pass) {
+ document.getElementById('r').setAttribute('fill', pass ? 'green' : 'red');
+ document.getElementById('t').firstChild.nodeValue = pass ? "If the rectangle is green, you've passed! Otherwise, you've failed." : "You've failed.";
+ document.getElementById('g').removeChild(document.getElementById('t2'));
+ }
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-pointer-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pointer-03-t-isvalid.html
new file mode 100644
index 0000000000..36e1e46d54
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pointer-03-t-isvalid.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-pointer-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-pointer-03-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-pointer-03-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='40' font-size='12'>Test pointer-events="painted" with paint server fallback</text>
+
+ <rect id='r1' x='10' y='80' width='50' height='50' onmouseover='report(true)'/>
+ <rect id='r2' x='10' y='80' width='50' height='50' clip-path='url(#c)' fill='url(#invalid) none' pointer-events='painted' onmouseover='report(false)'/>
+
+ <g id='g'>
+ <text id='t' x='10' y='150' font-size='13'>Move the pointing device over the rectangle.</text>
+ </g>
+
+ <script>
+ function report(pass) {
+ var color = pass ? 'green' : 'red';
+ document.getElementById('r1').setAttribute('fill', color);
+ document.getElementById('t').firstChild.nodeValue = pass ? "You've passed!" : "You've failed.";
+ }
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-pointer-04-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pointer-04-f-isvalid.html
new file mode 100644
index 0000000000..8e9660b91a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-pointer-04-f-isvalid.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-pointer-04-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-pointer-04-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-pointer-04-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <mask id="normalMask">
+ <rect x="0" y="0" width="100" height="100" fill="#dddddd" />
+ </mask>
+ <rect x="0" y="0" width="100" height="100" fill="#aabbcc" mask="url(#normalMask)" onmouseover="test(this)" />
+ <rect id="passRect" x="200" y="0" width="100" height="100" fill="blue" />
+ <mask id="opacityMask" opacity="0">
+ <rect x="0" y="0" width="100" height="100" fill="black" />
+ </mask>
+ <rect x="200" y="0" width="100" height="100" fill="#dddddd" mask="url(#opacityMask)" onmouseover="testOpacity()" />
+ <script><![CDATA[
+ try
+ {
+ function test(testElement)
+ {
+ testElement.setAttribute("fill", "orange");
+ }
+
+ function testOpacity()
+ {
+ var passRect = document.getElementById("passRect");
+ passRect.setAttribute("fill", "orange");
+ }
+ }
+ catch(ex)
+ {
+ alert('ERROR: ' + ex.message);
+ }]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-zoom-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-zoom-01-t-isvalid.html
new file mode 100644
index 0000000000..a4cf8b4f61
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-zoom-01-t-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-zoom-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-zoom-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" zoomAndPan="magnify" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-zoom-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="6">
+ <text x="5" y="7" fill="black" font-family="Arial">Test default value of </text>
+ <text x="5" y="14" fill="black" font-family="Arial">zoomAndPan attribute.</text>
+ <g fill="black" stroke="blue" stroke-width="1">
+ <circle cx="20" cy="32" r="10"/>
+ <circle cx="30" cy="32" r="10"/>
+ <circle cx="60" cy="32" r="10"/>
+ <circle cx="50" cy="32" r="10"/>
+ <circle cx="40" cy="32" r="10"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-zoom-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-zoom-02-t-isvalid.html
new file mode 100644
index 0000000000..29d3fdfd97
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-zoom-02-t-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-zoom-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-zoom-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" zoomAndPan="magnify" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-zoom-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="6">
+ <text x="5" y="7" fill="black" font-family="Arial">Test "magnify" value of </text>
+ <text x="5" y="14" fill="black" font-family="Arial">zoomAndPan attribute.</text>
+ <g fill="black" stroke="blue" stroke-width="1">
+ <circle cx="20" cy="32" r="10"/>
+ <circle cx="30" cy="32" r="10"/>
+ <circle cx="60" cy="32" r="10"/>
+ <circle cx="50" cy="32" r="10"/>
+ <circle cx="40" cy="32" r="10"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/interact-zoom-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/interact-zoom-03-t-isvalid.html
new file mode 100644
index 0000000000..46f531a321
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/interact-zoom-03-t-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>interact-zoom-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: interact-zoom-03-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" zoomAndPan="disable" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: interact-zoom-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="6" transform="scale(6,6)">
+ <!-- Title -->
+ <text x="5" y="7" fill="black" font-family="Arial">Test "disable" value of </text>
+ <text x="5" y="14" fill="black" font-family="Arial">zoomAndPan attribute.</text>
+ <g fill="black" stroke="blue" stroke-width="1">
+ <circle cx="20" cy="32" r="10"/>
+ <circle cx="30" cy="32" r="10"/>
+ <circle cx="60" cy="32" r="10"/>
+ <circle cx="50" cy="32" r="10"/>
+ <circle cx="40" cy="32" r="10"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-01-b-isvalid.html
new file mode 100644
index 0000000000..af8c35bea1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-01-b-isvalid.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>linking-a-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: linking-a-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: linking-a-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(2)">
+ <a xlink:href="../images/linkingCircle-f.svg#circle-2">
+ <path fill="aqua" stroke="blue" d="M 185,40 h -100 v -12 l -45 36 l 45 36 v -12 h 100 z"/>
+ </a>
+ <!-- Code from target file, linkingCircle-f.svg...
+ <circle id="circle-2" cx="85" cy="153" r="20" stroke="lime" fill="yellow" stroke-width="4" />
+ <text font-family="Arial" font-size="12" x="65" y="189">circle-2</text>
+ <rect x="49" y="227" width="72" height="72" fill="none" stroke="black" />
+ -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-03-b-isvalid.html
new file mode 100644
index 0000000000..c548dd67ca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-03-b-isvalid.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>linking-a-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: linking-a-03-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: linking-a-03-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(2)">
+ <a xlink:href="../images/linkingCircle-f.svg#svgView(viewBox(64,227,72,72))">
+ <path fill="lime" stroke="blue" d="M 185,40 h -100 v -12 l -45 36 l 45 36 v -12 h 100 z"/>
+ </a>
+ <!-- Code from target file, linkingCircle-f.svg...
+ <circle id="circle-2" cx="85" cy="153" r="20" stroke="lime" fill="yellow" stroke-width="4" />
+ <text font-family="Arial" font-size="12" x="65" y="189">circle-2</text>
+ <rect x="49" y="227" width="72" height="72" fill="none" stroke="black" />
+ -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-04-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-04-t-isvalid.html
new file mode 100644
index 0000000000..04352e6cd9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-04-t-isvalid.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>linking-a-04-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: linking-a-04-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: linking-a-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="90" y="16" font-size="12">Basic out-bound links and the 'a' element.</text>
+ <!-- First linking test: link to another SVG file in same location. -->
+ <a xlink:href="../images/linkingToc-t.svg">
+ <path fill="yellow" stroke="blue" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
+ </a>
+ <!-- Second linking test: link to another object in this file. -->
+ <g transform="translate(0,90)">
+ <a xlink:href="#internal-circle">
+ <path fill="lime" stroke="blue" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
+ </a>
+ </g>
+ <!-- Third linking test: links to external, remote, non-SVG content (for -->
+ <!-- plugin viewers in browser environments.) -->
+ <g transform="translate(0,180)">
+ <a xlink:href="http://www.w3.org">
+ <path fill="aqua" stroke="blue" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
+ </a>
+ </g>
+ <!-- Link target of second test -->
+ <circle id="internal-circle" cx="390" cy="153" r="20" stroke="lime" fill="yellow" stroke-width="4"/>
+ <text x="350" y="189" font-size="10">id="internal-circle"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-05-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-05-t-isvalid.html
new file mode 100644
index 0000000000..3c0461e5a0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-05-t-isvalid.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>linking-a-05-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: linking-a-05-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: linking-a-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="90" y="16" font-size="12">Verify transform attributes in the 'a' element.</text>
+ <!-- First linking test: link to another SVG file in same location. -->
+ <path fill="rgb(128,128,0)" stroke="rgb(0,0,128)" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
+ <a xlink:href="../images/linkingToc-t.svg" transform="rotate(20,225,65)">
+ <path fill="yellow" stroke="blue" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
+ </a>
+ <text x="10" y="45" font-size="10">transform="rotate(20,225,65)</text>
+ <!-- Second linking test: link to another object in this file. -->
+ <g transform="translate(0,90)">
+ <path fill="rgb(0,128,0)" stroke="rgb(0,0,128)" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
+ <a xlink:href="#internal-circle" transform="skewX(-30)">
+ <path fill="lime" stroke="blue" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
+ </a>
+ <text x="10" y="45" font-size="10">transform="skewX(-30)</text>
+ </g>
+ <!-- Third linking test: links to external, remote, non-SVG content (for -->
+ <!-- plugin viewers in browser environments.) -->
+ <g transform="translate(0,180)">
+ <path fill="rgb(0,128,128)" stroke="rgb(0,0,128)" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
+ <a xlink:href="http://www.w3.org" transform="translate(-10,-20)">
+ <path fill="aqua" stroke="blue" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
+ </a>
+ <text x="10" y="45" font-size="10">transform="translate(-10,-20)</text>
+ </g>
+ <!-- Link target of second test -->
+ <circle id="internal-circle" cx="390" cy="153" r="20" stroke="lime" fill="yellow" stroke-width="4"/>
+ <text x="350" y="189" font-size="10">id="internal-circle"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-07-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-07-t-isvalid.html
new file mode 100644
index 0000000000..8b0288e695
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-07-t-isvalid.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>linking-a-07-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: linking-a-07-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: linking-a-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="90" y="16" font-size="12">xlink 'show' attribute on 'a' element.</text>
+ <g transform="translate(-120)">
+ <a xlink:href="../images/linkingToc-t.svg">
+ <path fill="yellow" stroke="blue" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
+ </a>
+ <g transform="translate(0,90)">
+ <a xlink:href="../images/linkingToc-t.svg" xlink:show="new">
+ <path fill="lime" stroke="blue" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
+ </a>
+ </g>
+ <g transform="translate(0,180)">
+ <a xlink:href="../images/linkingToc-t.svg" xlink:show="replace">
+ <path fill="aqua" stroke="blue" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
+ </a>
+ </g>
+ </g>
+ <g transform="translate(120)">
+ <a xlink:href="../images/linkingToc-t.svg" target="foo">
+ <path fill="yellow" stroke="red" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
+ </a>
+ <g transform="translate(0,90)">
+ <a xlink:href="../images/linkingToc-t.svg" xlink:show="new" target="foo">
+ <path fill="lime" stroke="red" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
+ </a>
+ </g>
+ <g transform="translate(0,180)">
+ <a xlink:href="../images/linkingToc-t.svg" xlink:show="replace" target="foo">
+ <path fill="aqua" stroke="red" d="M 165,40 h 100 v -12 l 45 36 l -45 36 v -12 h -100 z"/>
+ </a>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-08-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-08-t-isvalid.html
new file mode 100644
index 0000000000..a44ee88567
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-08-t-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>linking-a-08-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: linking-a-08-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: linking-a-08-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="20">
+ <text x="240" y="150" text-anchor="middle">
+ <a xlink:href="../images/linkingToc-t.svg">Link inside text</a>
+ </text>
+ <a xlink:href="../images/linkingToc-t.svg">
+ <text x="240" y="230" text-anchor="middle">Link around text</text>
+ </a>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-09-b-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-09-b-novalid.html
new file mode 100644
index 0000000000..703f79623c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-09-b-novalid.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>linking-a-09-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: linking-a-09-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: linking-a-09-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="20">
+ <text x="240" y="150" text-anchor="middle">
+ A <tspan color="green">
+ <a xlink:href="../images/linkingToc-t.svg">
+ link
+ inside tspan
+ </a> for testing
+ </tspan>
+ </text>
+ <text x="240" y="230" text-anchor="middle">
+ A <a xlink:href="../images/linkingToc-t.svg">
+ <tspan color="green">
+ link
+ around tspan
+ </tspan>
+ </a> for testing
+ </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-10-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-10-f-isvalid.html
new file mode 100644
index 0000000000..17a3a07ef2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/linking-a-10-f-isvalid.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>linking-a-10-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: linking-a-10-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: linking-a-10-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <a>
+ <rect x="360" width="100" height="100" fill="blue" />
+ <ellipse cx="120" cy="290" rx="25" ry="50" fill="blue" />
+ <line x1="380" y1="250" x2="320" y2="340" stroke-width="5" stroke="blue" />
+ <polygon fill="blue" points="0,0 0,100 100,100 100,0" />
+ <path d="M 280 250 L 250 350 L 310 330 z" fill="blue" />
+ <text x="10" y="320" font-size="100" fill="blue">X</text>
+ <image xlink:href="../images/blue_10x10.png" x="360" y="120" width="100" height="100" />
+ <g>
+ <rect x="240" y="120" width="100" height="100" fill="blue" />
+ </g>
+ <svg>
+ <rect y="120" width="100" height="100" fill="blue" />
+ </svg>
+ <defs>
+ <rect width="100" height="100" fill="blue" id="testRect" />
+ <linearGradient id="testGradient">
+ <stop offset="1" stop-color="blue" />
+ </linearGradient>
+ <symbol id="testSymbol">
+ <circle cx="40" cy="40" r="40" fill="blue" />
+ </symbol>
+ <marker id="testMarker">
+ <rect width="100" height="100" fill="blue" />
+ </marker>
+ <pattern id="testPattern" width="100" height="100" patternUnits="userSpaceOnUse" viewBox="0 0 100 100">
+ <rect width="100" height="100" fill="blue" />
+ </pattern>
+ </defs>
+ <use xlink:href="#testRect" x="120" />
+ <rect fill="url(#testGradient)" x="120" y="120" width="100" height="100" />
+ <use x="390" y="250" xlink:href="#testSymbol" />
+ <line x1="150" y1="260" x2="165" y2="260" stroke-width="25" marker-end="url(#testMarker)" />
+ <rect fill="url(#testPattern)" x="240" width="100" height="100" />
+ </a>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/linking-frag-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/linking-frag-01-f-isvalid.html
new file mode 100644
index 0000000000..f56810732f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/linking-frag-01-f-isvalid.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>linking-frag-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: linking-frag-01-f-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: linking-frag-01-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <a xlink:href="../images/linkingCircle-f.svg#svgView(viewBox(64,227,72,72))">
+ <path fill="lime" stroke="blue" d="M 185,40 h -100 v -12 l -45 36 l 45 36 v -12 h 100 z"/>
+ </a>
+ <g transform="translate(0,100)">
+ <a xlink:href="../images/linkingCircle-f.svg#svgView(viewBox(64,227,72,72);transform(translate(36,36)))">
+ <path fill="blue" stroke="blue" d="M 185,40 h -100 v -12 l -45 36 l 45 36 v -12 h 100 z"/>
+ </a>
+ </g>
+ <g transform="translate(0,200)">
+ <a xlink:href="../images/linkingCircle-f.svg#svgView(viewBox(64,227,72,72)%3Btransform(translate(36,36)))">
+ <path fill="purple" stroke="lime" d="M 185,40 h -100 v -12 l -45 36 l 45 36 v -12 h 100 z"/>
+ </a>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/linking-uri-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/linking-uri-01-b-isvalid.html
new file mode 100644
index 0000000000..0873b286d5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/linking-uri-01-b-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>linking-uri-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: linking-uri-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: linking-uri-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="65" y="16" font-size="12">Link test of the 'view' element and its attributes, 1 of 2, internal.</text>
+ <g font-size="14">
+ <g transform="translate(-150,75)">
+ <rect x="300" y="55" width="125" height="85" fill="#aaa"/>
+ <a xlink:href="#rect-view">
+ <text x="310" y="70" fill="purple">Go to Rectangle</text>
+ </a>
+ <a xlink:href="#ellipse-view">
+ <text x="310" y="90" fill="blue">Go to Ellipse</text>
+ </a>
+ <a xlink:href="#circle-view">
+ <text x="310" y="110" fill="yellow">Go to Circle</text>
+ </a>
+ <a xlink:href="#polygon-view">
+ <text x="310" y="130" fill="green">Go to Polygon</text>
+ </a>
+ <text x="315" y="152" font-size="12">Click element's line</text>
+ <text x="315" y="164" font-size="12">to link to its view</text>
+ </g>
+
+ <!-- View with no attributes. Picture should not change. -->
+ <view id="rect-view"/>
+ <rect id="rect-object" fill="purple" x="295" y="36" width="135" height="68"/>
+ <text id="rect-label" x="362.5" y="116" text-anchor="middle">Rectangle</text>
+ <rect x="292" y="29" width="141" height="91" fill="none" stroke="black"/>
+ <text x="362.5" y="132" font-size="10" text-anchor="middle">No view attributes except id.</text>
+ <!-- Test viewBox. Should blow-up the ellipse in the frame. -->
+ <view id="ellipse-view" viewBox="295 216 150 82"/>
+ <ellipse id="ellipse-object" fill="blue" cx="370" cy="251" rx="72" ry="32"/>
+ <text id="ellipse-label" x="370" y="295" text-anchor="middle">Ellipse</text>
+ <rect x="295" y="216" width="150" height="82" fill="none" stroke="black"/>
+ <text x="315" y="212" font-size="10">viewBox, should fill frame.</text>
+ <!-- Test preserveAspectRatio. -->
+ <view id="circle-view" viewBox="36 29 98 91" preserveAspectRatio="none"/>
+ <circle id="circle-object" fill="yellow" cx="85" cy="68" r="36"/>
+ <text id="circle-label" x="85" y="116" text-anchor="middle">Circle</text>
+ <rect x="36" y="29" width="98" height="91" fill="none" stroke="black"/>
+ <text x="85" y="130" font-size="10" text-anchor="middle">viewBox &amp; non-uniform</text>
+ <text x="85" y="139" font-size="10" text-anchor="middle">preserveAspectRatio</text>
+ <!-- Test viewTarget attribute, no change to the viewport. -->
+ <view id="polygon-view" viewTarget="polygon-object"/>
+ <polygon id="polygon-object" fill="green" points="87,211 134,238 116,283 57,283 39,238 87,211"/>
+ <text id="polygon-label" x="85" y="295" text-anchor="middle">Polygon</text>
+ <rect x="36" y="208" width="100" height="89" fill="none" stroke="black"/>
+ <text x="85" y="195" font-size="10" text-anchor="middle">viewTarget, no</text>
+ <text x="85" y="204" font-size="10" text-anchor="middle">changes to viewport</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.12 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/linking-uri-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/linking-uri-02-b-isvalid.html
new file mode 100644
index 0000000000..88f9962ec2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/linking-uri-02-b-isvalid.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>linking-uri-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: linking-uri-02-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: linking-uri-02-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="50" y="16" font-size="12">Link test of the 'view' element and its attributes, 2 of 2, external.</text>
+ <g font-size="14">
+ <g transform="translate(-150,75)">
+ <rect x="300" y="55" width="125" height="85" fill="#aaa"/>
+ <a xlink:href="../images/linking-uri-01-b.svg#rect-view">
+ <text x="310" y="70" fill="purple">Go to Rectangle</text>
+ </a>
+ <a xlink:href="../images/linking-uri-01-b.svg#ellipse-view">
+ <text x="310" y="90" fill="blue">Go to Ellipse</text>
+ </a>
+ <a xlink:href="../images/linking-uri-01-b.svg#circle-view">
+ <text x="310" y="110" fill="yellow">Go to Circle</text>
+ </a>
+ <a xlink:href="../images/linking-uri-01-b.svg#polygon-view">
+ <text x="310" y="130" fill="green">Go to Polygon</text>
+ </a>
+ <text x="310" y="150" font-size="12">Click element's line</text>
+ <text x="310" y="162" font-size="12">to link to its view in</text>
+ <text x="310" y="174" font-size="12">linking-uri-01-b.</text>
+ </g>
+
+ <!-- In linking-uri-01-b, there is the following 'view' element. -->
+ <!-- View with no attributes. Picture should not change. -->
+ <!-- <view id="rect-view" /> -->
+ <rect id="rect-object" fill="purple" x="295" y="36" width="135" height="68"/>
+ <text id="rect-label" x="362.5" y="116" text-anchor="middle">Rectangle</text>
+ <rect x="292" y="29" width="141" height="91" fill="none" stroke="black"/>
+ <text x="362.5" y="132" font-size="10" text-anchor="middle">No view attributes except id.</text>
+ <!-- In linking-uri-01-b, there is the following 'view' element. -->
+ <!-- Test viewBox. Should blow-up the ellipse in the frame. -->
+ <!-- <view id="ellipse-view" viewBox="295 216 150 82"/> -->
+ <ellipse id="ellipse-object" fill="blue" cx="370" cy="251" rx="72" ry="32"/>
+ <text id="ellipse-label" x="370" y="295" text-anchor="middle">Ellipse</text>
+ <rect x="295" y="216" width="150" height="82" fill="none" stroke="black"/>
+ <text x="370" y="212" font-size="10" text-anchor="middle">viewBox, should fill frame.</text>
+ <!-- In linking-uri-01-b, there is the following 'view' element. -->
+ <!-- Test preserveAspectRatio. -->
+ <!-- <view id="circle-view" viewBox="20 29 128 91.5" preserveAspectRatio="none"/> -->
+ <circle id="circle-object" fill="yellow" cx="85" cy="68" r="36"/>
+ <text id="circle-label" x="85" y="116" text-anchor="middle">Circle</text>
+ <rect x="36" y="29" width="98" height="91" fill="none" stroke="black"/>
+ <text x="85" y="130" font-size="10" text-anchor="middle">viewBox &amp; non-uniform</text>
+ <text x="85" y="139" font-size="10" text-anchor="middle">preserveAspectRatio</text>
+ <!-- In linking-uri-01-b, there is the following 'view' element. -->
+ <!-- Test viewTarget attribute, no change to the viewport. -->
+ <!-- <view id="polygon-view" viewTarget="polygon-object" /> -->
+ <polygon id="polygon-object" fill="green" points="87,211 134,238 116,283 57,283 39,238 87,211"/>
+ <text id="polygon-label" x="85" y="295" text-anchor="middle">Polygon</text>
+ <rect x="36" y="208" width="100" height="89" fill="none" stroke="black"/>
+ <text x="85" y="195" font-size="10" text-anchor="middle">viewTarget, no</text>
+ <text x="85" y="204" font-size="10" text-anchor="middle">changes to viewport</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/linking-uri-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/linking-uri-03-t-isvalid.html
new file mode 100644
index 0000000000..778fa719d3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/linking-uri-03-t-isvalid.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>linking-uri-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: linking-uri-03-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: linking-uri-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="75" y="16" font-size="12">Simple exercise of xlink attributes on the 'a' element.</text>
+ <a xlink:type="simple" xlink:show="replace" xlink:actuate="onRequest" xlink:href="../images/linkingToc-t.svg" xlink:role="figure-out-a-role-value-and-associated-xmlns" xlink:title="TOC of Linking BE tests." target="_self">
+ <path d="M 135 122 l 130 0 l -65 130 z" fill="lime" stroke="blue"/>
+ </a>
+ <text x="160" y="116" font-size="12">Click for TOC</text>
+ <text x="25" y="172" font-size="12">Link to local file</text>
+ <text x="25" y="182" font-size="12">linkingToc-t.svg.</text>
+ <rect x="19" y="160" width="100" height="26" fill="none" stroke="black"/>
+ <text x="275" y="144" font-size="10">xlink:type="simple"</text>
+ <text x="275" y="155" font-size="10">xlink:show="replace"</text>
+ <text x="275" y="166" font-size="10">xlink:actuate="onRequest"</text>
+ <text x="275" y="177" font-size="10">xlink:href="linkingToc-t.svg"</text>
+ <text x="275" y="188" font-size="10">xlink:role="figure-out-a-role"</text>
+ <text x="275" y="199" font-size="10">xlink:title="TOC of Linking BE tests."</text>
+ <text x="275" y="210" font-size="10">target="_self"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-filter-01-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-filter-01-f-novalid.html
new file mode 100644
index 0000000000..1c143f955f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-filter-01-f-novalid.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-filter-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-filter-01-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-filter-01-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g shape-rendering="geometricPrecision">
+ <text font-size="18" x="10" y="35">Testing 'filter' applied to 'mask'</text>
+
+ <defs>
+ <filter id="f" x="0" y="0" width="200" height="200"
+ filterUnits="userSpaceOnUse" filterPrimitiveUnits="userSpaceOnUse">
+ <feOffset dx="100" dy="100"/>
+ </filter>
+ <mask id="m" x="0" y="0" width="200" height="200"
+ maskUnits="userSpaceOnUse" maskContentUnits="userSpaceOnUse"
+ filter="url(#f)">
+ <rect width="100" height="100" fill="white"/>
+ </mask>
+ </defs>
+
+ <g mask="url(#m)" transform="translate(10,50)">
+ <rect width="100" height="100" fill="green"/>
+ <rect x="101" y="101" width="99" height="99" fill="red"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-intro-01-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-intro-01-f-novalid.html
new file mode 100644
index 0000000000..51834cd161
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-intro-01-f-novalid.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-intro-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-intro-01-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-intro-01-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g shape-rendering="geometricPrecision">
+ <title id="test-title">masking-mask-04-f.svg</title>
+ <desc id="test-desc">Tests the impact of strokes within clipPath and mask</desc>
+ <text font-size="18" x="240" y="35" text-anchor="middle">Testing stroke inclusion for 'clip-path' and 'mask'</text>
+
+ <defs>
+ <clipPath id="one" clipPathUnits="objectBoundingBox">
+ <circle cx="0.3" cy="0.5" r="0.2" stroke-width="0.15" fill="none" stroke="red"/>
+ <circle cx="0.7" cy="0.5" r="0.2" stroke-width="0.15" fill="none" stroke="none"/>
+ </clipPath>
+ </defs>
+
+ <rect x="150" y="0" width="200" height="200" fill="darkblue" clip-path="url(#one)"/>
+ <text x="50" y="110">With a 'clip-path':</text>
+
+ <defs>
+ <mask id="two" maskUnits="objectBoundingBox" maskContentUnits="objectBoundingBox" color-interpolation="linearRGB">
+ <circle cx="0.3" cy="0.5" r="0.2" stroke-width="0.15" fill="blue" stroke="red"/>
+ <circle cx="0.7" cy="0.5" r="0.2" stroke-width="0.15" fill="blue" stroke="none"/>
+ </mask>
+ </defs>
+
+ <rect x="150" y="150" width="200" height="200" fill="darkblue" mask="url(#two)"/>
+ <text x="50" y="260">With a 'mask':</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-mask-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-mask-01-b-isvalid.html
new file mode 100644
index 0000000000..d23f6a1b85
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-mask-01-b-isvalid.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-mask-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-mask-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-mask-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <style>
+ @font-face {
+ font-family: larabie-anglepoise;
+ src: url(woffs/anglepoi.woff) format("woff");
+ }
+ </style>
+ <defs>
+ <font horiz-adv-x="313">
+ <!-- Converted from Larabie Anglepoise by Batik ttf2svg -->
+ <font-face font-family="larabie-anglepoise" units-per-em="1000" panose-1="0 0 4 0 0 0 0 0 0 0" ascent="703" descent="-300" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="500" d="M63 0V700H438V0H63ZM125 63H375V638H125V63Z"/>
+ <glyph unicode="S" glyph-name="S" horiz-adv-x="385" d="M371 1H29V144H264Q264 151 264 166Q265 180 265 188Q265 212 249 212H132Q83 212 55 247Q29 279 29 329V566H335V422H136V375Q136 360 144 356Q148 355 168 355H279Q327 355 352 309Q371 273 371 221V1Z"/>
+ <glyph unicode="V" glyph-name="V" horiz-adv-x="351" d="M365 563L183 -33L0 563H101L183 296L270 563H365Z"/>
+ <glyph unicode="G" glyph-name="G" horiz-adv-x="367" d="M355 1H18V564H355V420H125V144H248V211H156V355H355V1Z"/>
+ <hkern g1="V" g2="G" k="-40"/>
+ </font>
+ </defs>
+ <g font-family="SVGFreeSansASCII,sans-serif">
+ <text font-size="14" x="10" y="20">Test for mask support</text>
+ <!-- Draw a red rectangle in the background -->
+ <rect x="10" y="30" width="100" height="260" fill="red"/>
+ <!-- Apply a gradient ramp based opacity -->
+ <mask id="mask1" maskUnits="userSpaceOnUse" x="60" y="50" width="100" height="60" color-interpolation="linearRGB">
+ <defs>
+ <linearGradient gradientUnits="userSpaceOnUse" id="Grad1" x1="60" y1="50" x2="60" y2="120">
+ <stop stop-color="white" stop-opacity="1" offset="0"/>
+ <stop stop-color="white" stop-opacity="0.5" offset="1"/>
+ </linearGradient>
+ </defs>
+ <rect x="60" y="50" width="100" height="60" fill="url(#Grad1)"/>
+ </mask>
+ <rect x="60" y="50" width="100" height="60" fill="lime" mask="url(#mask1)"/>
+ <text font-size="12" x="200" y="65">Mask with linear gradient from</text>
+ <text font-size="12" x="200" y="80">opacity=1 to opactity=0.5</text>
+ <!-- Simulate a uniform opacity using a mask -->
+ <mask id="mask2" maskUnits="userSpaceOnUse" x="60" y="120" width="100" height="30" color-interpolation="linearRGB">
+ <rect x="60" y="120" width="100" height="30" fill-opacity="0.5" fill="white"/>
+ </mask>
+ <rect x="60" y="120" width="100" height="30" fill="lime" mask="url(#mask2)"/>
+ <text font-size="12" x="200" y="135">Mask with uniform opacity of 0.5</text>
+ <!-- Apply a uniform opacity -->
+ <rect x="60" y="160" width="100" height="30" fill="lime" fill-opacity="0.5"/>
+ <text font-size="12" x="200" y="175">Rectangle with uniform opacity of 0.5</text>
+ <!-- Apply a mask to text -->
+ <mask id="mask3" maskUnits="userSpaceOnUse" x="60" y="200" width="200" height="100" color-interpolation="linearRGB">
+ <rect x="60" y="200" width="200" height="25" fill="white" fill-opacity="0.5"/>
+ <rect x="60" y="225" width="200" height="25" fill="white" fill-opacity="0.2"/>
+ <rect x="60" y="250" width="200" height="25" fill="white" fill-opacity="1"/>
+ <rect x="60" y="275" width="200" height="25" fill="white" fill-opacity="0.7"/>
+ </mask>
+ <text x="60" y="280" font-family="larabie-anglepoise" font-size="110" fill="lime" mask="url(#mask3)">SVG</text>
+ <text font-size="12" x="200" y="225">Text with mask containing rectangles</text>
+ <text font-size="12" x="200" y="240">of various opacities</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-mask-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-mask-02-f-isvalid.html
new file mode 100644
index 0000000000..930e9a9152
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-mask-02-f-isvalid.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-mask-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-mask-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-mask-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <mask id="testMask" />
+ <rect x="100" y="100" width="250" height="150" fill="green" />
+ <rect x="100" y="100" width="250" height="150" fill="red" mask="url(#testMask)" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-opacity-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-opacity-01-b-isvalid.html
new file mode 100644
index 0000000000..be156f600e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-opacity-01-b-isvalid.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-opacity-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-opacity-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-opacity-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="24" x="50" y="27">Test for opacity property on a group.</text>
+ <rect x="10" y="30" width="100" height="260" fill="red"/>
+ <g opacity="1">
+ <rect x="60" y="50" width="80" height="40" fill="blue"/>
+ <rect x="70" y="60" width="80" height="40" fill="lime"/>
+ </g>
+ <text font-size="20" x="200" y="62">Group opacity: 1</text>
+ <text font-size="20" x="200" y="80">Blue rectangle opacity: 1</text>
+ <text font-size="20" x="200" y="98">Green rectangle opacity: 1</text>
+ <g opacity="0.5">
+ <rect x="60" y="110" width="80" height="40" fill="blue"/>
+ <rect x="70" y="120" width="80" height="40" fill="lime"/>
+ </g>
+ <text font-size="20" x="200" y="122">Group opacity: 0.5</text>
+ <text font-size="20" x="200" y="140">Blue rectangle opacity: 1</text>
+ <text font-size="20" x="200" y="158">Green rectangle opacity: 1</text>
+ <g opacity="1">
+ <rect x="60" y="170" width="80" height="40" fill="blue" opacity=".5"/>
+ <rect x="70" y="180" width="80" height="40" fill="lime" opacity=".5"/>
+ </g>
+ <text font-size="20" x="200" y="182">Group opacity: 1</text>
+ <text font-size="20" x="200" y="200">Blue rectangle opacity: 0.5</text>
+ <text font-size="20" x="200" y="218">Green rectangle opacity: 0.5</text>
+ <g opacity="0.5">
+ <rect x="60" y="230" width="80" height="40" fill="blue" opacity=".5"/>
+ <rect x="70" y="240" width="80" height="40" fill="lime" opacity=".5"/>
+ </g>
+ <text font-size="20" x="200" y="242">Group opacity: 0.5</text>
+ <text font-size="20" x="200" y="260">Blue rectangle opacity: 0.5</text>
+ <text font-size="20" x="200" y="278">Green rectangle opacity: 0.5</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-01-b-isvalid.html
new file mode 100644
index 0000000000..c8a675c9f4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-01-b-isvalid.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-path-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-path-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-path-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g shape-rendering="geometricPrecision">
+ <!--text font-size="14" x="10" y="20">Test for clipping using clipPath element</text-->
+ <defs>
+ <clipPath id="clip1">
+ <rect x="200" y="10" width="60" height="100"/>
+ </clipPath>
+ <clipPath id="clip2">
+ <rect x="90" y="150" width="175" height="100"/>
+ <rect x="225" y="160" width="95" height="75"/>
+ </clipPath>
+ </defs>
+ <rect x="20" y="20" width="440" height="60" fill="orange" stroke="black" stroke-width="5" clip-path="url(#clip1)"/>
+ <text font-size="30" x="20" y="130">Rectangle being clipped</text>
+ <g clip-path="url(#clip2)">
+ <rect x="115" y="190" width="225" height="40" fill="aqua" stroke="blue" stroke-width="5"/>
+ <rect x="115" y="240" width="225" height="40" fill="lime" stroke="green" stroke-width="5"/>
+ <text font-size="30" x="115" y="180">Line of text to be clipped</text>
+ </g>
+ <text font-size="30" x="20" y="280">Group being clipped</text>
+ <!-- show the two rects and the overlap area -->
+ <g fill="none" stroke="#999" stroke-width="2">
+ <rect x="90" y="150" width="175" height="100"/>
+ <rect x="225" y="160" width="95" height="75"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-02-b-isvalid.html
new file mode 100644
index 0000000000..9110dacef2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-02-b-isvalid.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-path-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-path-02-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-path-02-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g shape-rendering="geometricPrecision">
+ <clipPath id="clip1" clipPathUnits="objectBoundingBox">
+ <rect x=".25" y=".5" width=".6" height="1"/>
+ </clipPath>
+ <rect x="10" y="10" width="430" height="80" fill="#F08" clip-path="url(#clip1)"/>
+ <rect x="117" y="50" width="258" height="40" fill="none" stroke="black" stroke-width="4"/>
+ <text font-size="30" x="20" y="130">clipPathUnits=objectBoundingBox</text>
+ <clipPath id="clip2" clipPathUnits="userSpaceOnUse">
+ <rect x="60" y="60" width="80" height="80"/>
+ </clipPath>
+ <rect transform="translate(100 200) rotate(-45)" x="0" y="0" width="120" height="120" fill="blue" clip-path="url(#clip2)"/>
+ <rect transform="translate(100 200) rotate(-45)" x="60" y="60" width="60" height="60" fill="none" stroke="black" stroke-width="4"/>
+ <text font-size="30" x="20" y="280">clipPathUnits=userSpaceOnUse</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-03-b-isvalid.html
new file mode 100644
index 0000000000..55033509f7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-03-b-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-path-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-path-03-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-path-03-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g shape-rendering="geometricPrecision">
+ <!--text font-size="18" text-anchor="middle" x="240" y="70">Test 'overflow'/'clip' on outermost and inner 'svg' elements</text-->
+ <text font-size="18" x="10" y="70">Test 'overflow'/'clip' on outermost and inner 'svg' elements</text>
+ <!-- Test initial value for 'overflow' property (i.e., hidden)
+ on outermost 'svg' -->
+ <g font-size="48" stroke-width="2">
+ <g transform="translate(115,-20)">
+ <rect width="250" height="60" fill="#ccccff" stroke="#ff8888"/>
+ <text x="15" y="45">Outer Clip</text>
+ </g>
+ <g transform="translate(-175,150)">
+ <rect width="250" height="60" fill="#ccccff" stroke="#ff8888"/>
+ <text x="15" y="45">Outer Clip</text>
+ </g>
+ <g transform="translate(405,150)">
+ <rect width="250" height="60" fill="#ccccff" stroke="#ff8888"/>
+ <text x="15" y="45">Outer Clip</text>
+ </g>
+ <g transform="translate(115,330)">
+ <rect width="250" height="60" fill="#ccccff" stroke="#ff8888"/>
+ <text x="15" y="45">Outer Clip</text>
+ </g>
+ </g>
+ <!-- Test initial value for 'overflow' property (i.e., hidden)
+ on inner 'svg' -->
+ <rect x="115" y="100" width="250" height="160" fill="none" stroke="#006600" stroke-width="5"/>
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="115" y="100" width="250" height="160">
+ <g font-size="32" stroke-width="2">
+ <g transform="translate(50,-15)">
+ <rect width="150" height="35" fill="#ffaaaa" stroke="#6666ff"/>
+ <text x="6" y="26">Inner Clip</text>
+ </g>
+ <g transform="translate(-50,62.5)">
+ <rect width="150" height="35" fill="#ffaaaa" stroke="#6666ff"/>
+ <text x="6" y="26">Inner Clip</text>
+ </g>
+ <g transform="translate(150,62.5)">
+ <rect width="150" height="35" fill="#ffaaaa" stroke="#6666ff"/>
+ <text x="6" y="26">Inner Clip</text>
+ </g>
+ <g transform="translate(50,140)">
+ <rect width="150" height="35" fill="#ffaaaa" stroke="#6666ff"/>
+ <text x="6" y="26">Inner Clip</text>
+ </g>
+ </g>
+ </svg>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-04-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-04-b-isvalid.html
new file mode 100644
index 0000000000..ed4bd15a70
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-04-b-isvalid.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-path-04-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-path-04-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-path-04-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g shape-rendering="geometricPrecision">
+ <defs>
+ <clipPath id="sample" clipPathUnits="userSpaceOnUse">
+ <text x="45" y="270" font-size="100" font-family="Impact">Clip Test</text>
+ </clipPath>
+ </defs>
+
+ <g>
+ <image xlink:href="../images/bluesquidj.png" preserveAspectRatio="none" x="30" y="20" width="410" height="140"/>
+ <text x="55" y="130" font-size="100" font-family="Impact" fill="yellow">Clip Test</text>
+ </g>
+ <g>
+ <image xlink:href="../images/bluesquidj.png" preserveAspectRatio="none" x="20" y="170" width="410" height="160" clip-path="url(#sample)"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-05-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-05-f-isvalid.html
new file mode 100644
index 0000000000..f792a39f03
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-05-f-isvalid.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-path-05-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-path-05-f-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-path-05-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g shape-rendering="geometricPrecision">
+ <text font-size="14" x="150" y="20">Test for clip-rule property.</text>
+ <clipPath id="clip1">
+ <path clip-rule="evenodd" d="M200,40l20,0 0,60 20,0 0,-20 -60,0 0,-20 80,0 0,60 -60,0 0,-80z"/>
+ </clipPath>
+ <rect x="50" y="30" width="350" height="100" fill="red" clip-path="url(#clip1)"/>
+ <text font-size="12" x="100" y="140">clip-rule=evenodd</text>
+ <clipPath id="clip2">
+ <path clip-rule="nonzero" d="M200,170l20,0 0,60 20,0 0,-20 -60,0 0,-20 80,0 0,60 -60,0 0,-80z"/>
+ </clipPath>
+ <rect x="50" y="160" width="350" height="100" fill="blue" clip-path="url(#clip2)"/>
+ <text font-size="12" x="100" y="270">cliprule=nonzero</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-06-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-06-b-isvalid.html
new file mode 100644
index 0000000000..d71f8d5423
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-06-b-isvalid.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-path-06-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-path-06-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-path-06-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g shape-rendering="geometricPrecision">
+ <text font-size="20" x="240" y="30" text-anchor="middle">'clip' property on images</text>
+
+ <image x="35" y="45" width="200" height="120" overflow="hidden" clip="rect(10,10,10,10)" xlink:href="../images/plant.jpg" preserveAspectRatio="none"/>
+ <rect x="35" y="45" width="200" height="120" fill="none" stroke="blue"/>
+ <rect x="45" y="55" width="180" height="100" fill="none" stroke="red"/>
+ <text font-size="25" x="245" y="110">&lt;-- raster image</text>
+
+ <image x="245" y="180" width="200" height="120" overflow="hidden" clip="rect(10,10,10,10)" xlink:href="../images/SVGImageTest.svg" preserveAspectRatio="none"/>
+ <rect x="245" y="180" width="200" height="120" fill="none" stroke="blue"/>
+ <rect x="255" y="190" width="180" height="100" fill="none" stroke="red"/>
+ <text font-size="25" x="70" y="250">SVG image --&gt;</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-07-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-07-b-isvalid.html
new file mode 100644
index 0000000000..0412497f07
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-07-b-isvalid.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-path-07-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-path-07-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-path-07-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <clipPath id="clipCircle1">
+ <circle id="c1" cx="100" cy="100" r="50"/>
+ </clipPath>
+
+ <clipPath id="clipCircle2">
+ <circle id="c2" cx="150" cy="150" r="50"/>
+ </clipPath>
+
+ <clipPath id="clipPath1">
+ <path id="p1" d="M10 10l100 0 0 100 -100 0ZM50 50l40 0 0 40 -40 0Z" clip-rule="evenodd"/>
+ </clipPath>
+
+ <!-- "If a valid 'clip-path' reference is placed on one of the children of a 'clipPath' element,
+ then the given child element is clipped by the referenced clipping path before OR'ing the
+ silhouette of the child element with the silhouettes of the other child elements." -->
+ <clipPath id="clipRects1">
+ <rect x="50" y="30" width="25" height="100"/>
+ <rect x="25" y="50" width="10" height="10" clip-path="url(#clipTwoCircles)"/>
+ </clipPath>
+
+ <!-- Test use in a clipPath -->
+ <clipPath id="clipTwoCircles">
+ <use xlink:href="#c1"/>
+ <use xlink:href="#c2"/>
+ </clipPath>
+
+ <clipPath id="clipInClip1">
+ <use xlink:href="#c2" clip-path="url(#clipCircle1)"/>
+ <use xlink:href="#p1"/>
+ </clipPath>
+
+ <clipPath id="clipOnClip1" clip-path="url(#clipCircle1)">
+ <use xlink:href="#c2"/>
+ <use xlink:href="#p1"/>
+ </clipPath>
+
+ <pattern patternUnits="userSpaceOnUse" id="pattern" x="0" y="0" width="20" height="20">
+ <rect x="0" y="0" width="10" height="10" fill="gray"/>
+ <rect x="10" y="10" width="10" height="10" fill="gray"/>
+ </pattern>
+ </defs>
+
+ <rect x="20" y="70" width="210" height="210" fill="url(#pattern)" stroke="black" stroke-width="4"/>
+ <rect x="250" y="70" width="210" height="210" fill="url(#pattern)" stroke="black" stroke-width="4"/>
+
+ <text x="240" y="2em" text-anchor="middle">Test clip unions and intersections</text>
+
+ <g transform="translate(20, 70)">
+ <g id="subtest1">
+ <use xlink:href="#p1" fill="red" fill-rule="evenodd"/>
+ <use xlink:href="#c2" fill="red" clip-path="url(#clipCircle1)"/>
+ <use xlink:href="#c1" fill="red" clip-path="url(#clipCircle2)"/>
+
+ <rect width="200" height="200" fill="blue" clip-path="url(#clipInClip1)"/>
+
+ <use xlink:href="#c2" fill="none" clip-path="url(#clipCircle1)" stroke="black"/>
+ <use xlink:href="#c1" fill="none" clip-path="url(#clipCircle2)" stroke="black"/>
+ <use xlink:href="#p1" fill="none" stroke="black"/>
+ </g>
+
+ <g id="subtest2" transform="translate(230,0)">
+ <g clip-path="url(#clipCircle1)">
+ <use xlink:href="#c2" fill="red"/>
+ <use xlink:href="#p1" fill="red" fill-rule="evenodd"/>
+ </g>
+
+ <rect width="300" height="300" fill="blue" clip-path="url(#clipOnClip1)"/>
+
+ <use xlink:href="#c1" fill="none" stroke="black"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.11 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-08-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-08-b-isvalid.html
new file mode 100644
index 0000000000..05816c0d37
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-08-b-isvalid.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-path-08-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-path-08-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-path-08-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <clipPath id="emptyclip">
+ </clipPath>
+ <clipPath id="hiddenclip">
+ <rect width="100" height="100" visibility="hidden"/>
+ </clipPath>
+ <clipPath id="displayclip">
+ <rect width="100" height="100" display="none"/>
+ </clipPath>
+ <clipPath id="opacityclip">
+ <rect width="100" height="100" opacity="0"/>
+ </clipPath>
+ <clipPath id="strokefillclip">
+ <rect width="100" height="100" stroke="none" fill="none"/>
+ </clipPath>
+ <clipPath id="strokewidthclip">
+ <rect x="40" y="40" width="20" height="20" stroke="black" stroke-width="80"/>
+ </clipPath>
+ <clipPath id="strokeopacityclip">
+ <rect x="40" y="40" width="20" height="20" stroke="black" stroke-opacity="0" stroke-width="80"/>
+ </clipPath>
+ <clipPath id="fillopacityclip">
+ <rect width="100" height="100" fill-opacity="0"/>
+ </clipPath>
+ </defs>
+
+ <text x="240" y="50" text-anchor="middle">Establishing a new clipping path</text>
+
+ <g transform="scale(0.5) translate(320 200)">
+ <rect width="100" height="100" fill="lime"/>
+ <rect width="100" height="100" fill="red" clip-path="url(#emptyclip)"/>
+
+ <g transform="translate(110 0)">
+ <rect width="100" height="100" fill="lime"/>
+ <rect width="100" height="100" fill="red" clip-path="url(#hiddenclip)"/>
+ </g>
+
+ <g transform="translate(220 0)">
+ <rect width="100" height="100" fill="lime"/>
+ <rect width="100" height="100" fill="red" clip-path="url(#displayclip)"/>
+ </g>
+
+ <!-- This has an intentionally broken clip-path url -->
+ <g transform="translate(0 110)">
+ <rect x="0.5" y="0.5" width="99" height="99" fill="red"/>
+ <rect width="100" height="100" fill="lime" clip-path="url(#unknown)"/>
+ </g>
+
+ <g transform="translate(110 110)">
+ <rect x="0.5" y="0.5" width="99" height="99" fill="red"/>
+ <rect width="100" height="100" fill="lime" clip-path="url(#opacityclip)"/>
+ </g>
+
+ <g transform="translate(220 110)">
+ <rect x="0.5" y="0.5" width="99" height="99" fill="red"/>
+ <rect width="100" height="100" fill="lime" clip-path="url(#strokefillclip)"/>
+ </g>
+
+ <g transform="translate(0 220)">
+ <rect width="100" height="100" fill="lime"/>
+ <rect width="100" height="100" fill="red" clip-path="url(#strokewidthclip)"/>
+ <rect x="39" y="39" width="22" height="22" fill="lime"/>
+ </g>
+
+ <g transform="translate(110 220)">
+ <rect width="100" height="100" fill="lime"/>
+ <rect width="100" height="100" fill="red" clip-path="url(#strokeopacityclip)"/>
+ <rect x="39" y="39" width="22" height="22" fill="lime"/>
+ </g>
+
+ <g transform="translate(220 220)">
+ <rect x="0.5" y="0.5" width="99" height="99" fill="red"/>
+ <rect width="100" height="100" fill="lime" clip-path="url(#fillopacityclip)"/>
+ </g>
+
+ <rect width="320" height="320" fill="none" stroke="black"/>
+ </g>
+
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-09-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-09-b-isvalid.html
new file mode 100644
index 0000000000..d6f4437447
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-09-b-isvalid.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-path-09-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-path-09-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-path-09-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='40' font-size='13'>Test bounding box calculations with clip paths</text>
+
+ <clipPath id='c' clipPathUnits='userSpaceOnUse'>
+ <rect x='10' y='50' width='50' height='50'/>
+ </clipPath>
+
+ <g id='g' clip-path='url(#c)' fill='red'>
+ <rect x='10' y='50' width='50' height='50'/>
+ <rect x='60' y='50' width='50' height='50' fill='red'/>
+ </g>
+
+ <script>
+ var g = document.getElementById('g');
+ if (g.getBBox().width == 100) {
+ g.setAttribute('fill', 'green');
+ }
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-10-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-10-b-isvalid.html
new file mode 100644
index 0000000000..085bf66b3d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-10-b-isvalid.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-path-10-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-path-10-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-path-10-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <mask id="emptymask"/>
+ <mask id="hiddenmask">
+ <rect width="100" height="100" visibility="hidden"/>
+ </mask>
+ <mask id="displaymask">
+ <rect width="100" height="100" display="none"/>
+ </mask>
+ <mask id="opacitymask">
+ <rect width="100" height="100" opacity="0"/>
+ </mask>
+ <mask id="strokefillmask">
+ <rect width="100" height="100" stroke="none" fill="none"/>
+ </mask>
+ <mask id="strokewidthmask">
+ <rect x="40" y="40" width="20" height="20" stroke="white" stroke-width="20"/>
+ </mask>
+ <mask id="strokeopacitymask">
+ <rect x="40" y="40" width="20" height="20" stroke="white" stroke-opacity="0" stroke-width="20"/>
+ </mask>
+ <mask id="fillopacitymask">
+ <rect width="100" height="100" fill-opacity="0"/>
+ </mask>
+ </defs>
+
+ <text x="240" y="50" text-anchor="middle">Establishing a new masking path</text>
+
+ <g transform="scale(0.5) translate(320 200)">
+ <rect width="100" height="100" fill="lime"/>
+ <rect width="100" height="100" fill="red" mask="url(#emptymask)"/>
+
+ <g transform="translate(110 0)">
+ <rect width="100" height="100" fill="lime"/>
+ <rect width="100" height="100" fill="red" mask="url(#hiddenmask)"/>
+ </g>
+
+ <g transform="translate(220 0)">
+ <rect width="100" height="100" fill="lime"/>
+ <rect width="100" height="100" fill="red" mask="url(#displaymask)"/>
+ </g>
+
+ <!-- This has an intentionally broken mask url -->
+ <g transform="translate(0 110)">
+ <rect x="0.5" y="0.5" width="99" height="99" fill="red"/>
+ <rect width="100" height="100" fill="lime" mask="url(#unknown)"/>
+ </g>
+
+ <g transform="translate(110 110)">
+ <rect x="0.5" y="0.5" width="99" height="99" fill="lime"/>
+ <rect width="100" height="100" fill="red" mask="url(#opacitymask)"/>
+ </g>
+
+ <g transform="translate(220 110)">
+ <rect x="0.5" y="0.5" width="99" height="99" fill="lime"/>
+ <rect width="100" height="100" fill="red" mask="url(#strokefillmask)"/>
+ </g>
+
+ <g transform="translate(0 220)">
+ <rect width="100" height="100" fill="lime"/>
+ <rect width="100" height="100" fill="red" mask="url(#strokewidthmask)"/>
+ <rect x="29" y="29" width="42" height="42" fill="lime"/>
+ </g>
+
+ <g transform="translate(110 220)">
+ <rect width="100" height="100" fill="lime"/>
+ <rect width="100" height="100" fill="red" mask="url(#strokeopacitymask)"/>
+ </g>
+
+ <g transform="translate(220 220)">
+ <rect x="0.5" y="0.5" width="99" height="99" fill="lime"/>
+ <rect width="100" height="100" fill="red" mask="url(#fillopacitymask)"/>
+ </g>
+
+ <rect width="320" height="320" fill="none" stroke="black"/>
+ </g>
+
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-11-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-11-b-isvalid.html
new file mode 100644
index 0000000000..40effffb20
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-11-b-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-path-11-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-path-11-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-path-11-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <mask id="maskedtext">
+ <circle cx="50%" cy="50%" r="50" fill="white"/>
+ <text x="50%" y="55%" text-anchor="middle" font-size="48">ABC</text>
+ </mask>
+ </defs>
+
+ <image xlink:href="../images/DisplaceChecker.png" x="140" y="80" width="200" height="200"/>
+ <rect width="100" height="100" x="190" y="130" fill="blue" mask="url(#maskedtext)"/>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-12-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-12-f-isvalid.html
new file mode 100644
index 0000000000..8ea5703342
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-12-f-isvalid.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-path-12-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-path-12-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-path-12-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g display="table">
+ <clipPath id="testClip" display="inherit">
+ <rect x="100" y="100" width="50" height="50" display="inherit" />
+ </clipPath>
+ </g>
+
+ <rect id="pass" x="200" y="100" width="50" height="50" fill="green"/>
+ <rect id="fail" x="200" y="100" width="50" height="50" fill="red"/>
+
+ <script><![CDATA[
+ try
+ {
+ var test = document.getElementById("testClip");
+ var testChild = test.firstChild.nextSibling;
+ var testAppliedStyle = document.defaultView.getComputedStyle(test, null).getPropertyValue("display");
+ var testChildAppliedStyle = document.defaultView.getComputedStyle(testChild, null).getPropertyValue("display");
+ var testExpectedStyle = "table";
+ if((testAppliedStyle == testExpectedStyle) && (testChildAppliedStyle == testExpectedStyle))
+ {
+ document.getElementById("fail").setAttribute("display", "none");
+ }
+ }
+ catch(ex)
+ {
+ //alert('ERROR: ' + ex.message);
+ }]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-13-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-13-f-isvalid.html
new file mode 100644
index 0000000000..4295523792
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-13-f-isvalid.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-path-13-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-path-13-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-path-13-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="100" y="100" width="200" height="100" fill="green" />
+ <clipPath id="testClip">
+ <rect x="100" y="100" width="200" height="100" fill="red" />
+ </clipPath>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-14-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-14-f-isvalid.html
new file mode 100644
index 0000000000..aeac28c46b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/masking-path-14-f-isvalid.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>masking-path-14-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: masking-path-14-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: masking-path-14-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <clipPath id="testClipPathAncestor">
+ <rect x="50" y="50" width="50" height="50" />
+ </clipPath>
+ <g clip-path="url(#testClipPathAncestor)">
+ <clipPath id="testClipPath">
+ <rect x="0" y="0" width="50" height="50" />
+ </clipPath>
+ </g>
+ <svg x="0" y="0" width="200" height="200">
+ <rect x="0" y="0" width="50" height="50" fill="red" />
+ <rect x="0" y="0" width="200" height="200" fill="black" clip-path="url(#testClipPath)" />
+ </svg>
+ <svg x="200" y="0" width="200" height="200">
+ <rect x="0" y="0" width="200" height="200" fill="red" clip-path="url(#testClipPath)" />
+ <rect x="0" y="0" width="50" height="50" fill="black" />
+ </svg>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/metadata-example-01-t-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/metadata-example-01-t-novalid.html
new file mode 100644
index 0000000000..6339d524d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/metadata-example-01-t-novalid.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>metadata-example-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: metadata-example-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: metadata-example-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <metadata>
+ <rdf:RDF
+ xmlns:prism="http://prismstandard.org/namespaces/1.0/basic/"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
+ <!-- The empty value for the rdf:about attribute means it is describing
+ the file this is contained in. -->
+ <rdf:Description rdf:about="">
+ <dc:description>Line drawing of woman in antique attire,
+ which looks legal or perhaps mystical.</dc:description>
+ <dc:format>image/svg+xml</dc:format>
+ <dc:subject>Sibyll Trelawney</dc:subject>
+ <dc:type rdf:resource="http://prismstandard.org/vocabularies/1.0/resourcetype.xml#birdsEye"/>
+ <dc:type rdf:resource="http://prismstandard.org/vocabularies/1.0/resourcetype.xml#illustration"/>
+ </rdf:Description>
+ </rdf:RDF>
+ </metadata>
+ <g transform="scale(1.2)">
+ <g id="Sibyll" fill="#FFF" stroke="#000" stroke-miterlimit="4">
+ <g stroke="none">
+ <path fill="#000" d="M132.386,113.177c0.394-2.645,0.978-6.189,1.681-10.262c-7.597-5.655-19.264-14.488-26.764-25.988l-1.667-0.667c5.333,15.167,25,32.833,26.75,36.917l15.583,15.25c0,0,10,10.667,12.167,13.833c2.167,3.167,3.5,7.167,1.333,9.833 c-1.667-1-4.833-5.333-8-9.167c0,0-7-1.5-13.833-1.333c0,0,2.667,5.5,3.833,8c0.563,1.207,0.465,2.141,0.064,3.047c6.241,4.828,12.252,13.801,16.102,18.453c4,4.833,5.548,8.822,12.167,10.167c10.667,2.167,16.667,7.5,19.667,10s3,4,1.833,4.833 c0,0-4.167,1.5-11,2c-6.833,0.5-12.333-3.333-15.167-3.333c-4.333-0.167-6.333-3-7.833-6.333c-1.5-3.333-4.5-4.833-9.167-7.667c-4.293-2.606-14.858-7.894-19.053-14.174c-4.791,3.163-10.643,5.756-17.447,8.34l-1.333-1.333c-1.933,0.773-4.538,1.52-7.574,1.925 c2.113,6.17,7.926,15.123,10.157,16.908c2.5,2,4.25,4.25,4.25,6.5s-0.75,5.5-3.75,9.5c-0.5,13-6,19.75-12.5,22.25c-4.5-15-0.5-25.25,1.5-31.25c0,0-7.472-6.813-12.938-12.608c0.73,3.979,1.468,7.703,2.188,10.942c0,0-1.232,1.575-3.5,0.833 c-8.667-2.833-22.167-10.333-27.333-16.333c-2.667-7.833-6.5-33.667-7.667-44.333c0,0-5.167-1.333-10.167-2.667c0,0-0.667-0.333-1.5-3.5c0,0-5.667-1.667-11.833-3c-6.167-1.333-5.667-2.667-6.667-6.167s0.667-28.5,2.5-36.667c1.833-8.167,10.5-22.167,15.833-28 c0,0-1.006-0.135-1.833-2.5c-5.833-16.667-7.833-27.333-0.667-37.667c7.167-10.333,20.167-6,26.667-2.833c6.5,3.167,6.667,8.333,8.167,10.833s0.333,4.833,2,7.167c17.667,7,26.833,16.667,38.833,27.167c7.5,3.667,13.667,9.667,18.667,13.833 c1.124,0.937,2.323,2.151,3.556,3.525c1.444-7.663,2.858-14.936,3.944-20.275c3-14.75,9.5-47,10.25-49.25l3,0.25c29.25,0.25,69.75-1,69.75-1c0.25,20.25,0.25,62.5,0.25,74.25s0,39,0.25,42.25c0,0-3.75,2-8.333,2.75c1,0.167,1.667,2.5-0.167,3.333 c-3,0.167-25.333,0.167-33-1c-1.245-0.189-2.923-0.326-4.879-0.422c2.441,2.484,8.906,8.839,19.629,17.838l-0.25,8.25l-9,0.25l-31.952-26.426c-4.665,0.081-8.525,0.176-10.215,0.176l-15.583-15.25z"/>
+ <path fill="#000" d="M60.654,1.358c-0.844,0.915-1.808,2.263-2.857,3.938c-1.195-1.07-3.74-3.216-6.342-4.566l-1.904,2.413l6.058,5.882c-0.131,0.236-0.264,0.477-0.397,0.721C46.57,3.133,43.441,0.554,43.441,0.554l-2.39,2.766 c3.972,4.632,9.453,8.916,11.891,10.729c-0.211,0.413-0.423,0.831-0.636,1.255C39.417,5.651,34.449,0.917,34.449,0.917l-2.717,2.945c7.647,7.33,15.917,14.754,18.024,16.638c-0.204,0.425-0.408,0.854-0.613,1.284C36.8,12.691,27.994,4.367,25.422,0.449 l-2.39,2.765c8.104,8.539,20.319,19.211,24.227,22.583c-0.206,0.443-0.411,0.888-0.617,1.333c-9.527-6.31-14.627-11.31-18.931-15.432C23.201,7.377,17.976,1.917,15.896,0L13.02,3.119c7.717,8.503,25.108,24.004,31.619,28.399 c-0.243,0.537-0.485,1.073-0.726,1.607C30.32,22.46,10.721,5.175,6.985,2.362L4.901,4.448c8.872,9.074,31.669,29.336,36.615,34.038c-0.3,0.677-0.597,1.346-0.89,2.006C25.883,27.823,2.664,6.874,2.664,6.874L1.12,9.939c10.493,10.57,33.952,32.544,37.258,35.638 c-0.259,0.585-0.512,1.158-0.758,1.715C22.515,33.526,7.848,20.476,3.401,16.852l-2.237,2.426c11.139,10.986,30.478,28.518,34.581,32.227c-0.323,0.72-0.628,1.394-0.913,2.015C21.063,40.369,5.95,27.057,2.685,23.887l-2.383,2.932 c8.691,8.46,29.709,27.74,32.738,30.515c-0.304,0.651-0.648,1.404-1.029,2.247C18.259,46.584,5.606,34.76,2.869,32.553l-2.25,2.092c9.949,10.825,26.338,25.906,29.82,28.451c-0.32,0.724-0.656,1.485-1.006,2.28C16.333,52.826,2.679,40.233,2.679,40.233 l-2.224,2.759c9.067,9.678,23.141,23.04,27.343,26.12c-0.297,0.683-0.602,1.383-0.912,2.098C15.543,60.602,2.703,49.073,2.703,49.073C1.238,49.966,0,52.352,0,52.352C11.334,63.218,22.136,73.12,24.95,75.689c-0.261,0.606-0.525,1.22-0.792,1.841 C8.771,63.626,2.36,57.093,2.36,57.093l-1.884,2.912c8.419,8.851,18.809,19.06,21.778,21.963c-0.157,0.366-0.313,0.733-0.472,1.102C10.825,74.056,2.944,67.412,2.944,67.412l-1.737,2.405c8.374,8.123,16.46,14.983,18.948,17.065 c-0.242,0.567-0.484,1.137-0.728,1.709C10.261,82.019,3.115,75.745,3.115,75.745l-1.85,3.745c8.161,7.937,14.37,12.905,16.005,14.183c-0.244,0.576-0.488,1.152-0.732,1.729C7.159,87.785,4.131,84.377,4.131,84.377l-2.363,3.432 c5.442,5.678,11.379,9.753,13.319,11.023c-0.25,0.592-0.5,1.183-0.748,1.773l-10.71-8.035l-1.884,2.912l10.717,9.579c-0.152,0.362-0.303,0.723-0.455,1.083l-8.603-6.725l-1.724,2.738l8.792,7.647c-0.276,0.659-0.549,1.313-0.821,1.962l-6.45-5l-1.737,2.405 l6.509,6.618c-0.19,0.457-0.379,0.911-0.566,1.36l-5.095-3.509l-1.384,2.892l4.96,4.278c-0.144,0.347-0.286,0.69-0.427,1.031l-2.546-1.553l-1.211,3.051l2.199,2.281c-1.341,3.262-2.508,6.131-3.433,8.444l2.725,1.391c1.204-3.218,31.228-73.322,36-83.189 S60.577,7.7,62.173,1.797l-1.519-0.439z"/>
+ <path d="M142.803,106.261c-1,0.5-3,1-5-0.5c0,0-3.667,12.333-2.667,17.667c3.667,1.833,42.833,2.5,52.667,2.5c16.833,0,26.167,1,30,0.5c4.583-0.75,8.333-2.75,8.333-2.75c-0.25-3.25-0.25-30.5-0.25-42.25s1.333-54.354-0.25-74.25c0,0-40.5,1.25-69.75,1 c0.5,5.75-2.395,17.829-4,24.25c-1.5,6-5,25.25-9.929,48.894c3.256,4.04,6.499,8.469,9.012,11.273c0,0,0.089,1.697-0.189,3.521c3.856,1.062,6.481,3.062,7.981,5.312s2.25,5.625,1.375,7.875c0.625,3.125,0.5,5.375-0.875,5.75s-2.5,1-4.5,0.25 c-0.875,3.25-1.25,3.5-1.25,3.5c-1.75,0-2.375-0.125-2.375-0.125c-3-4.125-8.667-7.833-8.333-12.417z"/>
+ <path fill="#000" d="M207.303,18.594c0,0-19,6.167-39.167,13.333c0,0,0.716,6.012,1.617,11.404c-4.629,2.158-9.096,4.243-12.617,5.93c0,0,5,18,10.333,30.333c2.833-2.167,23-11.833,37.167-19.667c0,0-0.888-2.858-2.156-6.833 c1.809-0.587,7.883-2.55,9.156-2.833c1.5-0.333,1.5-2.833,1.5-2.833s-4.333-21.667-5.833-28.833z"/>
+ <path d="M133.469,159.427c-6.038,5.712-26.618,15.097-44.84,10.635c-1.833-11.777-3.345-23.232-3.993-29.635c-1.333-13.167-1.5-27.167-1.5-27.167c7,0.833,11.333-0.333,11.333-0.333c-0.333-4,0.5-9.5,0.5-9.5c2.5,3.167,7,5,8.333,1.833 c1.333-3.167,2.5-8.667,2.5-8.667c3.5,2.167,10,9.667,15.833,19c5.833,9.333,11.833,18.833,15.333,26.5c3.5,7.667,2.667,11.5-3.5,17.333z"/>
+ <path d="M150.303,98.094c-0.573,1.604-3.428,4.624-5.483,6.519c0.691,4.564,3.566,8.189,4.941,9.189s2.75,2,2.75,2c0.625-2.125-0.25-4.25-3.125-5.625c-0.375-1,0.75-3,1.75-2s2,0.375,2,0.375c1.875,2.75,2.125,4.125,2.125,4.125l2,0.5 c0-3.125-0.625-4.5,0.375-6.25c-1-3.75-2.292-7.042-7.333-8.833z"/>
+ <path d="M115.386,197.677c-1.5,7.25-3.25,13.25-4.5,16.25s-0.75,5.25-4.75,5c-3.25-1.5-3.5-3.75-2.25-8.5s3.5-9,3.5-12.25c-6.583-7.147-13.873-14.577-17.08-17.819c-0.354-2.073-0.703-4.181-1.043-6.295c4.057,1.386,8.024,1.841,11.607,1.757 c3.328,8.71,11.053,18.163,14.516,21.857z"/>
+ <path d="M141.636,155.761c0.054-0.094,0.108-0.187,0.164-0.277c7.517,8.107,12.258,14.859,14.67,17.111c2.5,2.333,6.5,8.667,10,9.833c3.5,1.167,11.833,4.167,14.333,5.333s2.667,1.833,2.167,3.667c-0.5,1.833-1.333,2.833-7,2.167 c-5.667-0.667-11.833-1.5-12.167-3.833c-0.333-2.333-7.333-9.5-11.833-11.5c-4.067-1.808-15.622-8.652-18.299-13.521c3.277-2.538,5.95-5.452,7.965-8.979z"/>
+ <path d="M193.136,150.927l-3,0.25c-13.131-11.256-23.025-19.555-27.146-22.997c1.969-0.023,3.993-0.039,5.991-0.041c9.588,10.269,24.155,22.788,24.155,22.788z"/>
+ <path d="M169.303,74.427c-4.667-11.833-7.833-23.667-7.833-23.667c13.333-6.333,32-15.167,32-15.167c2.5,9.167,7.333,23.333,7.333,23.333c-15.833,7.5-31.5,15.5-31.5,15.5z"/>
+ <path d="M201.697,50.65c-2.207-6.863-5.115-15.666-6.728-19.556c-2.217,1.478-12.056,6.098-21.979,10.728c-0.355-1.502-1.255-5.506-1.521-8.561c2.5-0.5,22.333-6.667,33.5-10.167c0.333,2.833,2.333,12.833,4.667,25.167c-1.124,0.75-5.709,1.873-7.938,2.389z"/>
+ <path d="M121.636,69.302l-0.333-2.333c5.333,3.333,20.667,18,26.167,25.667c0,2-1.833,1.333-2.833,0.333s-3.667-5.167-9-10.5c-5.333-5.333-12-13.333-14-13.167z"/>
+ <path d="M119.136,74.136c-0.667-6.833-3.333-11.333-12-18.5c-8.667-7.167-19.833-16.667-26.667-18.5c1.167,1.167,1.5,2.333,1.5,2.333c9.167,4.667,25.667,18.833,29.5,24.333s6.333,10,7.667,10.333z"/>
+ <path d="M68.441,165.532c-0.229-1.13-0.446-2.215-0.649-3.251c-1.987-0.381-3.908-1.266-5.172-1.943c0.2,1.172,0.399,2.327,0.595,3.453c1.945,0.734,3.919,1.353,5.227,1.741z"/>
+ <path d="M69.66,171.421c-2.355-0.877-4.315-1.616-5.454-2.046c0.217,1.205,0.426,2.347,0.622,3.412c2.266,0.833,4.26,1.692,5.618,2.308c-0.274-1.266-0.536-2.491-0.786-3.674z"/>
+ <path d="M61.589,154.129c2.229,0.848,3.901,1.444,4.997,1.822c-0.184-0.999-0.351-1.93-0.504-2.797c-1.253-0.34-2.919-0.923-4.952-1.916c0.151,0.962,0.304,1.927,0.46,2.891z"/>
+ <path d="M65.795,177.971c0.369,1.946,0.59,3.082,0.59,3.082s3.25,3.75,6.5,5c-0.317-1.384-0.622-2.732-0.916-4.042c-2.397-1.074-4.802-2.904-6.174-4.04z"/>
+ <path d="M64.884,145.852c-0.178-1.214-0.249-1.8-0.249-1.8l-4.75-1.25c0.093,0.678,0.189,1.366,0.288,2.06c1.966,0.497,3.552,0.803,4.711,0.99z"/>
+ <path d="M41.469,94.136c0.5,5.5,2.833,15.333,2.833,15.333l7.333,0.833l1.5,1.5c1-3.667,3.5-5.333,6.5-5.167s13.167,0,13.167,0c0.167-4.5,0.833-11,0.833-11c-2,4-3.5,4.833-6.333,4.167c-2.833-0.667-22.167-5.5-25.833-5.667z"/>
+ <path d="M44.303,90.636l2.167-2.833c11.667,1.5,25.333,5.667,25.333,5.667s-1,2.833-2.667,3.667c-12.333-2.667-24.833-6.5-24.833-6.5z"/>
+ <path d="M49.636,114.969c-0.5,2.167-0.5,8.5-0.5,8.5c3.333,0,4.833,0.5,4.667,1.833c1.5,0.167,2.833,1.5,2.833,1.5c2.833-0.333,5.167,1.333,9.167,1.5c4,0.167,5.5,2,8.5-0.667c-3.5,0.167-9.167-0.167-9.5-2.333c4.333-0.333,9.167,0.333,10.333-0.5 c0.833-1,0-1.667,0-1.667c-5.167,0-11.167-0.333-11-2c0.167-1.667,4.333-0.333,6.5-0.167c2.167,0.167,6,0.333,6.167-1.5c0.167-1.833-2.833-0.833-4.833-0.833s-7.5,0.167-7.333-1.5c0.167-1.667,2-1,5.5-0.833c3.5,0.167,6,0,6.167-1.333 c-3-0.5-7.5-1.333-9.833-1.667c-2.333-0.333-5.5-0.167-5.5-0.167c-0.5-1.667,1.333-2.833,4-2.167c2.667,0.667,5,0.667,5,0.667s3.5-0.667,2.5-1.667s-7.333-0.333-10.5-1c-3.167-0.667-6.167-0.333-6.833,2.167c-0.667,2.5-0.833,4.333-5.5,3.833z"/>
+ <path d="M52.969,128.302c-0.167,3-1.333,4.5-1.333,4.5c7,1.167,13.667,2,15.833,2.667c2.5-1.667,2.5-4,2.5-4c-6-0.167-11-1.167-17-3.167z"/>
+ <path d="M48.303,83.802c0.32-0.641,0.712-1.385,1.158-2.195c-3.615-2.958-6.491-4.972-6.491-4.972c0.531-1.044,1.041-2.015,1.535-2.927c2.657,2.698,5.046,4.441,6.417,5.345c0.384-0.646,0.789-1.311,1.211-1.984c-2.489-1.858-5.061-4.094-6.501-5.381 c0.501-0.871,0.986-1.675,1.458-2.414c2.28,2.454,5.479,4.286,6.863,5.014c0.36-0.527,0.728-1.049,1.1-1.563c-2.814-2.162-4.917-4.646-6.071-6.168c0.626-0.813,1.238-1.517,1.844-2.126c2.739,2.539,5.216,4.473,6.461,5.41c0.314-0.374,0.627-0.733,0.94-1.077 c-2.576-2.421-4.665-4.903-5.513-5.949c0.684-0.484,1.375-0.871,2.09-1.181c1.745,2.559,3.975,4.467,5.164,5.387c0.454-0.404,0.901-0.759,1.336-1.054l-3.5-4.167c0,0-4.5-1.167-11.167-2.333c-2.833,2.5-10.167,14-13.667,20.5s-5,22.5-5.167,28.167 c-0.167,5.667-0.833,12,0.5,15.333c0,0,0.506-0.025,1.369-0.083c0.068-3.272-0.202-6.251-0.202-6.251s0.64-0.07,1.667-0.163v6.307c0.644-0.051,1.375-0.113,2.167-0.188v-6.298c0.526-0.04,1.087-0.079,1.668-0.115l1.005,6.131c0.435-0.051,0.878-0.105,1.327-0.163 v-6.086c0.758-0.03,1.52-0.049,2.261-0.055l0.32,5.773c0.916-0.145,1.831-0.305,2.723-0.482l-0.111-5.215c0.679,0.048,1.292,0.12,1.806,0.223l0.974,4.384c0.064-0.017,0.129-0.034,0.192-0.051c0.167-2.667,0.333-6.333,1.667-8c0,0-4.333-0.833-7.833-1.667 c-3.5-0.833-7.167,1.333-7.167,1.333l-1-3.167c0,0,2.333-0.167,5.833-3.167c0,0,1.333-2.833,2.333-7c0,0,0.5-2.667-0.5-5c-1-2.333,0.167-4,1.667-4c0,0,1.667-1,2.833-4c-0.833-1-0.333-2.833-2.167-4.333l1-3.5c0,0,2.333,2.833,6.167,5.167z"/>
+ <path d="M72.469,87.636c-3-10-4.333-21.333-4.333-21.333c1.833,0.167,3-1.667,2.833-3.333c-0.167-1.667,0.167-3.833,0.167-3.833c2.5,0,6.833,2.667,6.5-2.167l1.833-0.5l-0.667,1.333c5.667,2.5,10.167,8,13,11c-0.167,3.167-1.333,4.833-1.333,4.833 c-7.5-8.5-10.667-11.667-17.5-13.5c-0.833-0.167-1.167,0.833-1.167,0.833c3.667,11.5,7.667,18.5,6.5,24.833c-1.167,1.833-5.833,1.833-5.833,1.833z"/>
+ <path d="M71.803,57.136c1.333-0.5,3.5-0.167,3.5-0.167v1c0,0-1.833,0.833-3.5-0.833z"/>
+ <path d="M69.303,59.469c-0.5,2-0.833,4.833-0.833,4.833c-2.833-0.5-7-2.167-8.333-5c-0.167-1.833-0.5-3.333-0.5-3.333c4.167,2.333,7.833,3.833,9.667,3.5z"/>
+ <path d="M61.041,22.638c1.264-0.02,4.413-0.208,7.262-1.502c-1.5-6.333-16.5-5.667-19-5.167s-6,3.833-7.333,6.667c0.407,0.078,0.821,0.147,1.241,0.209c0.353-0.971,0.765-1.43,0.967-1.61c0.539-0.141,1.064-0.269,1.579-0.386l-0.121,2.274 c0.448,0.038,0.897,0.069,1.347,0.094c0.278-0.639,0.836-1.885,1.368-2.879c0.916-0.149,1.796-0.258,2.648-0.325l-0.633,3.291c0.734-0.001,1.454-0.015,2.151-0.036l1.019-3.336c1.12,0.02,2.201,0.116,3.266,0.287v2.805c0.273-0.022,0.535-0.045,0.784-0.068 l1.205-2.329c0.706,0.176,1.409,0.385,2.118,0.627l0.132,1.386z"/>
+ <path d="M80.719,45.948c-1.216,1.93-3.617,3.119-4.833,3.229c0,0,1.265-2.633,3.503-5c0.58-0.479,0.58-1.229-0.12-1.646c-0.467,0.238-1.198,0.661-1.884,1.27c-1.125,1-2.75-0.25-3.25-1.5c0.781-1.45,3.351-1.408,4.961-1.827c0.622-0.527-0.128-1.34-0.128-1.34 c-2.833-3-7.167-4.333-7.167-6.833c0-1.414,0.373-2.507,0.697-3.191c-0.643,0.122-1.472-0.365-1.614-0.934c-0.201-0.805-0.323-1.369-1.407-2.732c-0.147,0.09-0.295,0.181-0.444,0.273c0.392,1.027,0.987,2.527,1.727,4.209c1.375,3.125-2.125,2.625-2.25,1.125 c-0.093-1.118-0.742-2.652-1.688-3.931c-0.119,0.078-0.237,0.157-0.356,0.236c0.75,1.878,1.31,4.497,1.793,6.819c0.625,3-2.375,2.25-2.625,1c-0.205-1.023-0.83-3.555-2.079-5.744c-0.127,0.098-0.253,0.196-0.379,0.296c0.56,2.288,0.947,5.64,1.333,7.573 c0.5,2.5-2.375,2.5-2.625,0.5c-0.212-1.696-0.245-2.944-1.242-5.878c-0.208,0.2-0.414,0.402-0.616,0.608c0.012,3.123-0.009,8.49-0.268,10.646c-0.375,3.125-2.875,2.375-2.75,1c0.109-1.197-0.161-3.154-0.068-7.767c-0.046,0.076-0.095,0.15-0.14,0.226 c-0.833,5.333-1.167,12.833,4.833,15.5s14.292,3.313,18,0.5c4.208-2.563,1.083-4.313,1.083-6.688z"/>
+ <g fill="#000">
+ <path d="M108.89,146.162c-0.826-0.792-1.639-1.586-2.431-2.375c-3.331,1.829-7.613,3.162-9.51,3.705c0.6,0.995,1.222,2.013,1.855,3.04c5.627-1.592,8.655-3.34,10.085-4.369z"/>
+ <path d="M101.191,138.181c-2.182,1.709-5.985,3.141-7.535,3.682c0.5,0.895,1.054,1.857,1.647,2.868c4.203-1.098,7.043-2.515,8.666-3.492c-0.993-1.046-1.926-2.07-2.778-3.058z"/>
+ <path d="M102.346,156.194c5.876-1.628,9.702-4.044,11.53-5.404c-0.834-0.752-1.673-1.518-2.508-2.293c-2.729,2.457-8.69,4.159-10.893,4.725c0.627,1.002,1.253,1.998,1.871,2.973z"/>
+ <path d="M123.275,158.893c-3.958,2.792-11.935,5.487-15.034,6.474c1.168,1.793,1.895,2.894,1.895,2.894s12.5-3.333,16.5-6.667c-0.892-0.694-2.039-1.613-3.361-2.701z"/>
+ <path d="M117.5,154c-3.033,2.28-10.208,4.545-13.112,5.402c0.657,1.026,1.285,2.002,1.869,2.907c6.353-1.963,11.13-4.771,13.516-6.351c-0.735-0.626-1.496-1.281-2.273-1.958z"/>
+ <path d="M99.333,135.915c-0.582-0.755-1.097-1.476-1.531-2.154c-2.333,1.5-6.667,3-6.667,3c0.173,0.519,0.483,1.221,0.902,2.066c2.759-0.008,4.985-0.774,7.296-2.913z"/>
+ <path d="M66.386,44.677c2.125-1.75,5.375-4.25,5.125-7.25l-1.25-0.625l-0.125-0.75c-5.125,3.25-7.75,4.375-8.5,5c0.875,1.875,2.5,1.375,2.5,1.375c2.125-1.125,4-2.375,4-2.375c-1.875,2.125-2.5,3.125-2.5,3.125s-0.125,0.875,0.75,1.5z"/>
+ </g>
+ </g>
+ </g>
+ <g id="vis" transform="translate(153,58) rotate(-27) scale(0.05)" stroke="rgb(66,105,66)" font-family="dialog, sans-serif" font-size="10">
+ <g fill="rgb(115,191,115)">
+ <ellipse cx="195" cy="210" rx="27" ry="18"/>
+ <ellipse cx="645" cy="102" rx="225" ry="18"/>
+ <ellipse cx="645" cy="156" rx="230" ry="18"/>
+ </g>
+ <g fill="rgb(255,223,123)" stroke="rgb(132,117,66)">
+ <rect height="36" width="100" x="595" y="192"/>
+ <rect height="36" width="276" x="507" y="246"/>
+ <rect height="36" width="106" x="592" y="300"/>
+ </g>
+ <g fill="none" stroke="rgb(90,89,206)">
+ <path d="M201 193C212 170 215 158 240 143 279 122 377 112 428 107"/>
+ <path d="M216 200C224 196 232 193 240 191 311 174 390 165 423 161"/>
+ <path d="M221 210C295 210 497 210 595 210"/>
+ <path d="M221 210C295 210 497 210 595 210"/>
+ <path d="M216 220C224 224 232 227 240 229 334 252 444 261 506 264"/>
+ <path d="M201 227C212 253 215 265 240 280 352 344 508 337 592 325"/>
+ </g>
+ <g fill="rgb(90,89,206)" stroke="none">
+ <polygon points="433,107 425,111 425,103"/>
+ <polygon points="428,160 421,165 420,157"/>
+ <polygon points="600,210 592,214 592,206"/>
+ <polygon points="511,264 503,268 503,260"/>
+ <polygon points="597,324 590,329 588,321"/>
+ </g>
+ <g fill="rgb(66,105,66)">
+ <text x="458" y="105">http://prismstandard.org/vocabularies/1.0/resourcetype.xml#birdsEye</text>
+ <text x="453" y="159">http://prismstandard.org/vocabularies/1.0/resourcetype.xml#illustration</text>
+ <text x="604" y="213">image/svg+xml</text>
+ <text x="530" y="267">Line drawing of woman in antique attire, ...</text>
+ <text x="177" y="213">online:</text>
+ <text x="601" y="321">Sibyll Trelawney</text>
+ </g>
+ <g stroke="rgb(90,89,206)" fill="rgb(90,89,206)">
+ <text x="256" y="158">http://purl.org/dc/elements/1.1/type</text>
+ <text x="250" y="206">http://purl.org/dc/elements/1.1/format</text>
+ <text x="250" y="276">http://purl.org/dc/elements/1.1/subject</text>
+ <text x="256" y="105">http://purl.org/dc/elements/1.1/type</text>
+ <text x="240" y="225">http://purl.org/dc/elements/1.1/description</text>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-01-f-isvalid.html
new file mode 100644
index 0000000000..b3c1240bfb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-01-f-isvalid.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-control-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-control-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-control-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect width="48px" height="48px" fill="red" />
+ <rect width="48px" height="48px" display="inline" />
+
+ <rect x="50px" width="48px" height="48px" fill="red" />
+ <rect x="50px" width="48px" height="48px" display="block" />
+
+ <rect x="100px" width="48px" height="48px" fill="red" />
+ <rect x="100px" width="48px" height="48px" display="list-item" />
+
+ <rect x="150px" width="48px" height="48px" fill="red" />
+ <rect x="150px" width="48px" height="48px" display="run-in" />
+
+ <rect y="50px" width="48px" height="48px" fill="red" />
+ <rect y="50px" width="48px" height="48px" display="compact" />
+
+ <rect x="50px" y="50px" width="48px" height="48px" fill="red" />
+ <rect x="50px" y="50px" width="48px" height="48px" display="marker" />
+
+ <rect x="100px" y="50px" width="48px" height="48px" fill="red" />
+ <rect x="100px" y="50px" width="48px" height="48px" display="table" />
+
+ <rect x="150px" y="50px" width="48px" height="48px" fill="red" />
+ <rect x="150px" y="50px" width="48px" height="48px" display="inline-table" />
+
+ <rect y="100px" width="48px" height="48px" fill="red" />
+ <rect y="100px" width="48px" height="48px" display="table-row-group" />
+
+ <rect x="50px" y="100px" width="48px" height="48px" fill="red" />
+ <rect x="50px" y="100px" width="48px" height="48px" display="table-header-group" />
+
+ <rect x="100px" y="100px" width="48px" height="48px" fill="red" />
+ <rect x="100px" y="100px" width="48px" height="48px" display="table-footer-group" />
+
+ <rect x="150px" y="100px" width="48px" height="48px" fill="red" />
+ <rect x="150px" y="100px" width="48px" height="48px" display="table-row" />
+
+ <rect y="150px" width="48px" height="48px" fill="red" />
+ <rect y="150px" width="48px" height="48px" display="table-column-group" />
+
+ <rect x="50px" y="150px" width="48px" height="48px" fill="red" />
+ <rect x="50px" y="150px" width="48px" height="48px" display="table-column" />
+
+ <rect x="100px" y="150px" width="48px" height="48px" fill="red" />
+ <rect x="100px" y="150px" width="48px" height="48px" display="table-cell" />
+
+ <rect x="150px" y="150px" width="48px" height="48px" fill="red" />
+ <rect x="150px" y="150px" width="48px" height="48px" display="table-caption" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-02-f-isvalid.html
new file mode 100644
index 0000000000..a44dfd189c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-02-f-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-control-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-control-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-control-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <path d="M 100 100 L 100 190" fill="none" stroke="orange" stroke-width="20" stroke-dasharray="10px 20px 20px" />
+ <path d="M 100 190 L 100 100" fill="none" stroke="black" stroke-width="20" stroke-dasharray="10px 20px 20px" />
+
+ <path d="M 200 100 L 200 190" fill="none" stroke="orange" stroke-width="20" stroke-dashoffset="5px" stroke-dasharray="10px 10px 10px" />
+ <path d="M 200 190 L 200 100" fill="none" stroke="black" stroke-width="20" stroke-dashoffset="5px" stroke-dasharray="10px 10px 10px" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-03-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-03-f-isvalid.html
new file mode 100644
index 0000000000..9cd40e1238
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-03-f-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-control-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-control-03-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-control-03-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <path d="M 20 100 L 50 150 L 100 200 L 175 175 L 150 150 z" fill="red" />
+ <path d="M 20 100 L 50 150 L 100 200 L 175 175 L 150 150" fill="black" stroke="black" />
+
+ <polyline points="200 100 250 150 300 200 375 175 350 150 " fill="red" />
+ <polyline points="200 100 250 150 300 200 375 175 350 150 200 100" fill="black" stroke="black" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-04-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-04-f-isvalid.html
new file mode 100644
index 0000000000..f4d3faa9c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-04-f-isvalid.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-control-04-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-control-04-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-control-04-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <path d="M 96 96 L 96 96" stroke="red" stroke-width="96" stroke-linecap="butt" />
+ <path d="M 196 96 L 196 96" stroke="blue" stroke-width="96" stroke-linecap="round" />
+ <path d="M 296 96 L 296 96" stroke="blue" stroke-width="96" stroke-linecap="square" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-05-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-05-f-isvalid.html
new file mode 100644
index 0000000000..78e538fd33
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-05-f-isvalid.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-control-05-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-control-05-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-control-05-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect id="displaynone_rect" width="100%" height="100%" display="none" />
+ <rect id="rect" width="100%" height="100%" />
+ <use id="displaynone_use_rect" xlink:href="#displaynone_rect"/>
+
+ <!-- an empty mask where the basic shape element has display=none -->
+ <mask id="testMask1">
+ <rect width="100%" height="100%" display="none" fill="white" />
+ </mask>
+ <!-- an empty mask where display=none is inherited down to the basic shape -->
+ <mask id="testMask2">
+ <g display="none">
+ <rect width="100%" height="100%" fill="white" />
+ </g>
+ </mask>
+ <!-- an empty mask where the referenced element has display=none -->
+ <mask id="testMask3">
+ <use xlink:href="#displaynone_rect" fill="white"/>
+ </mask>
+ <!-- an empty mask by two levels of indirection -->
+ <mask id="testMask4">
+ <use xlink:href="#displaynone_use_rect" fill="white"/>
+ </mask>
+
+ <!-- an empty clip-path where the basic shape element has display=none -->
+ <clipPath id="testClip1">
+ <rect width="100%" height="100%" display="none" />
+ </clipPath>
+ <!-- an empty clip-path where the referenced element has display=none -->
+ <clipPath id="testClip2">
+ <use xlink:href="#displaynone_rect"/>
+ </clipPath>
+ <!-- an empty clip-path where the referencing element has display=none -->
+ <clipPath id="testClip3">
+ <use xlink:href="#rect" display="none"/>
+ </clipPath>
+ <!-- an empty clip-path by having both a display=none element and a non-rendered rect that's visible -->
+ <clipPath id="testClip4">
+ <rect width="100%" height="100%" display="none" />
+ <rect width="0" height="0"/>
+ </clipPath>
+ </defs>
+
+ <g id="reference" fill="lime" stroke="black">
+ <rect x="50" y="50" width="100" height="100"/>
+ <rect x="150" y="50" width="100" height="100"/>
+ <rect x="250" y="50" width="100" height="100"/>
+ <rect x="350" y="50" width="100" height="100"/>
+ <rect x="50" y="200" width="100" height="100"/>
+ <rect x="150" y="200" width="100" height="100"/>
+ <rect x="250" y="200" width="100" height="100"/>
+ <rect x="350" y="200" width="100" height="100"/>
+ </g>
+
+ <rect x="50" y="50" width="100" height="100" fill="red" mask="url(#testMask1)"/>
+ <rect x="150" y="50" width="100" height="100" fill="red" mask="url(#testMask2)"/>
+ <rect x="250" y="50" width="100" height="100" fill="red" mask="url(#testMask3)"/>
+ <rect x="350" y="50" width="100" height="100" fill="red" mask="url(#testMask4)"/>
+
+ <rect x="50" y="200" width="100" height="100" fill="red" clip-path="url(#testClip1)"/>
+ <rect x="150" y="200" width="100" height="100" fill="red" clip-path="url(#testClip2)"/>
+ <rect x="250" y="200" width="100" height="100" fill="red" clip-path="url(#testClip3)"/>
+ <rect x="350" y="200" width="100" height="100" fill="red" clip-path="url(#testClip4)"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-06-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-06-f-isvalid.html
new file mode 100644
index 0000000000..1b2a2eaaf0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-control-06-f-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-control-06-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-control-06-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-control-06-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="96" y="96" width="96" height="96" fill="lime" />
+ <g visibility="hidden">
+ <rect x="96" y="96" width="96" height="96" fill="red" />
+ </g>
+ <rect x="196.5" y="196.5" width="95" height="95" fill="red"/>
+ <g visibility="hidden">
+ <rect x="196" y="196" width="96" height="96" fill="lime" visibility="visible" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-01-t-isvalid.html
new file mode 100644
index 0000000000..eb75daaf03
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-01-t-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-fill-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-fill-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-fill-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="36" x="40" y="42">Basic paint: fill properties.</text>
+
+ <!-- ============================================================================= -->
+ <!-- Draw two simple rectangles. One without fill other with fill:green -->
+ <!-- ============================================================================= -->
+
+ <rect id="fill-01" fill="none" stroke="#000000" x="75" y="70" width="100" height="160"/>
+
+ <rect id="fill-02" fill="green" stroke="#000000" x="275" y="70" width="100" height="160"/>
+
+ <text font-size="36" x="75" y="280">fill="none"</text>
+ <text font-size="36" x="275" y="280">fill="green"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-02-t-isvalid.html
new file mode 100644
index 0000000000..f5221bb921
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-02-t-isvalid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-fill-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-fill-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-fill-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g color="green">
+
+ <text font-family="Arial" font-size="36" x="30" y="42">Basic paint: fill properties.</text>
+ <text font-family="Arial" font-size="36" x="100" y="80">fill="currentColor"</text>
+
+ <!-- ====================================================================== -->
+ <!-- Second set of rectangles with fill:currentColor -->
+ <!-- ====================================================================== -->
+
+ <rect id="fill-03" fill="currentColor" stroke="#000000" x="75" y="110" width="100" height="140"/>
+ <rect id="fill-04" color="blue" fill="currentColor" stroke="#000000" x="275" y="110" width="100" height="140"/>
+
+ <text font-family="Arial" font-size="36" x="80" y="280">green</text>
+ <text font-family="Arial" font-size="36" x="290" y="280">blue</text>
+
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-03-t-isvalid.html
new file mode 100644
index 0000000000..efba8a992b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-03-t-isvalid.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-fill-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-fill-03-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-fill-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="36" x="30" y="42">Basic paint: fill properties.</text>
+
+ <!-- ====================================================================== -->
+ <!-- Third test fill-rule:evenodd and fill-rule:nonzero -->
+ <!-- ====================================================================== -->
+
+ <path fill="lime" fill-rule="evenodd" d="M 110 75 l 50 160 l -130 -100 l 160 0 l -130 100 z"/>
+ <path fill="lime" fill-rule="nonzero" d="M 365 75 l 50 160 l -130 -100 l 160 0 l -130 100 z"/>
+ <text font-size="24" x="10" y="282">fill-rule="evenodd"</text>
+ <text font-size="24" x="260" y="282">fill-rule="nonzero"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-04-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-04-t-isvalid.html
new file mode 100644
index 0000000000..54974d263f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-04-t-isvalid.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-fill-04-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-fill-04-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-fill-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g id="G1" fill="blue" stroke="purple" stroke-width="5" transform="translate(120,30)">
+ <rect x="0" y="0" width="90" height="70"/>
+ <rect x="100" y="0" width="90" height="70"/>
+ <rect x="0" y="80" width="90" height="70" fill="yellow" stroke-width="2"/>
+ <rect x="100" y="80" width="90" height="70" stroke="yellow"/>
+ <g id="G2" fill="yellow">
+ <rect x="0" y="160" width="90" height="70"/>
+ <rect x="100" y="160" width="90" height="70"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-05-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-05-b-isvalid.html
new file mode 100644
index 0000000000..e81b09aa95
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-fill-05-b-isvalid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-fill-05-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-fill-05-b-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-fill-05-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <!-- Use multiple values for opacity -->
+ <rect x="20" y="20" width="60" height="60" fill-opacity="0.0" fill="#0000FF" stroke="black"/>
+ <rect x="50" y="50" width="60" height="60" fill-opacity="0.2" fill="#0000FF" stroke="black"/>
+ <rect x="80" y="80" width="60" height="60" fill-opacity="0.4" fill="#0000FF" stroke="black"/>
+ <rect x="110" y="110" width="60" height="60" fill-opacity="0.6" fill="#0000FF" stroke="black"/>
+ <rect x="140" y="140" width="60" height="60" fill-opacity="0.8" fill="#0000FF" stroke="black"/>
+ <rect x="170" y="170" width="60" height="60" fill-opacity="1.0" fill="#0000FF" stroke="black"/>
+ <!-- Values outside the range 0.0 - 1.0 should be clamped to this range -->
+ <rect x="200" y="20" width="60" height="60" fill-opacity="-100.0" fill="#0000FF" stroke="black"/>
+ <rect x="230" y="50" width="60" height="60" fill-opacity="-10.0" fill="#0000FF" stroke="black"/>
+ <rect x="260" y="80" width="60" height="60" fill-opacity="-0.1" fill="#0000FF" stroke="black"/>
+ <rect x="290" y="110" width="60" height="60" fill-opacity="1.1" fill="#0000FF" stroke="black"/>
+ <rect x="320" y="140" width="60" height="60" fill-opacity="10.0" fill="#0000FF" stroke="black"/>
+ <rect x="350" y="170" width="60" height="60" fill-opacity="100.0" fill="#0000FF" stroke="black"/>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-01-f-isvalid.html
new file mode 100644
index 0000000000..9ae06cc9fe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-01-f-isvalid.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-marker-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-marker-01-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-marker-01-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <!-- ===================================================================== -->
+ <!-- Define a few simple marker elements -->
+ <!-- ===================================================================== -->
+ <marker id="marker1" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="5" refY="5" markerUnits="strokeWidth">
+ <rect width="10" height="10" fill="purple" stroke="none"/>
+ </marker>
+ <marker id="marker2" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="5" refY="5" markerUnits="strokeWidth" orient="auto">
+ <path d="M 5 0 L 10 10 L 0 10 Z" fill="blue" stroke="none"/>
+ </marker>
+ <marker id="markerStart" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="5" refY="5" markerUnits="strokeWidth">
+ <rect width="10" height="10" fill="purple" stroke="none"/>
+ </marker>
+ <marker id="markerMiddle" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="5" refY="5" markerUnits="strokeWidth">
+ <circle cx="5" cy="5" r="5" fill="green" stroke="none"/>
+ </marker>
+ <marker id="markerEnd" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="5" refY="5" markerUnits="strokeWidth">
+ <path d="M 5 0 L 10 10 L 0 10 Z" fill="blue" stroke="none"/>
+ </marker>
+ </defs>
+ <!-- ===================================================================== -->
+ <!-- Basic Marker Test -->
+ <!-- ===================================================================== -->
+ <text x="170" y="30" font-size="14">Basic Markers</text>
+ <path fill="none" stroke="black" stroke-width="8" marker-start="url(#marker1)" marker-mid="url(#marker1)" marker-end="url(#marker1)" d="M 130 40 L 180 40 L 180 90"/>
+ <!-- ===================================================================== -->
+ <!-- Generate the equivalent SVG -->
+ <!-- ===================================================================== -->
+ <g transform="translate(120,0)">
+ <path fill="none" stroke="black" stroke-width="8" d="M 130 40 L 180 40 L 180 90"/>
+ <g transform="translate(130,40) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <rect width="10" height="10" fill="purple" stroke="none"/>
+ </g>
+ <g transform="translate(180,40) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <rect width="10" height="10" fill="purple" stroke="none"/>
+ </g>
+ <g transform="translate(180,90) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <rect width="10" height="10" fill="purple" stroke="none"/>
+ </g>
+ </g>
+ <!-- ===================================================================== -->
+ <!-- Start, Middle and End Marker Test -->
+ <!-- ===================================================================== -->
+ <text x="145" y="125" font-size="14">Start, Middle and End</text>
+ <path fill="none" stroke="black" stroke-width="8" marker-start="url(#markerStart)" marker-mid="url(#markerMiddle)" marker-end="url(#markerEnd)" d="M 130 135 L 180 135 L 180 185"/>
+ <!-- ===================================================================== -->
+ <!-- Generate the equivalent SVG -->
+ <!-- ===================================================================== -->
+ <g transform="translate(120,0)">
+ <path fill="none" stroke="black" stroke-width="8" d="M 130 135 L 180 135 L 180 185"/>
+ <g transform="translate(130,135) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <rect width="10" height="10" fill="purple" stroke="none"/>
+ </g>
+ <g transform="translate(180,135) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <circle cx="5" cy="5" r="5" fill="green" stroke="none"/>
+ </g>
+ <g transform="translate(180,185) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <path d="M 5 0 L 10 10 L 0 10 Z" fill="blue" stroke="none"/>
+ </g>
+ </g>
+ <!-- ===================================================================== -->
+ <!-- Auto Orientation Marker Test -->
+ <!-- ===================================================================== -->
+ <text x="145" y="220" font-size="14">Automatic Orientation</text>
+ <path fill="none" stroke="black" stroke-width="8" marker-start="url(#marker2)" marker-mid="url(#marker2)" marker-end="url(#marker2)" d="M 130 230 L 180 230 L 180 280"/>
+ <!-- ===================================================================== -->
+ <!-- Generate the equivalent SVG -->
+ <!-- ===================================================================== -->
+ <g transform="translate(120,0)">
+ <path fill="none" stroke="black" stroke-width="8" d="M 130 230 L 180 230 L 180 280"/>
+ <g transform="translate(130,230) rotate(0) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <path d="M 5 0 L 10 10 L 0 10 Z" fill="blue" stroke="none"/>
+ </g>
+ <g transform="translate(180,230) rotate(45) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <path d="M 5 0 L 10 10 L 0 10 Z" fill="blue" stroke="none"/>
+ </g>
+ <g transform="translate(180,280) rotate(90) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <path d="M 5 0 L 10 10 L 0 10 Z" fill="blue" stroke="none"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-02-f-isvalid.html
new file mode 100644
index 0000000000..2aee588474
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-02-f-isvalid.html
@@ -0,0 +1,212 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-marker-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-marker-02-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-marker-02-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <clipPath id="overflowHiddenClip1" clipPathUnits="userSpaceOnUse">
+ <rect x="0" y="0" width="2" height="2"/>
+ </clipPath>
+ <clipPath id="overflowHiddenClip" clipPathUnits="userSpaceOnUse">
+ <rect x="0" y="0" width="4" height="4"/>
+ </clipPath>
+ </defs>
+ <g fill="green">
+ <text x="125" y="30" font-size="14" fill="black">Marker Rendering Properties</text>
+ <!-- ===================================================================== -->
+ <!-- Fill property -->
+ <!-- ===================================================================== -->
+ <g fill="black" stroke="none" stroke-width="8">
+ <marker id="marker1" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="5" refY="5" markerUnits="strokeWidth">
+ <rect width="10" height="10"/>
+ </marker>
+ <text x="100" y="140" font-size="10" fill="black" stroke="none">Fill Property</text>
+ <path marker-start="url(#marker1)" marker-mid="url(#marker1)" marker-end="url(#marker1)" d="M 30 60 L 80 60 L 80 110 Z"/>
+ <!-- ===================================================================== -->
+ <!-- Generate the equivalent SVG -->
+ <!-- ===================================================================== -->
+ <g transform="translate(120,0)">
+ <path d="M 30 60 L 80 60 L 80 110 Z"/>
+ <g transform="translate(30,60) scale(8) translate(-1, -1)">
+ <g clip-path="url(#overflowHiddenClip1)">
+ <g transform="scale(0.2, 0.2)">
+ <rect width="10" height="10"/>
+ </g>
+ </g>
+ </g>
+ <g transform="translate(80,60) scale(8) translate(-1, -1)">
+ <g clip-path="url(#overflowHiddenClip1)">
+ <g transform="scale(0.2, 0.2)">
+ <rect width="10" height="10"/>
+ </g>
+ </g>
+ </g>
+ <g transform="translate(80,110) scale(8) translate(-1, -1)">
+ <g clip-path="url(#overflowHiddenClip1)">
+ <g transform="scale(0.2, 0.2)">
+ <rect width="10" height="10"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <!-- ===================================================================== -->
+ <!-- Stroke property -->
+ <!-- ===================================================================== -->
+ <g fill="none" stroke="black" stroke-width="4">
+ <marker id="marker2" viewBox="0 0 20 20" markerWidth="4" markerHeight="4" refX="10" refY="10" markerUnits="strokeWidth">
+ <rect width="20" height="20"/>
+ </marker>
+ <text x="340" y="140" font-size="10" fill="black" stroke="none">Stroke Property</text>
+ <path marker-start="url(#marker2)" marker-mid="url(#marker2)" marker-end="url(#marker2)" d="M 270 60 L 320 60 L 320 110 Z"/>
+ <!-- ===================================================================== -->
+ <!-- Generate the equivalent SVG -->
+ <!-- ===================================================================== -->
+ <g transform="translate(120,0)">
+ <path d="M 270 60 L 320 60 L 320 110 Z"/>
+ <!-- ===================================================================== -->
+ <!-- Generate the equivalent SVG -->
+ <!-- ===================================================================== -->
+ <g transform="translate(270,60) scale(4) translate(-2, -2)">
+ <g clip-path="url(#overflowHiddenClip)">
+ <g transform="scale(0.2, 0.2)">
+ <rect width="20" height="20"/>
+ </g>
+ </g>
+ </g>
+ <g transform="translate(320,60) scale(4) translate(-2, -2)">
+ <g clip-path="url(#overflowHiddenClip)">
+ <g transform="scale(0.2, 0.2)">
+ <rect width="20" height="20"/>
+ </g>
+ </g>
+ </g>
+ <g transform="translate(320, 110) scale(4) translate(-2, -2)">
+ <g clip-path="url(#overflowHiddenClip)">
+ <g transform="scale(0.2, 0.2)">
+ <rect width="20" height="20"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <!-- ===================================================================== -->
+ <!-- Define marker element with parents setting painting properties -->
+ <!-- ===================================================================== -->
+ <g fill="green" stroke="blue" stroke-width="8">
+ <marker id="marker3" viewBox="0 0 20 20" markerWidth="4" markerHeight="4" refX="10" refY="10" markerUnits="strokeWidth">
+ <rect width="20" height="20" stroke="black"/>
+ </marker>
+ <marker id="marker4" viewBox="0 0 10 10" markerWidth="4" markerHeight="4" refX="5" refY="5" markerUnits="strokeWidth">
+ <rect width="10" height="10" fill="black" stroke-width="4"/>
+ </marker>
+ </g>
+ <!-- ===================================================================== -->
+ <!-- Parent and specified properties -->
+ <!-- ===================================================================== -->
+ <g fill="orange" stroke="blue">
+ <text x="90" y="270" font-size="10" fill="black" stroke="none">Mixed Properties</text>
+ <path stroke="purple" stroke-width="4" marker-start="url(#marker3)" marker-mid="url(#marker3)" marker-end="url(#marker3)" d="M 30 190 L 80 190 L 80 240 Z"/>
+ <!-- ===================================================================== -->
+ <!-- Generate the equivalent SVG -->
+ <!-- ===================================================================== -->
+ <g transform="translate(120,0)">
+ <path stroke="purple" stroke-width="4" d="M 30 190 L 80 190 L 80 240 Z"/>
+ <g fill="green" stroke="black" stroke-width="8">
+ <g transform="translate(30,190) scale(4) translate(-2, -2)">
+ <g clip-path="url(#overflowHiddenClip)">
+ <g transform="scale(.2, .2)">
+ <rect width="20" height="20"/>
+ </g>
+ </g>
+ </g>
+ <g transform="translate(80,190) scale(4) translate(-2, -2)">
+ <g clip-path="url(#overflowHiddenClip)">
+ <g transform="scale(0.2, 0.2)">
+ <rect width="20" height="20"/>
+ </g>
+ </g>
+ </g>
+ <g transform="translate(80,240) scale(4) translate(-2, -2)">
+ <g clip-path="url(#overflowHiddenClip)">
+ <g transform="scale(0.2, 0.2)">
+ <rect width="20" height="20"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g fill="orange" stroke="green">
+ <text x="340" y="270" font-size="10" fill="black" stroke="none">Mixed Properties</text>
+ <path stroke="purple" stroke-width="4" marker-start="url(#marker4)" marker-mid="url(#marker4)" marker-end="url(#marker4)" d="M 270 190 L 320 190 L 320 240 Z"/>
+ <!-- ===================================================================== -->
+ <!-- Generate the equivalent SVG -->
+ <!-- ===================================================================== -->
+ <g transform="translate(120,0)">
+ <path stroke="purple" stroke-width="4" d="M 270 190 L 320 190 L 320 240 Z"/>
+ <g fill="black" stroke="blue" stroke-width="4">
+ <g transform="translate(270,190) scale(4) translate(-2, -2)">
+ <g clip-path="url(#overflowHiddenClip)">
+ <g transform="scale(0.4, 0.4)">
+ <rect width="10" height="10"/>
+ </g>
+ </g>
+ </g>
+ <g transform="translate(320,190) scale(4) translate(-2, -2)">
+ <g clip-path="url(#overflowHiddenClip)">
+ <g transform="scale(0.4, 0.4)">
+ <rect width="10" height="10"/>
+ </g>
+ </g>
+ </g>
+ <g transform="translate(320,240) scale(4) translate(-2, -2)">
+ <g clip-path="url(#overflowHiddenClip)">
+ <g transform="scale(0.4, 0.4)">
+ <rect width="10" height="10"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-03-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-03-f-isvalid.html
new file mode 100644
index 0000000000..27d15960c4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-03-f-isvalid.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-marker-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-marker-03-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-marker-03-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <marker id="marker1" markerUnits="strokeWidth" refX="50" refY="50" markerWidth="5" markerHeight="5" viewBox="0 0 100 100">
+ <rect width="100" height="100" fill="royalblue" stroke="none"/>
+ </marker>
+ <marker id="marker2" markerUnits="strokeWidth" refX="100" refY="100" markerWidth="15" markerHeight="15" viewBox="0 0 200 200">
+ <rect width="200" height="200" fill="red" stroke="none"/>
+ </marker>
+ <style>
+ #markme { marker: url(#marker1) }
+ </style>
+ </defs>
+
+ <text font-size="20" x="240" y="28" text-anchor="middle">'marker' property test</text>
+
+ <text font-size="20" x="240" y="70" text-anchor="middle" fill="forestgreen">'marker' property</text>
+ <g fill="gold" stroke="black" fill-rule="evenodd" transform="translate(50,20)" id="markme">
+ <path d="M10,60 Q90,60 90,140 Q10,140 10,60 Z M10,140 Q10,60 90,60 Q90,140 10,140 Z M50,70 L80,100 50,130 20,100 Z"/>
+ <polygon points="100,60 120,140 140,60 160,140 180,60 180,100 100,100"/>
+ <polyline points="190,60 210,140 230,60 250,140 270,60 270,100 190,100"/>
+ <line x1="280" x2="370" y1="60" y2="140"/>
+ <line x1="370" x2="280" y1="60" y2="140"/>
+ </g>
+
+ <text font-size="20" x="240" y="200" text-anchor="middle" fill="forestgreen">'marker-start', 'marker-mid' &amp; 'marker-end' attribute</text>
+ <g marker-mid="url(#marker1)" marker-end="url(#marker1)" marker-start="url(#marker1)" fill="gold" stroke="black" fill-rule="evenodd" transform="translate(50,150)">
+ <path d="M10,60 Q90,60 90,140 Q10,140 10,60 Z M10,140 Q10,60 90,60 Q90,140 10,140 Z M50,70 L80,100 50,130 20,100 Z"/>
+ <polygon points="100,60 120,140 140,60 160,140 180,60 180,100 100,100"/>
+ <polyline points="190,60 210,140 230,60 250,140 270,60 270,100 190,100"/>
+ <line x1="280" x2="370" y1="60" y2="140"/>
+ <line x1="370" x2="280" y1="60" y2="140"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-04-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-04-f-novalid.html
new file mode 100644
index 0000000000..c250a36dd7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-04-f-novalid.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-marker-04-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-marker-04-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-marker-04-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <marker id="marker1" markerUnits="strokeWidth" refX="50" refY="50" markerWidth="5" markerHeight="5" viewBox="0 0 100 100">
+ <rect width="100" height="100" fill="royalblue" stroke="none"/>
+ </marker>
+ <marker id="marker2" markerUnits="strokeWidth" refX="100" refY="100" markerWidth="15" markerHeight="15" viewBox="0 0 200 200">
+ <rect width="200" height="200" fill="red" stroke="none"/>
+ </marker>
+ </defs>
+
+ <text font-size="20" x="240" y="28" text-anchor="middle">'marker' attribute test</text>
+
+ <text font-size="20" x="240" y="70" text-anchor="middle" fill="forestgreen">'marker' attribute</text>
+ <g marker="url(#marker2)" fill="gold" stroke="black" fill-rule="evenodd" transform="translate(50,20)" id="markme">
+ <path d="M10,60 Q90,60 90,140 Q10,140 10,60 Z M10,140 Q10,60 90,60 Q90,140 10,140 Z M50,70 L80,100 50,130 20,100 Z"/>
+ <polygon points="100,60 120,140 140,60 160,140 180,60 180,100 100,100"/>
+ <polyline points="190,60 210,140 230,60 250,140 270,60 270,100 190,100"/>
+ <line x1="280" x2="370" y1="60" y2="140"/>
+ <line x1="370" x2="280" y1="60" y2="140"/>
+ </g>
+
+ <text font-size="20" x="240" y="200" text-anchor="middle" fill="forestgreen">'marker-start', 'marker-mid' &amp; 'marker-end' attributes</text>
+ <g marker-mid="url(#marker1)" marker-end="url(#marker1)" marker-start="url(#marker1)" fill="gold" stroke="black" fill-rule="evenodd" transform="translate(50,150)">
+ <path d="M10,60 Q90,60 90,140 Q10,140 10,60 Z M10,140 Q10,60 90,60 Q90,140 10,140 Z M50,70 L80,100 50,130 20,100 Z"/>
+ <polygon points="100,60 120,140 140,60 160,140 180,60 180,100 100,100"/>
+ <polyline points="190,60 210,140 230,60 250,140 270,60 270,100 190,100"/>
+ <line x1="280" x2="370" y1="60" y2="140"/>
+ <line x1="370" x2="280" y1="60" y2="140"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-05-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-05-f-isvalid.html
new file mode 100644
index 0000000000..08a85a7695
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-05-f-isvalid.html
@@ -0,0 +1,221 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-marker-05-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-marker-05-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-marker-05-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <marker id="marker1" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="7.5" refY="7.5" markerUnits="strokeWidth">
+ <rect width="15" height="15" fill="purple" stroke="none"/>
+ </marker>
+ <marker id="marker2" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="10" refY="10" markerUnits="strokeWidth" orient="auto">
+ <path d="M 10 0 L 20 20 L 0 20 Z" fill="blue" stroke="none"/>
+ </marker>
+ <marker id="markerStart" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="7.5" refY="7.5" markerUnits="strokeWidth">
+ <rect width="15" height="15" fill="purple" stroke="none"/>
+ </marker>
+ <marker id="markerMiddle" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="5" refY="5" markerUnits="strokeWidth">
+ <circle cx="5" cy="5" r="7" fill="green" stroke="none"/>
+ </marker>
+ <marker id="markerEnd" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="10" refY="10" markerUnits="strokeWidth">
+ <path d="M 10 0 L 20 20 L 0 20 Z" fill="blue" stroke="none"/>
+ </marker>
+
+ <marker id="vmarker1" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="7.5" refY="7.5" markerUnits="strokeWidth" overflow="visible">
+ <rect width="15" height="15" fill="purple" stroke="none"/>
+ </marker>
+ <marker id="vmarker2" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="10" refY="10" markerUnits="strokeWidth" orient="auto" overflow="visible">
+ <path d="M 10 0 L 20 20 L 0 20 Z" fill="blue" stroke="none"/>
+ </marker>
+ <marker id="vmarkerStart" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="7.5" refY="7.5" markerUnits="strokeWidth" overflow="visible">
+ <rect width="15" height="15" fill="purple" stroke="none"/>
+ </marker>
+ <marker id="vmarkerMiddle" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="5" refY="5" markerUnits="strokeWidth" overflow="visible">
+ <circle cx="5" cy="5" r="7" fill="green" stroke="none"/>
+ </marker>
+ <marker id="vmarkerEnd" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="10" refY="10" markerUnits="strokeWidth" overflow="visible">
+ <path d="M 10 0 L 20 20 L 0 20 Z" fill="blue" stroke="none"/>
+ </marker>
+
+ <marker id="amarker1" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="7.5" refY="7.5" markerUnits="strokeWidth" overflow="auto">
+ <rect width="15" height="15" fill="purple" stroke="none"/>
+ </marker>
+ <marker id="amarker2" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="10" refY="10" markerUnits="strokeWidth" orient="auto" overflow="auto">
+ <path d="M 10 0 L 20 20 L 0 20 Z" fill="blue" stroke="none"/>
+ </marker>
+ <marker id="amarkerStart" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="7.5" refY="7.5" markerUnits="strokeWidth" overflow="auto">
+ <rect width="15" height="15" fill="purple" stroke="none"/>
+ </marker>
+ <marker id="amarkerMiddle" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="5" refY="5" markerUnits="strokeWidth" overflow="auto">
+ <circle cx="5" cy="5" r="7" fill="green" stroke="none"/>
+ </marker>
+ <marker id="amarkerEnd" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="10" refY="10" markerUnits="strokeWidth" overflow="auto">
+ <path d="M 10 0 L 20 20 L 0 20 Z" fill="blue" stroke="none"/>
+ </marker>
+
+ <marker id="smarker1" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="7.5" refY="7.5" markerUnits="strokeWidth" overflow="scroll">
+ <rect width="15" height="15" fill="purple" stroke="none"/>
+ </marker>
+ <marker id="smarker2" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="10" refY="10" markerUnits="strokeWidth" orient="auto" overflow="scroll">
+ <path d="M 10 0 L 20 20 L 0 20 Z" fill="blue" stroke="none"/>
+ </marker>
+ <marker id="smarkerStart" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="7.5" refY="7.5" markerUnits="strokeWidth" overflow="scroll">
+ <rect width="15" height="15" fill="purple" stroke="none"/>
+ </marker>
+ <marker id="smarkerMiddle" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="5" refY="5" markerUnits="strokeWidth" overflow="scroll">
+ <circle cx="5" cy="5" r="7" fill="green" stroke="none"/>
+ </marker>
+ <marker id="smarkerEnd" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="10" refY="10" markerUnits="strokeWidth" overflow="scroll">
+ <path d="M 10 0 L 20 20 L 0 20 Z" fill="blue" stroke="none"/>
+ </marker>
+
+ <marker id="hmarker1" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="7.5" refY="7.5" markerUnits="strokeWidth" overflow="hidden">
+ <rect width="15" height="15" fill="purple" stroke="none"/>
+ </marker>
+ <marker id="hmarker2" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="10" refY="10" markerUnits="strokeWidth" orient="auto" overflow="hidden">
+ <path d="M 10 0 L 20 20 L 0 20 Z" fill="blue" stroke="none"/>
+ </marker>
+ <marker id="hmarkerStart" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="7.5" refY="7.5" markerUnits="strokeWidth" overflow="hidden">
+ <rect width="15" height="15" fill="purple" stroke="none"/>
+ </marker>
+ <marker id="hmarkerMiddle" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="5" refY="5" markerUnits="strokeWidth" overflow="hidden">
+ <circle cx="5" cy="5" r="7" fill="green" stroke="none"/>
+ </marker>
+ <marker id="hmarkerEnd" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="10" refY="10" markerUnits="strokeWidth" overflow="hidden">
+ <path d="M 10 0 L 20 20 L 0 20 Z" fill="blue" stroke="none"/>
+ </marker>
+ </defs>
+
+ <style>
+ .testpaths {
+ fill:none;
+ stroke:black;
+ stroke-width:8px;
+ }
+
+ /* no overflow specified */
+ #p1 { marker: url(#marker1); }
+ #p2 {
+ marker-start: url(#markerStart);
+ marker-mid:url(#markerMiddle);
+ marker-end: url(#markerEnd);
+ }
+ #p3 { marker: url(#marker2); }
+
+ /* overflow = visible */
+ #p4 { marker: url(#vmarker1); }
+ #p5 {
+ marker-start: url(#vmarkerStart);
+ marker-mid:url(#vmarkerMiddle);
+ marker-end: url(#vmarkerEnd);
+ }
+ #p6 { marker: url(#vmarker2); }
+
+ /* overflow = auto */
+ #p7 { marker: url(#amarker1); }
+ #p8 {
+ marker-start: url(#amarkerStart);
+ marker-mid:url(#amarkerMiddle);
+ marker-end: url(#amarkerEnd);
+ }
+ #p9 { marker: url(#amarker2); }
+
+ /* overflow = scroll */
+ #p10 { marker: url(#smarker1); }
+ #p11 {
+ marker-start: url(#smarkerStart);
+ marker-mid:url(#smarkerMiddle);
+ marker-end: url(#smarkerEnd);
+ }
+ #p12 { marker: url(#smarker2); }
+
+ /* overflow = hidden */
+ #p13 { marker: url(#hmarker1); }
+ #p14 {
+ marker-start: url(#hmarkerStart);
+ marker-mid:url(#hmarkerMiddle);
+ marker-end: url(#hmarkerEnd);
+ }
+ #p15 { marker: url(#hmarker2); }
+ </style>
+
+ <text x="50%" y="3em" style="font: 18px SVGFreeSansASCII,sans-serif; text-anchor:middle;">Test marker overflow</text>
+
+ <g style="font: 14px SVGFreeSansASCII,sans-serif; text-anchor:middle" transform="translate(0,280)">
+ <text x="60">default</text>
+ <text x="155">'visible'</text>
+ <text x="245">'auto'</text>
+ <text x="340">'scroll'</text>
+ <text x="430">'hidden'</text>
+ </g>
+
+ <g transform="translate(-30,75)">
+
+ <g id="subtest1" transform="scale(0.6)">
+ <path id="p1" class="testpaths" d="M 130 40 L 180 40 L 180 90"/>
+ <path id="p2" class="testpaths" d="M 130 135 L 180 135 L 180 185"/>
+ <path id="p3" class="testpaths" d="M 130 230 L 180 230 L 180 280"/>
+ </g>
+
+ <g id="subtest2" transform="scale(0.6) translate(150,0)">
+ <path id="p4" class="testpaths" d="M 130 40 L 180 40 L 180 90"/>
+ <path id="p5" class="testpaths" d="M 130 135 L 180 135 L 180 185"/>
+ <path id="p6" class="testpaths" d="M 130 230 L 180 230 L 180 280"/>
+ </g>
+
+ <g id="subtest3" transform="scale(0.6) translate(300,0)">
+ <path id="p7" class="testpaths" d="M 130 40 L 180 40 L 180 90"/>
+ <path id="p8" class="testpaths" d="M 130 135 L 180 135 L 180 185"/>
+ <path id="p9" class="testpaths" d="M 130 230 L 180 230 L 180 280"/>
+ </g>
+
+ <g id="subtest4" transform="scale(0.6) translate(450,0)">
+ <path id="p10" class="testpaths" d="M 130 40 L 180 40 L 180 90"/>
+ <path id="p11" class="testpaths" d="M 130 135 L 180 135 L 180 185"/>
+ <path id="p12" class="testpaths" d="M 130 230 L 180 230 L 180 280"/>
+ </g>
+
+ <g id="subtest5" transform="scale(0.6) translate(600,0)">
+ <path id="p13" class="testpaths" d="M 130 40 L 180 40 L 180 90"/>
+ <path id="p14" class="testpaths" d="M 130 135 L 180 135 L 180 185"/>
+ <path id="p15" class="testpaths" d="M 130 230 L 180 230 L 180 280"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-06-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-06-f-isvalid.html
new file mode 100644
index 0000000000..8f273c05c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-06-f-isvalid.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-marker-06-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-marker-06-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-marker-06-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <!-- ===================================================================== -->
+ <!-- Define a few simple marker elements -->
+ <!-- ===================================================================== -->
+ <marker id="marker1" viewBox="20 20 10 10" markerWidth="2" markerHeight="2" refX="25" refY="25" markerUnits="strokeWidth">
+ <rect x="20" y="20" width="10" height="10" fill="purple" stroke="none"/>
+ </marker>
+ <marker id="marker2" viewBox="-5 -5 10 10" markerWidth="2" markerHeight="2" markerUnits="strokeWidth" orient="auto">
+ <path d="M 0 -5 L 5 5 L -5 5 Z" fill="blue" stroke="none"/>
+ </marker>
+ <marker id="markerStart" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="5" refY="5" markerUnits="strokeWidth">
+ <rect width="10" height="10" fill="purple" stroke="none"/>
+ </marker>
+ <marker id="markerMiddle" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="5" refY="5" markerUnits="strokeWidth">
+ <circle cx="5" cy="5" r="5" fill="green" stroke="none"/>
+ </marker>
+ <marker id="markerEnd" viewBox="0 0 10 10" markerWidth="2" markerHeight="2" refX="5" refY="5" markerUnits="strokeWidth">
+ <path d="M 5 0 L 10 10 L 0 10 Z" fill="blue" stroke="none"/>
+ </marker>
+ </defs>
+ <!-- ===================================================================== -->
+ <!-- Basic Marker Test -->
+ <!-- ===================================================================== -->
+ <text x="170" y="30" font-size="14">Basic Markers</text>
+ <path fill="none" stroke="black" stroke-width="8" marker-start="url(#marker1)" marker-mid="url(#marker1)" marker-end="url(#marker1)" d="M 130 40 L 180 40 L 180 90"/>
+ <!-- ===================================================================== -->
+ <!-- Generate the equivalent SVG -->
+ <!-- ===================================================================== -->
+ <g transform="translate(120,0)">
+ <path fill="none" stroke="black" stroke-width="8" d="M 130 40 L 180 40 L 180 90"/>
+ <g transform="translate(130,40) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <rect width="10" height="10" fill="purple" stroke="none"/>
+ </g>
+ <g transform="translate(180,40) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <rect width="10" height="10" fill="purple" stroke="none"/>
+ </g>
+ <g transform="translate(180,90) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <rect width="10" height="10" fill="purple" stroke="none"/>
+ </g>
+ </g>
+ <!-- ===================================================================== -->
+ <!-- Start, Middle and End Marker Test -->
+ <!-- ===================================================================== -->
+ <text x="145" y="125" font-size="14">Start, Middle and End</text>
+ <path fill="none" stroke="black" stroke-width="8" marker-start="url(#markerStart)" marker-mid="url(#markerMiddle)" marker-end="url(#markerEnd)" d="M 130 135 L 180 135 L 180 185"/>
+ <!-- ===================================================================== -->
+ <!-- Generate the equivalent SVG -->
+ <!-- ===================================================================== -->
+ <g transform="translate(120,0)">
+ <path fill="none" stroke="black" stroke-width="8" d="M 130 135 L 180 135 L 180 185"/>
+ <g transform="translate(130,135) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <rect width="10" height="10" fill="purple" stroke="none"/>
+ </g>
+ <g transform="translate(180,135) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <circle cx="5" cy="5" r="5" fill="green" stroke="none"/>
+ </g>
+ <g transform="translate(180,185) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <path d="M 5 0 L 10 10 L 0 10 Z" fill="blue" stroke="none"/>
+ </g>
+ </g>
+ <!-- ===================================================================== -->
+ <!-- Auto Orientation Marker Test -->
+ <!-- ===================================================================== -->
+ <text x="145" y="220" font-size="14">Automatic Orientation</text>
+ <path fill="none" stroke="black" stroke-width="8" marker-start="url(#marker2)" marker-mid="url(#marker2)" marker-end="url(#marker2)" d="M 130 230 L 180 230 L 180 280"/>
+ <!-- ===================================================================== -->
+ <!-- Generate the equivalent SVG -->
+ <!-- ===================================================================== -->
+ <g transform="translate(120,0)">
+ <path fill="none" stroke="black" stroke-width="8" d="M 130 230 L 180 230 L 180 280"/>
+ <g transform="translate(130,230) rotate(0) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <path d="M 5 0 L 10 10 L 0 10 Z" fill="blue" stroke="none"/>
+ </g>
+ <g transform="translate(180,230) rotate(45) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <path d="M 5 0 L 10 10 L 0 10 Z" fill="blue" stroke="none"/>
+ </g>
+ <g transform="translate(180,280) rotate(90) scale(8) scale(0.2, 0.2) translate(-5, -5)" fill="none" stroke="black" stroke-width="8">
+ <path d="M 5 0 L 10 10 L 0 10 Z" fill="blue" stroke="none"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-07-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-07-f-isvalid.html
new file mode 100644
index 0000000000..c389e9b332
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-07-f-isvalid.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-marker-07-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-marker-07-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-marker-07-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <marker id="testMarker" markerWidth="100" markerHeight="100" display="none">
+ <path d="M 0 0 L 200 200 L 0 150 z" fill="green" />
+ </marker>
+ <g display="none">
+ <marker id="testMarker2" markerWidth="100" markerHeight="100">
+ <path d="M 0 0 L 200 200 L 0 150 z" fill="green" />
+ </marker>
+ </g>
+ </defs>
+ <path d="M 0 0 L 25 25" marker-end="url(#testMarker)" />
+ <path d="M 100 0 L 125 25" marker-end="url(#testMarker2)" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-properties-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-properties-01-f-isvalid.html
new file mode 100644
index 0000000000..52a4b4ac2a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-marker-properties-01-f-isvalid.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-marker-properties-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-marker-properties-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <style><![CDATA[
+ .start
+ {
+ marker-start: url(#markerTest);
+ }
+ .end
+ {
+ marker-end: url(#markerTest);
+ }
+ .mid
+ {
+ marker-mid: url(#markerTest);
+ }]]>
+ </style>
+ <defs>
+ <marker id="markerTest" markerWidth="100" markerHeight="100" fill="blue">
+ <rect width="50" height="55" />
+ </marker>
+ </defs>
+ <rect width="50" height="55" fill="blue" />
+ <line class="start" y1="50" x2="100" y2="50" stroke="none" />
+ <path class="start" d="M 0 100 L 50 100 L 100 100" />
+ <polygon class="start" points="0,150 50,150 100,150" />
+ <polyline class="start" points="0,200 50,200 100,200" />
+ <rect y="250" width="50" height="50" fill="blue" />
+
+ <rect x="250" width="50" height="55" fill="blue" />
+ <line class="end" x1="150" y1="50" x2="250" y2="50" stroke="none" />
+ <path class="end" d="M 150 100 L 200 100 L 250 100" />
+ <polygon class="end" points="250,150 200,150" />
+ <polyline class="end" points="150,200 200,200 250,200" />
+ <rect x="250" y="250" width="50" height="50" fill="blue" />
+
+ <rect x="350" width="50" height="105" fill="blue" />
+ <path class="mid" d="M 300 100 L 350 100 L 400 100" />
+ <polygon class="mid" points="300,150 350,150" />
+ <polyline class="mid" points="300,200 350,200 400,200" />
+ <rect x="350" y="250" width="50" height="50" fill="blue" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-render-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-render-01-b-isvalid.html
new file mode 100644
index 0000000000..1b336f2610
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-render-01-b-isvalid.html
@@ -0,0 +1,128 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-render-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-render-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-render-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <linearGradient id="gradientDefault" gradientUnits="objectBoundingBox">
+ <stop offset="0" stop-color="white"/>
+ <stop offset=".33" stop-color="blue"/>
+ <stop offset=".66" stop-color="red"/>
+ <stop offset="1" stop-color="yellow"/>
+ </linearGradient>
+ <linearGradient id="gradientSRGB" gradientUnits="objectBoundingBox" color-interpolation="sRGB">
+ <stop offset="0" stop-color="white"/>
+ <stop offset=".33" stop-color="blue"/>
+ <stop offset=".66" stop-color="red"/>
+ <stop offset="1" stop-color="yellow"/>
+ </linearGradient>
+ <linearGradient id="gradientLinearRGB" gradientUnits="objectBoundingBox" color-interpolation="linearRGB">
+ <stop offset="0" stop-color="white"/>
+ <stop offset=".33" stop-color="blue"/>
+ <stop offset=".66" stop-color="red"/>
+ <stop offset="1" stop-color="yellow"/>
+ </linearGradient>
+ </defs>
+ <text font-size="22" text-anchor="middle" x="225" y="30">Basic test of color-interpolation property.</text>
+ <!-- ====================================== -->
+ <!-- Default color-interpolation (sRGB) -->
+ <!-- ====================================== -->
+ <g transform="translate(40, 80)">
+ <rect x="0" y="0" width="300" height="40" fill="url(#gradientDefault)" stroke="black"/>
+ <circle cx="0" cy="-10" r="3" fill="white" stroke="black"/>
+ <line x1="0" y1="-7" x2="0" y2="40" stroke="black"/>
+ <rect x="48" y="18" width="4" height="4" fill="rgb(128, 128, 255)" stroke="black"/>
+ <line x1="50" y1="15" x2="50" y2="25" stroke="rgb(128, 128, 255)"/>
+ <circle cx="100" cy="-10" r="3" fill="blue" stroke="black"/>
+ <line x1="0" y1="-7" x2="0" y2="40" stroke="black" transform="translate(100, 0)"/>
+ <rect x="148" y="18" width="4" height="4" fill="rgb(128, 0, 128)" stroke="black"/>
+ <line x1="150" y1="15" x2="150" y2="25" stroke="rgb(128, 0, 128)"/>
+ <circle cx="200" cy="-10" r="3" fill="red" stroke="black"/>
+ <line x1="0" y1="-7" x2="0" y2="40" stroke="black" transform="translate(200, 0)"/>
+ <rect x="248" y="18" width="4" height="4" fill="rgb(255, 128, 0)" stroke="black"/>
+ <line x1="250" y1="15" x2="250" y2="25" stroke="rgb(255, 128, 0)"/>
+ <circle cx="300" cy="-10" r="3" fill="yellow" stroke="black"/>
+ <line x1="0" y1="-7" x2="0" y2="40" stroke="black" transform="translate(300, 0)"/>
+ <text x="310" y="20" font-size="16">default (sRGB)</text>
+ </g>
+ <!-- ====================================== -->
+ <!-- sRGB color-interpolation -->
+ <!-- ====================================== -->
+ <g transform="translate(40, 160)">
+ <rect x="0" y="0" width="300" height="40" fill="url(#gradientSRGB)" stroke="black"/>
+ <circle cx="0" cy="-10" r="3" fill="white" stroke="black"/>
+ <line x1="0" y1="-7" x2="0" y2="40" stroke="black"/>
+ <rect x="48" y="18" width="4" height="4" fill="rgb(128, 128, 255)" stroke="black"/>
+ <line x1="50" y1="15" x2="50" y2="25" stroke="rgb(128, 128, 255)"/>
+ <circle cx="100" cy="-10" r="3" fill="blue" stroke="black"/>
+ <line x1="0" y1="-7" x2="0" y2="40" stroke="black" transform="translate(100, 0)"/>
+ <rect x="148" y="18" width="4" height="4" fill="rgb(128, 0, 128)" stroke="black"/>
+ <line x1="150" y1="15" x2="150" y2="25" stroke="rgb(128, 0, 128)"/>
+ <circle cx="200" cy="-10" r="3" fill="red" stroke="black"/>
+ <line x1="0" y1="-7" x2="0" y2="40" stroke="black" transform="translate(200, 0)"/>
+ <rect x="248" y="18" width="4" height="4" fill="rgb(255, 128, 0)" stroke="black"/>
+ <line x1="250" y1="15" x2="250" y2="25" stroke="rgb(255, 128, 0)"/>
+ <circle cx="300" cy="-10" r="3" fill="yellow" stroke="black"/>
+ <line x1="0" y1="-7" x2="0" y2="40" stroke="black" transform="translate(300, 0)"/>
+ <text x="310" y="20" font-size="16">sRGB</text>
+ </g>
+ <!-- ====================================== -->
+ <!-- linearRGB color-interpolation -->
+ <!-- ====================================== -->
+ <g transform="translate(40, 240)">
+ <rect x="0" y="0" width="300" height="40" fill="url(#gradientLinearRGB)" stroke="black"/>
+ <circle cx="0" cy="-10" r="3" fill="white" stroke="black"/>
+ <line x1="0" y1="-7" x2="0" y2="40" stroke="black"/>
+ <rect x="48" y="18" width="4" height="4" fill="rgb(128, 128, 255)" stroke="black"/>
+ <line x1="50" y1="15" x2="50" y2="25" stroke="rgb(128, 128, 255)"/>
+ <circle cx="100" cy="-10" r="3" fill="blue" stroke="black"/>
+ <line x1="0" y1="-7" x2="0" y2="40" stroke="black" transform="translate(100, 0)"/>
+ <rect x="148" y="18" width="4" height="4" fill="rgb(128, 0, 128)" stroke="black"/>
+ <line x1="150" y1="15" x2="150" y2="25" stroke="rgb(128, 0, 128)"/>
+ <circle cx="200" cy="-10" r="3" fill="red" stroke="black"/>
+ <line x1="0" y1="-7" x2="0" y2="40" stroke="black" transform="translate(200, 0)"/>
+ <rect x="248" y="18" width="4" height="4" fill="rgb(255, 128, 0)" stroke="black"/>
+ <line x1="250" y1="15" x2="250" y2="25" stroke="rgb(255, 128, 0)"/>
+ <circle cx="300" cy="-10" r="3" fill="yellow" stroke="black"/>
+ <line x1="0" y1="-7" x2="0" y2="40" stroke="black" transform="translate(300, 0)"/>
+ <text x="310" y="20" font-size="16">linearRGB</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-render-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-render-02-b-isvalid.html
new file mode 100644
index 0000000000..7c38d72e6f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-render-02-b-isvalid.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-render-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-render-02-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-render-02-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g transform='translate(90,10)'>
+ <rect y='100' width='300' height='200'/>
+ <g stroke='black' stroke-width='2'>
+ <rect width='150' height='100' fill='#7F7F7F'/>
+ <rect x='150' width='150' height='100' fill='#BBBBBB'/>
+ <g fill='white' fill-opacity='0.5'>
+ <rect y='100' width='100' height='100'/>
+ <g color-interpolation='linearRGB'>
+ <rect x='100' y='100' width='100' height='100' color-interpolation='linearRGB'/>
+ <rect x='200' y='100' width='100' height='100' color-interpolation='sRGB'/>
+ <rect y='200' width='150' height='100' color-interpolation='auto'/>
+ <rect x='150' y='200' width='150' height='100' color-interpolation='inherit'/>
+ </g>
+ </g>
+ </g>
+ <g text-anchor='middle' transform='translate(0,5)'>
+ <text x='75' y='50'>dark</text>
+ <text x='225' y='50'>light</text>
+ <text x='50' y='150'>dark</text>
+ <text x='150' y='150'>light</text>
+ <text x='250' y='150'>dark</text>
+ <text x='75' y='250'>dark or light</text>
+ <text x='225' y='250'>light</text>
+ </g>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-01-t-isvalid.html
new file mode 100644
index 0000000000..b117fc494c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-01-t-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-stroke-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-stroke-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-stroke-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ============================================================================= -->
+ <!-- Draw two simple rectangles. One without stroke other with stroke:green -->
+ <!-- ============================================================================= -->
+ <text font-size="36" x="10" y="40">Basic paint: stroke properties.</text>
+ <rect id="stroke-01" fill="blue" stroke="none" x="90" y="70" width="300" height="50"/>
+ <rect id="stroke-02" fill="blue" stroke-width="20" stroke="green" x="90" y="190" width="300" height="50"/>
+ <text font-size="30" x="140" y="150">stroke="none"</text>
+ <text font-size="30" x="148" y="280">stroke="green"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-02-t-isvalid.html
new file mode 100644
index 0000000000..823669d1a9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-02-t-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-stroke-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-stroke-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-stroke-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Set of rectangles with stroke-width:10 and stroke-linejoin:round-->
+ <!-- ====================================================================== -->
+ <text font-size="36" x="10" y="40">Basic paint: stroke properties.</text>
+ <rect id="stroke-01" fill="none" stroke="blue" stroke-width="20" x="90" y="70" width="300" height="50"/>
+ <rect id="stroke-02" fill="none" stroke="blue" stroke-width="20" stroke-linejoin="round" x="90" y="190" width="300" height="50"/>
+ <text font-size="40" x="120" y="160">stroke-width="20"</text>
+ <text font-size="40" x="58" y="290">stroke-linejoin="round"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-03-t-isvalid.html
new file mode 100644
index 0000000000..39a2f36306
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-03-t-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-stroke-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-stroke-03-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-stroke-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Test stroke-linecap:round and stroke-miterlimit:1 -->
+ <!-- ====================================================================== -->
+ <text font-size="36" x="10" y="40">Basic paint: stroke properties.</text>
+ <path fill="none" stroke="blue" stroke-width="30" stroke-linecap="round" d="M 160 70 l 200 20 l -200 20 "/>
+ <path fill="none" stroke="blue" stroke-width="30" stroke-linejoin="miter" stroke-miterlimit="1" d="M 160 190 l 200 20 l -200 20"/>
+ <text font-size="40" x="60" y="160">stroke-linecap="round"</text>
+ <text font-size="40" x="130" y="280">stroke-miterlimit="1"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-04-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-04-t-isvalid.html
new file mode 100644
index 0000000000..cf9b06fbc9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-04-t-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-stroke-04-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-stroke-04-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-stroke-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Test stroke-dasharray and stroke-dashoffset -->
+ <!-- ====================================================================== -->
+ <text font-size="36" x="10" y="60">Basic paint: stroke properties.</text>
+ <path id="stroke-7b" fill="none" stroke="blue" stroke-width="25" stroke-dashoffset="0" stroke-dasharray="10,10" d="M 50 120 L 430 120"/>
+ <path id="stroke-7c" fill="none" stroke="black" stroke-width="25" stroke-dashoffset="10" stroke-dasharray="10,10" d="M 50 140 L 430 140"/>
+ <text font-size="30" x="65" y="210">stroke-dasharray="10, 10"</text>
+ <text font-size="30" x="75" y="260">stroke-dashoffset="10"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-05-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-05-t-isvalid.html
new file mode 100644
index 0000000000..78ff685cf8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-05-t-isvalid.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-stroke-05-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-stroke-05-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" shape-rendering="geometricPrecision" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-stroke-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="20" x="240" y="30" text-anchor="middle">Rendering thin strokes</text>
+
+ <polyline points="030,50 030,300" stroke="black" stroke-width="0.001"/>
+ <polyline points="50,50 50,300" stroke="black" stroke-width="0.1"/>
+ <polyline points="70,50 70,300" stroke="black" stroke-width="0.2"/>
+ <polyline points="90,50 90,300" stroke="black" stroke-width="0.3"/>
+ <polyline points="110,50 110,300" stroke="black" stroke-width="0.4"/>
+ <polyline points="130,50 130,300" stroke="black" stroke-width="0.5"/>
+ <polyline points="150,50 150,300" stroke="black" stroke-width="0.6"/>
+ <polyline points="170,50 170,300" stroke="black" stroke-width="0.7"/>
+ <polyline points="190,50 190,300" stroke="black" stroke-width="0.8"/>
+ <polyline points="210,50 210,300" stroke="black" stroke-width="0.9"/>
+ <polyline points="230,50 230,300" stroke="black" stroke-width="1.0"/>
+ <polyline points="250,50 250,300" stroke="black" stroke-width="1.1"/>
+ <polyline points="270,50 270,300" stroke="black" stroke-width="1.2"/>
+ <polyline points="290,50 290,300" stroke="black" stroke-width="1.3"/>
+ <polyline points="310,50 310,300" stroke="black" stroke-width="1.4"/>
+ <polyline points="330,50 330,300" stroke="black" stroke-width="1.5"/>
+ <polyline points="350,50 350,300" stroke="black" stroke-width="1.6"/>
+ <polyline points="370,50 370,300" stroke="black" stroke-width="1.7"/>
+ <polyline points="390,50 390,300" stroke="black" stroke-width="1.8"/>
+ <polyline points="410,50 410,300" stroke="black" stroke-width="1.9"/>
+ <polyline points="430,50 430,300" stroke="black" stroke-width="2.0"/>
+ <polyline points="450,50 450,300" stroke="black" stroke-width="2.1"/>
+
+ <line x1="10" x2="470" y1="100" y2="100" stroke="darkblue" stroke-width="0.1"/>
+ <line x1="10" x2="470" y1="150" y2="150" stroke="darkblue" stroke-width="0.5"/>
+ <line x1="10" x2="470" y1="200" y2="200" stroke="darkblue" stroke-width="1"/>
+ <line x1="10" x2="470" y1="250" y2="250" stroke="darkblue" stroke-width="2"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-06-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-06-t-isvalid.html
new file mode 100644
index 0000000000..6c59096b2a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-06-t-isvalid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-stroke-06-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-stroke-06-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-stroke-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(1.8)">
+
+ <!-- No dasharray -->
+ <path stroke="black" stroke-width="10" fill="none" stroke-dasharray="none" d=" M 20 20 L 200 20"/>
+
+ <path stroke="black" stroke-width="10" fill="none" stroke-dasharray="0" d=" M 20 40 L 200 40"/>
+
+ <!-- Odd number, should repeat to make an even number -->
+ <path stroke="black" stroke-width="20" fill="none" stroke-dasharray="5,2,5,5,2,5" d=" M 20 60 L 200 60"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-dasharray="5,2,5" d=" M 20 60 L 200 60"/>
+
+ <!-- Odd number, with a dashoffset test -->
+ <path stroke="black" stroke-width="10" fill="none" stroke-dasharray="2" d=" M 20 80 L 200 80"/>
+
+ <path stroke="blue" stroke-width="10" fill="none" stroke-dasharray="2" stroke-dashoffset="2" d=" M 20 90 L 200 90"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-07-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-07-t-isvalid.html
new file mode 100644
index 0000000000..8eecdec1b3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-07-t-isvalid.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-stroke-07-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-stroke-07-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-stroke-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(1.2) translate(60, 30)">
+ <!-- test different miterlimits -->
+ <path stroke="black" stroke-width="10" stroke-linejoin="miter" stroke-miterlimit="20" fill="none" d="M 20 20 L 200 30 L 20 40"/>
+ <path stroke="black" stroke-width="10" stroke-linejoin="miter" stroke-miterlimit="18.1" fill="none" d="M 20 50 L 200 60 L 20 70"/>
+ <path stroke="black" stroke-width="10" stroke-linejoin="miter" stroke-miterlimit="17.9" fill="none" d="M 20 80 L 200 90 L 20 100"/>
+ <path stroke="black" stroke-width="10" stroke-linejoin="miter" stroke-miterlimit="17" fill="none" d="M 20 110 L 200 120 L 20 130"/>
+ <path stroke="black" stroke-width="10" stroke-linejoin="miter" stroke-miterlimit="4" fill="none" d="M 20 140 L 200 150 L 20 160"/>
+ <path stroke="black" stroke-width="10" stroke-linejoin="miter" stroke-miterlimit="1" fill="none" d="M 20 170 L 200 180 L 20 190"/>
+
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-08-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-08-t-isvalid.html
new file mode 100644
index 0000000000..01cbd30515
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-08-t-isvalid.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-stroke-08-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-stroke-08-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-stroke-08-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(50, 0) scale(1.7)">
+ <circle r="5" fill="#f66" cx="200" cy="20"/>
+ <circle r="5" fill="#f66" cx="200" cy="40"/>
+ <circle r="5" fill="#f66" cx="200" cy="60"/>
+ <circle r="5" fill="#f66" cx="200" cy="80"/>
+ <circle r="5" fill="#ff0" cx="200" cy="80"/>
+ <circle r="5" fill="#ff0" cx="200" cy="100"/>
+ <circle r="5" fill="#ff0" cx="200" cy="120"/>
+ <circle r="5" fill="#ff0" cx="200" cy="140"/>
+ <circle r="5" fill="#6f3" cx="200" cy="160"/>
+ <circle r="5" fill="#6f3" cx="200" cy="180"/>
+ <circle r="5" fill="#6f3" cx="200" cy="200"/>
+ <!-- Test range and values outside range (should be clamped to valid range) -->
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="-1.0" d=" M 20 20 L 200 20"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="-0.1" d=" M 20 40 L 200 40"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="0.0" d=" M 20 60 L 200 60"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="0.2" d=" M 20 80 L 200 80"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="0.4" d=" M 20 100 L 200 100"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="0.6" d=" M 20 120 L 200 120"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="0.8" d=" M 20 140 L 200 140"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="1.0" d=" M 20 160 L 200 160"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="1.1" d=" M 20 180 L 200 180"/>
+ <path stroke="blue" stroke-width="10" fill="none" stroke-opacity="2.0" d=" M 20 200 L 200 200"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-09-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-09-t-isvalid.html
new file mode 100644
index 0000000000..7f623f8ea6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-09-t-isvalid.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-stroke-09-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-stroke-09-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-stroke-09-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Test stroke-dasharray and stroke-dashoffset -->
+ <!-- ====================================================================== -->
+ <path fill="none" stroke="black" stroke-width="25" stroke-dasharray="25 5 , 5 5" d="M50,120 h385"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-10-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-10-t-isvalid.html
new file mode 100644
index 0000000000..3900e4f294
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/painting-stroke-10-t-isvalid.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>painting-stroke-10-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: painting-stroke-10-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: painting-stroke-10-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='40'>Test stroking of zero length subpaths</text>
+
+ <g stroke-width='50' stroke='blue' fill='none'>
+ <path d='M190,170 L190,170' stroke-linecap='round'/>
+ <path d='M290,170 L290,170' stroke-linecap='square'/>
+ <path d='M390,170 L390,170' stroke-linecap='butt' stroke='red'/>
+
+ <path d='M190,240 c0,0 0,0 0,0' stroke-linecap='round'/>
+ <path d='M290,240 c0,0 0,0 0,0' stroke-linecap='square'/>
+ <path d='M390,240 c0,0 0,0 0,0' stroke-linecap='butt' stroke='red'/>
+ </g>
+
+ <g font-size='12'>
+ <text x='10' y='175'>Using an 'L' command:</text>
+ <text x='10' y='245'>Using a 'c' command:</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-01-t-isvalid.html
new file mode 100644
index 0000000000..6c7c7dcfdd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-01-t-isvalid.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- First Curve "X" that has subpath utilizing M, C, S, m, c, & s ======== -->
+ <!-- ====================================================================== -->
+ <text font-size="12" x="100" y="14">Cubic bezier curves drawn with commands:</text>
+ <path id="X_curve_MCSmcs" fill="#00FF00" stroke="#00C000" d=" M 210 130 C 145 130 110 80 110 80 S 75 25 10 25 m 0 105 c 65 0 100 -50 100 -50 s 35 -55 100 -55 "/>
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ===================================== -->
+ <!-- ====================================================================== -->
+ <rect x="208" y="128" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="108" y="78" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="8" y="23" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="8" y="128" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="108" y="78" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="208" y="23" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <text font-size="12" x="5" y="82">M, C, S, m, c, s</text>
+ <!-- ====================================================================== -->
+ <!-- Infinity using M, c, c, c, C & z ===================================== -->
+ <!-- ====================================================================== -->
+ <path id="Infinity_McccCz" fill="none" stroke="#000000" d=" M 240 90 c 0 30 7 50 50 0 c 43 -50 50 -30 50 0 c 0 83 -68 -34 -90 -30 C 240 60 240 90 240 90 z "/>
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="238" y="88" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="288" y="88" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="338" y="88" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="248" y="58" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <text font-size="12" x="253" y="50">M, c, c, c, C, z</text>
+ <!-- ====================================================================== -->
+ <!-- Horizontal line utilizing M, C & Z =================================== -->
+ <!-- ====================================================================== -->
+ <path id="Line_MCZ" fill="none" stroke="#000000" d="M80 170 C100 170 160 170 180 170Z"/>
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="78" y="168" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="178" y="168" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <text font-size="12" x="110" y="190">M, C, Z</text>
+ <!-- ====================================================================== -->
+ <!-- Inverted V using M, C, c & Z ========================================= -->
+ <!-- ====================================================================== -->
+ <path id="Inv_V_MCcZ" fill="#00C000" stroke="none" d="M5 260 C40 260 60 175 55 160 c -5 15 15 100 50 100Z"/>
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="3" y="258" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="53" y="158" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="103" y="258" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <text font-size="12" x="85" y="220">M, C, c, Z</text>
+ <!-- ====================================================================== -->
+ <!-- Remembrance Ribbon using m, c & s ==================================== -->
+ <!-- ====================================================================== -->
+ <path id="Rem_Rib_mcs" fill="none" stroke="#000000" d="m 200 260 c 50 -40 50 -100 25 -100 s -25 60 25 100 "/>
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="198" y="258" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="223" y="158" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="248" y="258" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <text font-size="12" x="165" y="210">m, c, s</text>
+ <!-- ====================================================================== -->
+ <!-- 90 degree arc using M & C ============================================ -->
+ <!-- ====================================================================== -->
+ <path id="Arc_MC" fill="#0000FF" stroke="#000000" d=" M 360 100 C 420 90 460 140 450 190"/>
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="358" y="98" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="448" y="188" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <text font-size="12" x="360" y="150">M, C</text>
+ <!-- ====================================================================== -->
+ <!-- Circle using M, c, s, s, s & z ======================================= -->
+ <!-- ====================================================================== -->
+ <path id="Circle_Mcssz" fill="#FFFF00" stroke="#000000" d="M360 210 c 0 20 -16 36 -36 36 s -36 -16 -36 -36 s 16 -36 36 -36 s 36 16 36 36 z "/>
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="358" y="208" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="322" y="244" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="286" y="208" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="322" y="172" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <text font-size="12" x="290" y="265">M, c, s, s, s, z</text>
+ <!-- ====================================================================== -->
+ <!-- Inverted horseshoe using m, c & z ==================================== -->
+ <!-- ====================================================================== -->
+ <path id="Horseshoe_Mcs" fill="#F0F0F0" stroke="#00AA00" d="m 360 325 c -40 -60 95 -100 80 0 z "/>
+ <!-- ====================================================================== -->
+ <!-- Markers for path control points ====================================== -->
+ <!-- ====================================================================== -->
+ <rect x="358" y="323" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <rect x="438" y="323" width="4" height="4" fill="#4A83FF" stroke="none"/>
+ <text font-size="12" x="380" y="340">m, c, z</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-02-t-isvalid.html
new file mode 100644
index 0000000000..447cc441e7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-02-t-isvalid.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="120" y="14">Quadric bezier curves drawn with commands:</text>
+ <!-- ====================================================================== -->
+ <!-- Quad Bezier with sub-path using M, Q, M, q, & z ====================== -->
+ <!-- ====================================================================== -->
+ <path id="Bez_MQMqz" fill="none" stroke="#0000FF" stroke-width="3" d="M 15 20 Q 30 120 130 30 M 180 80 q -75 -100 -163 -60z"/>
+ <text font-size="12" x="80" y="86">M, Q, M, q, z</text>
+ <rect x="13" y="18" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="128" y="28" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="178" y="78" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="15" y="18" width="4" height="4" fill="#00C000" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- Quad Bezier with sub-path using m, q, z, m, q, & z =================== -->
+ <!-- ====================================================================== -->
+ <path id="Bez_fill_MQzmqz" fill="#FFFF00" stroke="#0000CF" d="M372 130Q272 50 422 10zm70 0q50-150-80-90z"/>
+ <text font-size="12" x="352" y="150">m, q, z, m, q, z</text>
+ <rect x="370" y="128" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="420" y="8" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="440" y="128" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="360" y="38" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- Simple Bezier using M, Q, & Z ======================================== -->
+ <!-- ====================================================================== -->
+ <path id="Bez_stroke_MQz" fill="none" stroke="#00FFFF" d="M224 103Q234 -12 304 33Z"/>
+ <text font-size="12" x="192" y="36">M, Q, Z</text>
+ <rect x="222" y="101" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="302" y="31" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- Tri Bezier using M, Q, T, Q, & z ===================================== -->
+ <!-- ====================================================================== -->
+ <path id="Tri_MQTQz" fill="#00C000" stroke="#000000" d="M208 168Q258 268 308 168T258 118Q128 88 208 168z"/>
+ <text font-size="12" x="308" y="188">M, Q, T, Q, z</text>
+ <rect x="206" y="166" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="306" y="166" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="256" y="116" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="206" y="206" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- Double Bezier using M, Q, Q, & z ===================================== -->
+ <!-- ====================================================================== -->
+ <path id="Inv_V_MCcZ" fill="#00CF00" stroke="none" d=" M 60 100 Q -40 150 60 200 Q 160 150 60 100 z "/>
+ <text font-size="12" x="80" y="200">M, Q, Q, z</text>
+ <rect x="58" y="98" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="58" y="198" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="58" y="98" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- Sin Wave using M, q, t, t, t, t, & z ================================ -->
+ <!-- ====================================================================== -->
+ <path id="Sin_Mqttttz" fill="none" stroke="#40DD20" d="M240 296q25-100 47 0t47 0t47 0t47 0t47 0z"/>
+ <text font-size="12" x="380" y="236">M, q, t, t, t, t, z</text>
+ <rect x="238" y="294" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="285" y="294" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="332" y="294" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="379" y="294" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="426" y="294" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="473" y="294" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- Double Spade using M, q, Q, q, Q, & z ================================ -->
+ <!-- ====================================================================== -->
+ <path id="Dbl_spd_MCcZ" fill="#0000C0" stroke="#00CF00" stroke-width="2" d="M172 193q-100 50 0 50Q72 243 172 293q100 -50 0 -50Q272 243 172 193z"/>
+ <text font-size="12" x="48" y="280">M, q, Q, q, Q, z</text>
+ <rect x="170" y="191" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="170" y="241" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="170" y="291" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="170" y="241" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="170" y="191" width="4" height="4" fill="#40DD20" stroke="none"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-03-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-03-f-isvalid.html
new file mode 100644
index 0000000000..e3fe48031c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-03-f-isvalid.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-03-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-03-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="12" x="120" y="14">Elliptical arc curves drawn with commands:</text>
+ <!-- ====================================================================== -->
+ <!-- Simple circle using MAZ ============================ -->
+ <!-- ====================================================================== -->
+ <path id="Arc_MAZ" fill="none" stroke="#03DD20" stroke-width="10" d=" M 25 70 A 40 40 0 1 0 25 69 Z "/>
+ <text font-size="12" x="48" y="70">M, A, Z</text>
+ <rect x="23" y="68" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="23" y="67" width="4" height="4" fill="#00C000" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- filled arc using m, a, & z =================== -->
+ <!-- ====================================================================== -->
+ <path id="Arc_fill_maz" fill="#00FF00" stroke="#0000FF" d=" m 150 100 a 50 40 0 1 0 25 -70 z "/>
+ <text font-size="12" x="124" y="45">m, a, z</text>
+ <rect x="148" y="98" width="4" height="4" fill="#CF0000" stroke="none"/>
+ <rect x="173" y="28" width="4" height="4" fill="#CF0000" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- Unterminated arc using M & a ======================================== -->
+ <!-- ====================================================================== -->
+ <path id="Arc_Ma" fill="none" stroke="#000000" d=" M 350 245 a 40 40 0 1 0 80 60 "/>
+ <text font-size="12" x="390" y="300">M, a</text>
+ <rect x="348" y="243" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="428" y="303" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- Triple Arc using M, A, a, a, & z ===================================== -->
+ <!-- ====================================================================== -->
+ <path id="Tri_MAaaz" fill="#0067C0" stroke="none" fill-rule="evenodd" d=" M 270 30 A 50 50 0 1 0 345 30 a 50 50 0 1 0 50 0 a 50 50 0 1 0 25 0 z "/>
+ <text font-size="12" x="280" y="135">M, A, a, a, z</text>
+ <rect x="268" y="28" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="343" y="28" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="393" y="28" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="418" y="28" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- Tripple arc using M, a, Z, m, A, Z, m, a & z ===================================== -->
+ <!-- ====================================================================== -->
+ <path id="Arc_MaZmAzmaz" fill="#609040" stroke="#000000" stroke-width="3" d=" M 30 150 a 40 40 0 0 1 65 50 Z m 30 30 A 20 20 0 0 0 125 230 Z m 40 24 a 20 20 0 0 1 65 50 z "/>
+ <text font-size="12" x="25" y="270">M, a, Z, m, A, Z, m, a, z</text>
+ <rect x="28" y="148" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="93" y="198" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="58" y="178" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="123" y="228" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="98" y="202" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="163" y="252" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <!-- ====================================================================== -->
+ <!-- Sin Wave using M, q, t, t, t, t, & z ================================ -->
+ <!-- ====================================================================== -->
+ <path id="Sin_MAAAAA" fill="none" stroke="#40DD20" d=" M 215 190 A 40 200 10 0 0 265 190 A 40 200 20 0 1 315 190 A 40 200 30 0 0 365 190 A 40 200 40 0 1 415 190 A 40 200 50 0 0 465 190 "/>
+ <text font-size="12" x="215" y="246">M, A, A, A, A</text>
+ <rect x="213" y="188" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="263" y="188" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="313" y="188" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="363" y="188" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="413" y="188" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="463" y="188" width="4" height="4" fill="#0000FF" stroke="none"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-04-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-04-t-isvalid.html
new file mode 100644
index 0000000000..5ffd91862e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-04-t-isvalid.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-04-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-04-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- First Group of Triangles using M, L & Z commands ===================== -->
+ <!-- ====================================================================== -->
+ <g transform="scale(1.8)">
+ <!-- <text font-size="12" x="160" y="14">Lines drawn with commands:</text> -->
+ <text font-size="12" x="88" y="30">M, L, L, L, Z,</text>
+ <text font-size="12" x="98" y="46">subpath</text>
+ <text font-size="12" x="88" y="61">M, L, L, L, Z</text>
+ <path id="Triangle_stroke_MLZ" fill="none" stroke="#000000" d=" M 62.00000 56.00000 L 113.96152 146.00000 L 10.03848 146.00000 L 62.00000 56.00000 Z M 62.00000 71.00000 L 100.97114 138.50000 L 23.02886 138.50000 L 62.00000 71.00000 Z "/>
+ <rect x="60.00000" y="54.00000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="111.96152" y="144.00000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="8.03848" y="144.00000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="60.00000" y="69.00000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="98.97114" y="136.50000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="21.02886" y="136.50000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <text font-size="12" x="42" y="162">stroked</text>
+ <path id="Triangle_fill_MLZ" fill="#7FA" stroke="none" fill-rule="evenodd" d=" M 177.00000 56.00000 L 228.96152 146.00000 L 125.03848 146.00000 L 177.00000 56.00000 Z M 177.00000 71.00000 L 215.97114 138.50000 L 138.02886 138.50000 L 177.00000 71.00000 Z "/>
+ <rect x="175.00000" y="54.00000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="226.96152" y="144.00000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="123.03848" y="144.00000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="175.00000" y="69.00000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="213.97114" y="136.50000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="136.02886" y="136.50000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <text font-size="12" x="162" y="162">filled</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-05-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-05-t-isvalid.html
new file mode 100644
index 0000000000..239171011f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-05-t-isvalid.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-05-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-05-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Second Group of Triangles using m, l & z commands===================== -->
+ <!-- ====================================================================== -->
+ <g transform="scale(1.8) translate(0, -150)">
+ <text font-size="12" x="96" y="180">m, l, l, l, z,</text>
+ <text font-size="12" x="100" y="194">subpath</text>
+ <text font-size="12" x="97" y="208">m, l, l, l, z</text>
+ <path id="Triangle_stroke_mlz" fill="none" stroke="#000000" d=" m 62.00000 190.00000 l 51.96152 90.00000 l -103.92304 0.00000 l 51.96152 -90.00000 z m 0.00000 15.00000 l 38.97114 67.50000 l -77.91228 0.00000 l 38.97114 -67.50000 z "/>
+ <rect x="60.00000" y="188.00000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="111.96152" y="278.00000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="8.03848" y="278.00000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="60.00000" y="203.00000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="98.97114" y="270.50000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="21.02886" y="270.50000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <path id="Triangle_fill_mlz" fill="#006000" stroke="none" fill-rule="evenodd" d=" m 177.00000 190.00000 l 51.96152 90.00000 l -103.92304 0.00000 l 51.96152 -90.00000 z m 0.00000 15.00000 l 38.97114 67.50000 l -77.91228 0.00000 l 38.97114 -67.50000 z "/>
+ <rect x="175.00000" y="188.00000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="226.96152" y="278.00000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="123.03848" y="278.00000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="175.00000" y="203.00000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="213.97114" y="270.50000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="136.02886" y="270.50000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-06-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-06-t-isvalid.html
new file mode 100644
index 0000000000..ee909bb871
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-06-t-isvalid.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-06-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-06-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(1.8) translate(-200, 0)">
+ <!-- ====================================================================== -->
+ <!-- First Group of Stairs using M, H, V & Z commands====================== -->
+ <!-- ====================================================================== -->
+ <text font-size="12" x="288" y="30">M, H, V, H,</text>
+ <text font-size="12" x="288" y="46">V. H, V, H,</text>
+ <text font-size="12" x="304" y="62">V, Z</text>
+ <path id="Stairs_stroke_MHVZ" fill="none" stroke="#000000" d=" M 240.00000 56.00000 H 270.00000 V 86.00000 H 300.00000 V 116.00000 H 330.00000 V 146.00000 H 240.00000 V 56.00000 Z "/>
+ <rect x="238.00000" y="54.00000" width="4" height="4" fill="#FFFF00" stroke="none"/>
+ <rect x="268.00000" y="54.00000" width="4" height="4" fill="#FFFF00" stroke="none"/>
+ <rect x="268.00000" y="84.00000" width="4" height="4" fill="#FFFF00" stroke="none"/>
+ <rect x="298.00000" y="84.00000" width="4" height="4" fill="#FFFF00" stroke="none"/>
+ <rect x="298.00000" y="114.00000" width="4" height="4" fill="#FFFF00" stroke="none"/>
+ <rect x="328.00000" y="114.00000" width="4" height="4" fill="#FFFF00" stroke="none"/>
+ <rect x="328.00000" y="144.00000" width="4" height="4" fill="#FFFF00" stroke="none"/>
+ <rect x="238.00000" y="144.00000" width="4" height="4" fill="#FFFF00" stroke="none"/>
+ <path id="Stairs_fill_MHVZ" fill="#0000FF" stroke="none" d=" M 350.00000 56.00000 H 380.00000 V 86.00000 H 410.00000 V 116.00000 H 440.00000 V 146.00000 H 350.00000 V 56.00000 Z "/>
+ <rect x="348.00000" y="54.00000" width="4" height="4" fill="#FFFF00" stroke="none"/>
+ <rect x="378.00000" y="54.00000" width="4" height="4" fill="#FFFF00" stroke="none"/>
+ <rect x="378.00000" y="84.00000" width="4" height="4" fill="#FFFF00" stroke="none"/>
+ <rect x="408.00000" y="84.00000" width="4" height="4" fill="#FFFF00" stroke="none"/>
+ <rect x="408.00000" y="114.00000" width="4" height="4" fill="#FFFF00" stroke="none"/>
+ <rect x="438.00000" y="114.00000" width="4" height="4" fill="#FFFF00" stroke="none"/>
+ <rect x="438.00000" y="144.00000" width="4" height="4" fill="#FFFF00" stroke="none"/>
+ <rect x="348.00000" y="144.00000" width="4" height="4" fill="#FFFF00" stroke="none"/>
+ <!-- ====================================================================== -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-07-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-07-t-isvalid.html
new file mode 100644
index 0000000000..8a4ca054dc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-07-t-isvalid.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-07-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-07-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(1.8) translate(-200, -150)">
+ <!-- ====================================================================== -->
+ <!-- Second Group of Stairs using m, h, v & z commands====================== -->
+ <!-- ====================================================================== -->
+ <text font-size="12" x="288" y="180">m, h, v, h</text>
+ <text font-size="12" x="288" y="194">v, h, v, h</text>
+ <text font-size="12" x="304" y="208">v, z</text>
+ <path id="Stairs_stroke_mhvz" fill="none" stroke="#000000" d=" m 240.00000 190.00000 h 30.00000 v 30.00000 h 30.00000 v 30.00000 h 30.00000 v 30.00000 h -90.00000 v -90.00000 z "/>
+ <rect x="238.00000" y="188.00000" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="268.00000" y="188.00000" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="268.00000" y="218.00000" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="298.00000" y="218.00000" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="298.00000" y="248.00000" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="328.00000" y="248.00000" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="328.00000" y="278.00000" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="238.00000" y="278.00000" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <path id="Stairs_fill_mhvz" fill="#FFFF00" stroke="none" d=" m 350.00000 190.00000 h 30.00000 v 30.00000 h 30.00000 v 30.00000 h 30.00000 v 30.00000 h -90.00000 v -90.00000 z "/>
+ <rect x="348.00000" y="188.00000" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="378.00000" y="188.00000" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="378.00000" y="218.00000" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="408.00000" y="218.00000" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="408.00000" y="248.00000" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="438.00000" y="248.00000" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="438.00000" y="278.00000" width="4" height="4" fill="#0000FF" stroke="none"/>
+ <rect x="348.00000" y="278.00000" width="4" height="4" fill="#0000FF" stroke="none"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-08-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-08-t-isvalid.html
new file mode 100644
index 0000000000..5d2e719802
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-08-t-isvalid.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-08-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-08-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-08-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- First Group of Triangles using M & Z commands ======================== -->
+ <!-- ====================================================================== -->
+ <text font-size="24" x="75" y="34">Lines drawn with commands:</text>
+ <text font-size="24" x="180" y="64">M and Z</text>
+
+ <g transform="scale(1.8)">
+ <path id="Triangle_stroke_MZ" fill="none" stroke="#000000" d=" M 62.00000 56.00000 113.96152 146.00000 10.03848 146.00000 62.00000 56.00000 Z M 62.00000 71.00000 100.97114 138.50000 23.02886 138.50000 62.00000 71.00000 Z "/>
+ <rect x="60.00000" y="54.00000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="111.96152" y="144.00000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="8.03848" y="144.00000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="60.00000" y="69.00000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="98.97114" y="136.50000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="21.02886" y="136.50000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <text font-size="12" x="42" y="162">stroked</text>
+ <path id="Triangle_fill_MZ" fill="#05D" stroke="none" fill-rule="evenodd" d=" M 177.00000 56.00000 228.96152 146.00000 125.03848 146.00000 177.00000 56.00000 Z M 177.00000 71.00000 215.97114 138.50000 138.02886 138.50000 177.00000 71.00000 Z "/>
+ <rect x="175.00000" y="54.00000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="226.96152" y="144.00000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="123.03848" y="144.00000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="175.00000" y="69.00000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="213.97114" y="136.50000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <rect x="136.02886" y="136.50000" width="4" height="4" fill="#00C000" stroke="none"/>
+ <text font-size="12" x="162" y="162">filled</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-09-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-09-t-isvalid.html
new file mode 100644
index 0000000000..f3fc4d1539
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-09-t-isvalid.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-09-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-09-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-09-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Second Group of Triangles using m & z commands ===================== -->
+ <!-- ====================================================================== -->
+ <text font-size="24" x="75" y="34">Lines drawn with commands:</text>
+ <text font-size="24" x="180" y="64">m and z</text>
+ <g transform="scale(1.8) translate(0, -150)">
+ <path id="Triangle_stroke_mz" fill="none" stroke="#000000" d=" m 62.00000 190.00000 51.96152 90.00000 -103.92304 0.00000 51.96152 -90.00000 z m 0.00000 15.00000 38.97114 67.50000 -77.91228 0.00000 38.97114 -67.50000 z "/>
+ <rect x="60.00000" y="188.00000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="111.96152" y="278.00000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="8.03848" y="278.00000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="60.00000" y="203.00000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="98.97114" y="270.50000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="21.02886" y="270.50000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <path id="Triangle_fill_mz" fill="#006000" stroke="none" fill-rule="evenodd" d=" m 177.00000 190.00000 51.96152 90.00000 -103.92304 0.00000 51.96152 -90.00000 z m 0.00000 15.00000 38.97114 67.50000 -77.91228 0.00000 38.97114 -67.50000 z "/>
+ <rect x="175.00000" y="188.00000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="226.96152" y="278.00000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="123.03848" y="278.00000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="175.00000" y="203.00000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="213.97114" y="270.50000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ <rect x="136.02886" y="270.50000" width="4" height="4" fill="#40DD20" stroke="none"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-10-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-10-t-isvalid.html
new file mode 100644
index 0000000000..b64ddcd940
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-10-t-isvalid.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-10-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-10-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-10-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(10,10)">
+ <text font-size="18" x="10" y="20">open</text>
+ <text font-size="18" x="10" y="38">join=round</text>
+ <text font-size="18" x="10" y="56">cap=butt</text>
+ <text font-size="18" x="10" y="74">M, L</text>
+ <g transform="translate(115,0)">
+ <path id="triangle-01" fill="green" stroke="#39D" stroke-width="15" stroke-linecap="butt" stroke-linejoin="round" d="M 100 0 L 100 80 0 40 100 0"/>
+ </g>
+ </g>
+ <g transform="translate(10,115)">
+ <text font-size="18" x="10" y="20">open</text>
+ <text font-size="18" x="10" y="38">join=bevel</text>
+ <text font-size="18" x="10" y="56">cap=round</text>
+ <text font-size="18" x="10" y="74">m, l</text>
+ <g transform="translate(115,0)">
+ <path id="triangle-02" fill="green" stroke="#39D" stroke-width="15" stroke-linecap="round" stroke-linejoin="bevel" d="m 100 0 l 0 80 -100 -40 100 -40"/>
+ </g>
+ </g>
+ <g transform="translate(10,220)">
+ <text font-size="18" x="10" y="20">open</text>
+ <text font-size="18" x="10" y="38">join=miter</text>
+ <text font-size="18" x="10" y="56">cap=square</text>
+ <text font-size="18" x="10" y="74">M, L</text>
+ <g transform="translate(115,0)">
+ <path id="triangle-03" fill="green" stroke="#39D" stroke-width="15" stroke-linecap="square" stroke-linejoin="miter" d="M 100 0 L 100 80 0 40 100 0"/>
+ </g>
+ </g>
+ <g transform="translate(250,10)">
+ <text font-size="18" x="125" y="20">closed</text>
+ <text font-size="18" x="125" y="38">join=round</text>
+ <text font-size="18" x="125" y="56">cap=butt</text>
+ <text font-size="18" x="125" y="74">M, L, Z</text>
+ <g transform="translate(0,0)">
+ <path id="triangle-04" fill="green" stroke="#39D" stroke-width="15" stroke-linecap="butt" stroke-linejoin="round" d="M 0 0 L 100 40 0 80 Z"/>
+ </g>
+ </g>
+ <g transform="translate(250,115)">
+ <text font-size="18" x="125" y="20">closed</text>
+ <text font-size="18" x="125" y="38">join=bevel</text>
+ <text font-size="18" x="125" y="56">cap=round</text>
+ <text font-size="18" x="125" y="74">m, l, z</text>
+ <g transform="translate(0,0)">
+ <path id="triangle-05" fill="green" stroke="#39D" stroke-width="15" stroke-linecap="round" stroke-linejoin="bevel" d="m 0 0 l 100 40 -100 40 z"/>
+ </g>
+ </g>
+ <g transform="translate(250,220)">
+ <text font-size="18" x="125" y="20">closed</text>
+ <text font-size="18" x="125" y="38">join=miter</text>
+ <text font-size="18" x="125" y="56">cap=square</text>
+ <text font-size="18" x="125" y="74">M, L, Z</text>
+ <g transform="translate(0,0)">
+ <path id="triangle-06" fill="green" stroke="#39D" stroke-width="15" stroke-linecap="square" stroke-linejoin="miter" d="M 0 0 L 100 40 0 80 Z"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-12-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-12-t-isvalid.html
new file mode 100644
index 0000000000..20d8f0b96f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-12-t-isvalid.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-12-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-12-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-12-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Use multiple coord sets to build a polybeizer-->
+ <path fill="none" stroke="black" stroke-width="3" d="M 100 100 C 100 20 200 20 200 100 S 300 180 300 100"/>
+ <rect x="100" y="100" width="4" height="4" fill="blue" stroke="none"/>
+ <rect x="200" y="100" width="4" height="4" fill="blue" stroke="none"/>
+ <rect x="300" y="100" width="4" height="4" fill="blue" stroke="none"/>
+ <!-- Test if S not preceeded by either C or S , first control point is coincident with the current point.-->
+ <path fill="none" stroke="black" stroke-width="3" d="M 100 250 S 200 200 200 250 300 300 300 250"/>
+ <rect x="100" y="250" width="4" height="4" fill="blue" stroke="none"/>
+ <rect x="200" y="200" width="4" height="4" fill="blue" stroke="none"/>
+ <rect x="200" y="250" width="4" height="4" fill="blue" stroke="none"/>
+ <rect x="200" y="300" width="4" height="4" fill="blue" stroke="none"/>
+ <rect x="300" y="300" width="4" height="4" fill="blue" stroke="none"/>
+ <rect x="300" y="250" width="4" height="4" fill="blue" stroke="none"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-13-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-13-t-isvalid.html
new file mode 100644
index 0000000000..9c45348244
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-13-t-isvalid.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-13-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-13-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-13-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Use multiple coords to H, should get a straight horizontal line -->
+ <path stroke="green" stroke-width="5" d=" M 240.00000 56.00000 H 270.00000 300.00000 320.00000 400.00000 "/>
+
+ <!-- Use multiple coords to V, should get a straight vertical line -->
+ <path stroke="blue" stroke-width="5" d=" M 240.00000 156.00000 V 180.00000 200.00000 260.00000 300.00000 "/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-14-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-14-t-isvalid.html
new file mode 100644
index 0000000000..56fa8f9794
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-14-t-isvalid.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-14-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-14-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-14-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(1.8)">
+ <!-- If the first command is 'm' it should be taken as an absolute moveto, plus implicit lineto. -->
+ <path fill="none" stroke="#000000" d=" m 62.00000 56.00000 51.96152 90.00000 -103.92304 0.00000 51.96152 -90.00000 z m 0.00000 15.00000 38.97114 67.50000 -77.91228 0.00000 38.97114 -67.50000 z "/>
+ <!-- Test implicit lineto. -->
+ <path fill="#0000FF" stroke="none" fill-rule="evenodd" d=" M 177.00000 56.00000 228.96152 146.00000 125.03848 146.00000 177.00000 56.00000 Z M 177.00000 71.00000 215.97114 138.50000 138.02886 138.50000 177.00000 71.00000 Z "/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-15-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-15-t-isvalid.html
new file mode 100644
index 0000000000..2fa718653a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-15-t-isvalid.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-15-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-15-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-15-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(1.8) translate(20 50)">
+ <!-- Use multiple coord sets to build a polybezier-->
+ <path fill="none" stroke="purple" stroke-width="3" d="M 20 20 Q 50 10 80 20 110 30 140 20 170 10 200 20"/>
+ <!-- Test if T not preceded by either Q or T , control point should be coincident with the current point.-->
+ <path fill="none" stroke="blue" stroke-width="3" d="M 20 50 T 50 50 80 50"/>
+ <path d="M 20,52 l-2,4 h4 z"/>
+ <path d="M 50,52 l-2,4 h4 z"/>
+ <path d="M 80,52 l-2,4 h4 z"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-16-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-16-t-isvalid.html
new file mode 100644
index 0000000000..6e43196a37
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-16-t-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-16-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-16-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-16-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='40' font-size='13'>Test relative-ness of implicit lineto path commands</text>
+
+ <g fill='red' stroke='red' stroke-width='16' stroke-linejoin='round'>
+ <path d='M100,120 L160,220 L40,220 z'/>
+ <path d='M350,120 L410,220 L290,220 z'/>
+ </g>
+ <g fill='gold' stroke='black' stroke-width='16' stroke-linejoin='round'>
+ <path d='M100,120 160,220 40,220 z'/>
+ <path d='m350,120 60,100 -120,0 z'/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-17-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-17-f-isvalid.html
new file mode 100644
index 0000000000..2b83f839ba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-17-f-isvalid.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-17-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-17-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-17-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <path d="M 50 50 L 50 150 L 150 150 L 150 50 z" stroke-width="5" stroke="red" fill="none" />
+ <path d="M 50 50 L 50 150 L 150 150 L 150 50 Z" stroke-width="6" stroke="black" fill="none" />
+ <path d="M 250 50 L 250 150 L 350 150 L 350 50 Z" stroke-width="5" stroke="red" fill="none" />
+ <path d="M 250 50 L 250 150 L 350 150 L 350 50 z" stroke-width="6" stroke="black" fill="none" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-18-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-18-f-novalid.html
new file mode 100644
index 0000000000..cbf6cf30b1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-18-f-novalid.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-18-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-18-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-18-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g fill="gold">
+ <rect x="220" y="40" width="160" height="8"/>
+ <rect x="220" y="80" width="160" height="8"/>
+ <rect x="220" y="120" width="160" height="8"/>
+ <rect x="220" y="160" width="160" height="8"/>
+ <rect x="64.6" y="200" width="319.5" height="8"/>
+ <rect x="140" y="240" width="160" height="8"/>
+ <rect x="220" y="280" width="160" height="8"/>
+ </g>
+
+ <g transform="translate(60,-30) scale(8,2)">
+ <path d="M 20 40 H 40" stroke-width="2" stroke="red" />
+ <path d="M 20 40
+ H 40" stroke-width="4" stroke="black" />
+
+ <path d="M 20 60 H 40" stroke-width="2" stroke="red" />
+ <path d="
+ M
+ 20
+ 60
+ H
+ 40
+ " stroke-width="4" stroke="black" />
+
+ <path d="M 20 80 H40" stroke-width="2" stroke="red" />
+ <path d="M 20,80 H 40" stroke-width="4" stroke="black" />
+
+ <path d="M 20 100 H 40#90" stroke-width="2" stroke="red" />
+ <path d="M 20 100 H 40" stroke-width="4" stroke="black" />
+
+ <path d="M 20 120 H 40.5 0.6" stroke-width="2" stroke="red" />
+ <path d="M 20 120 H 40.5.6" stroke-width="4" stroke="black" />
+
+ <path d="M 20 140 h 10 -20" stroke-width="2" stroke="red" />
+ <path d="M 20 140 h 10-20" stroke-width="4" stroke="black" />
+
+ <path d="M 20 160 H 40" stroke-width="2" stroke="red" />
+ <path d="M 20 160 H 40#90" stroke-width="4" stroke="black" />
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g> -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-19-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-19-f-isvalid.html
new file mode 100644
index 0000000000..1359839da4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-19-f-isvalid.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-19-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-19-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-19-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <path d="M20 20 H40 H60" stroke-width="3" stroke="red" fill="none" />
+ <path d="M20 20 H40 60" stroke-width="3" stroke="black" fill="none" />
+
+ <path d="M20 40 h20 h20" stroke-width="3" stroke="red" fill="none" />
+ <path d="M20 40 h20 20" stroke-width="3" stroke="black" fill="none" />
+
+ <path d="M120 20 V40 V60" stroke-width="3" stroke="red" fill="none" />
+ <path d="M120 20 V40 60" stroke-width="3" stroke="black" fill="none" />
+
+ <path d="M140 20 v20 v20" stroke-width="3" stroke="red" fill="none" />
+ <path d="M140 20 v20 20" stroke-width="3" stroke="black" fill="none" />
+
+ <path d="M220 20 L 240 20 L260 20" stroke-width="3" stroke="red" fill="none" />
+ <path d="M220 20 L 240 20 260 20 " stroke-width="3" stroke="black" fill="none" />
+
+ <path d="M220 40 l 20 0 l 20 0" stroke-width="3" stroke="red" fill="none" />
+ <path d="M220 40 l 20 0 20 0" stroke-width="3" stroke="black" fill="none" />
+
+ <path d="M50 150 C50 50 200 50 200 150 C200 50 350 50 350 150" stroke-width="3" stroke="red" fill="none" />
+ <path d="M50 150 C50 50 200 50 200 150 200 50 350 50 350 150" stroke-width="3" stroke="black" fill="none" />
+
+ <path d="M50, 200 c0,-100 150,-100 150,0 c0,-100 150,-100 150,0" stroke-width="3" stroke="red" fill="none" />
+ <path d="M50, 200 c0,-100 150,-100 150,0 0,-100 150,-100 150,0" stroke-width="3" stroke="black" fill="none" />
+
+ <path d="M50 250 S125 200 200 250 S275, 200 350 250" stroke-width="3" stroke="red" fill="none" />
+ <path d="M50 250 S125 200 200 250 275, 200 350 250" stroke-width="3" stroke="black" fill="none" />
+
+ <path d="M50 275 s75 -50 150 0 s75, -50 150 0" stroke-width="3" stroke="red" fill="none" />
+ <path d="M50 275 s75 -50 150 0 75, -50 150 0" stroke-width="3" stroke="black" fill="none" />
+
+ <path d="M50 300 Q 125 275 200 300 Q 275 325 350 300" stroke-width="3" stroke="red" fill="none" />
+ <path d="M50 300 Q 125 275 200 300 275 325 350 300" stroke-width="3" stroke="black" fill="none" />
+
+ <path d="M50 325 q 75 -25 150 0 q 75 25 150 0" stroke-width="3" stroke="red" fill="none" />
+ <path d="M50 325 q 75 -25 150 0 75 25 150 0" stroke-width="3" stroke="black" fill="none" />
+
+ <path d="M425 25 T 425 75 T 425 125" stroke-width="3" stroke="red" fill="none" />
+ <path d="M425 25 T 425 75 425 125" stroke-width="3" stroke="black" fill="none" />
+
+ <path d="M450 25 t 0 50 t 0 50" stroke-width="3" stroke="red" fill="none" />
+ <path d="M450 25 t 0 50 0 50" stroke-width="3" stroke="black" fill="none" />
+
+ <path d="M400,200 A25 25 0 0 0 425 150 A25 25 0 0 0 400 200" stroke-width="3" stroke="red" fill="none" />
+ <path d="M400,200 A25 25 0 0 0 425 150 25 25 0 0 0 400 200" stroke-width="3" stroke="black" fill="none" />
+
+ <path d="M400,300 a25 25 0 0 0 25 -50 a25 25 0 0 0 -25 50" stroke-width="3" stroke="red" fill="none" />
+ <path d="M400,300 a25 25 0 0 0 25 -50 25 25 0 0 0 -25 50" stroke-width="3" stroke="black" fill="none" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g> -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-20-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-20-f-novalid.html
new file mode 100644
index 0000000000..654b484e22
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-data-20-f-novalid.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-data-20-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-data-20-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-data-20-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <!-- no commawsp between arc flags -->
+ <path d="M120,120 h25 a25,25 0 1,0 -25,25 z" fill="red" stroke="lime"/>
+ <path d="M120,120 h25 a25,25 0 10 -25,25z" fill="lime"/>
+
+ <!-- no commawsp between arc flags and no commawsp after arc flags -->
+ <path d="M200,120 h-25 a25,25 0 1,1 25,25 z" fill="red" stroke="lime"/>
+ <path d="M200,120 h-25 a25,25 0 1125,25 z" fill="lime"/>
+
+ <!-- out of range large-arc-flag value -->
+ <path d="M280,120 h25 a25,25 0 1,0 -25,25 z" fill="lime" stroke="lime"/>
+ <path d="M280,120 h25 a25,25 0 6 0 -25,25 z" fill="red"/>
+
+ <!-- negative sweep-flag value -->
+ <path d="M360,120 h-25 a25,25 0 1,1 25,25 z" fill="lime" stroke="lime"/>
+ <path d="M360,120 h-25 a25,25 0 1 -1 25,25 z" fill="red"/>
+
+ <!-- no commawsp between sweep-flag and following coordinate-pair -->
+ <path d="M120,200 h25 a25,25 0 1,1 -25,-25 z" fill="red" stroke="lime"/>
+ <path d="M120,200 h25 a25,25 0 1 1-25,-25 z" fill="lime"/>
+
+ <!-- no commawsp before arc flags -->
+ <path d="M200,200 h-25 a25,25 0 1,0 25,-25 z" fill="lime" stroke="lime"/>
+ <path d="M200,200 h-25 a25,2501 025,-25 z" fill="red"/>
+
+ <!-- out of range sweep-flag value -->
+ <path d="M280,200 h25 a25,25 0 1,1 -25,-25 z" fill="lime" stroke="lime"/>
+ <path d="M280,200 h25 a25 25 0 1 7 -25 -25 z" fill="red"/>
+
+ <!-- negative large-arc-flag value -->
+ <path d="M360,200 h-25 a25,25 0 1,0 25,-25 z" fill="lime" stroke="lime"/>
+ <path d="M360,200 h-25 a25,25 0 -1 0 25,-25 z" fill="red"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g> -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-dom-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-dom-01-f-isvalid.html
new file mode 100644
index 0000000000..8d07160743
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-dom-01-f-isvalid.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-dom-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-dom-01-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" onload="init();" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-dom-01-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script><![CDATA[
+ function init()
+ {
+ var box = document.getElementById("box");
+ var boxpl = document.getElementById("boxWithPathlength");
+
+ document.getElementById("tl1").firstChild.data = box.getTotalLength();
+ document.getElementById("tl2").firstChild.data = boxpl.getTotalLength();
+
+ var pt = box.getPointAtLength(0);
+ document.getElementById("tp1").firstChild.data = "(" + pt.x + ", " + pt.y + ")";
+ var circle = document.createElementNS("http://www.w3.org/2000/svg", "circle");
+ circle.setAttribute("cx", pt.x);
+ circle.setAttribute("cy", pt.y);
+ circle.setAttribute("r", 3);
+ circle.setAttribute("fill", "blue");
+ document.getElementById("test-body-content").appendChild(circle);
+
+ pt = boxpl.getPointAtLength(0);
+ document.getElementById("tp2").firstChild.data = "(" + pt.x + ", " + pt.y + ")";
+ circle = document.createElementNS("http://www.w3.org/2000/svg", "circle");
+ circle.setAttribute("cx", pt.x);
+ circle.setAttribute("cy", pt.y);
+ circle.setAttribute("r", 3);
+ circle.setAttribute("fill", "cyan");
+ document.getElementById("test-body-content").appendChild(circle);
+
+ var segnum = box.getPathSegAtLength(0);
+ var seg = box.pathSegList.getItem(segnum);
+ document.getElementById("ts1").firstChild.data = segnum;
+ document.getElementById("tss1").firstChild.data = seg.pathSegTypeAsLetter + " " + seg.x + " " + seg.y;
+
+ segnum = boxpl.getPathSegAtLength(0);
+ seg = boxpl.pathSegList.getItem(segnum);
+ document.getElementById("ts2").firstChild.data = segnum;
+ document.getElementById("tss2").firstChild.data = seg.pathSegTypeAsLetter + " " + seg.x + " " + seg.y;
+ }
+ ]]></script>
+ <defs>
+ <path id="box" d="m 60 80 h 100 v 50 h -100 v -50" fill="green"/>
+ <path id="boxWithPathlength" d="m 300 80 h 100 v 50 h -100 v -50" fill="green" pathLength="100"/>
+ </defs>
+ <g font-size="14">
+ <text x="30" y="30">Using startOffset="50":</text>
+
+ <use xlink:href="#box"/>
+ <text>
+ <textPath xlink:href="#box" startOffset="50">
+ The text goes around the rect.
+ </textPath>
+ </text>
+
+ <text x="270" y="30">Using startOffset="50" and</text>
+ <text x="270" y="50">pathLength="100":</text>
+ <use xlink:href="#boxWithPathlength"/>
+ <text>
+ <textPath xlink:href="#boxWithPathlength" startOffset="50">
+ The text goes around the rect.
+ </textPath>
+ </text>
+
+ <g id="dom-results" transform="translate(0,-10)">
+ <text x="10" y="180">getTotalLength:</text>
+ <text x="60" y="200" id="tl1">-1</text>
+ <text x="300" y="200" id="tl2">-1</text>
+
+ <text x="10" y="220">getPointAtLength(0):</text>
+ <text x="60" y="240" id="tp1">-1</text>
+ <text x="300" y="240" id="tp2">-1</text>
+
+ <text x="10" y="260">getPathSegAtLength(0):</text>
+ <text x="60" y="280" id="ts1">
+ -1<tspan x="60" dy="20" id="tss1">n/a</tspan>
+ </text>
+ <text x="300" y="280" id="ts2">
+ -1<tspan x="300" dy="20" id="tss2">n/a</tspan>
+ </text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/paths-dom-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/paths-dom-02-f-isvalid.html
new file mode 100644
index 0000000000..87b11d6a81
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/paths-dom-02-f-isvalid.html
@@ -0,0 +1,259 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>paths-dom-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: paths-dom-02-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" onload="CreatePath();setTimeout('AnimatePath();', 500);" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: paths-dom-02-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script><![CDATA[
+ var offset_angle = 90;
+ var current_shift = 0;
+ var shift_inc = 1;
+ var THRESHOLD = 60;
+ var segments_added = 0;
+ var seg_diff = 1;
+ var adjust_count = 0;
+ var anim_count = 0;
+ var adjust_count_max = 8;
+ var anim_count_max = 10;
+ var stopped = false;
+
+ function DegToRad(degs)
+ {
+ return (degs * Math.PI) / 180;
+ }
+
+ function CreatePath()
+ {
+ var pathelm = document.getElementById("mypath");
+ var pathlist = pathelm.pathSegList;
+
+ var move = pathelm.createSVGPathSegMovetoAbs(240 + 30 * Math.cos(DegToRad(offset_angle - 30)),
+ 180 + 30 * Math.sin(DegToRad(offset_angle - 30)));
+ pathlist.appendItem(move);
+
+ var angle = offset_angle;
+ for (var i = 0; i < 6; i++)
+ {
+ var x, y, xcp, ycp;
+
+ x = 240 + 30 * Math.cos(DegToRad(angle + 30));
+ y = 180 + 30 * Math.sin(DegToRad(angle + 30));
+
+ xcp = 240 + 120 * Math.cos(DegToRad(angle));
+ ycp = 180 + 120 * Math.sin(DegToRad(angle));
+
+ var curve = pathelm.createSVGPathSegCurvetoCubicAbs(x, y,
+ xcp, ycp,
+ xcp, ycp);
+
+ pathlist.appendItem(curve);
+
+ angle += 60;
+ }
+
+ pathlist.appendItem(pathelm.createSVGPathSegClosePath());
+ setTimeout('AdjustPath()', 500);
+ }
+
+ function AddSegment()
+ {
+ var pathelm = document.getElementById("mypath");
+ var pathlist = pathelm.pathSegList;
+
+ var segments = pathlist.numberOfItems - 2; // Not MoveTo and Close
+ var angle = offset_angle;
+ var inc_angle = 360/(segments+1);
+ var shift_v_x, shift_v_y, xcp, ycp;
+
+ var move = pathlist.getItem(0);
+ move.x = 240 + 30 * Math.cos(DegToRad(offset_angle - inc_angle/2));
+ move.y = 180 + 30 * Math.sin(DegToRad(offset_angle - inc_angle/2));
+
+ for (var i = 0; i < segments; i++)
+ {
+ var curve = pathlist.getItem(1+i);
+
+ shift_v_x = current_shift * Math.cos(DegToRad(angle + 90));
+ shift_v_y = current_shift * Math.sin(DegToRad(angle + 90));
+
+ xcp = 240 + 120 * Math.cos(DegToRad(angle));
+ ycp = 180 + 120 * Math.sin(DegToRad(angle));
+
+ curve.x = 240 + 30 * Math.cos(DegToRad(angle + inc_angle/2));
+ curve.y = 180 + 30 * Math.sin(DegToRad(angle + inc_angle/2));
+
+ curve.x1 = xcp - shift_v_x;
+ curve.y1 = ycp - shift_v_y;
+
+ curve.x2 = xcp + shift_v_x;
+ curve.y2 = ycp + shift_v_y;
+
+ angle += inc_angle;
+ }
+
+ shift_v_x = current_shift * Math.cos(DegToRad(angle + 90));
+ shift_v_y = current_shift * Math.sin(DegToRad(angle + 90));
+
+ xcp = 240 + 120 * Math.cos(DegToRad(angle));
+ ycp = 180 + 120 * Math.sin(DegToRad(angle));
+
+ var x = 240 + 30 * Math.cos(DegToRad(angle + inc_angle/2));
+ var y = 180 + 30 * Math.sin(DegToRad(angle + inc_angle/2));
+
+ var curve = pathelm.createSVGPathSegCurvetoCubicAbs(x, y,
+ xcp - shift_v_x,
+ ycp - shift_v_y,
+ xcp + shift_v_x,
+ ycp + shift_v_y);
+
+ pathlist.insertItemBefore(curve, pathlist.numberOfItems-1);
+ }
+
+ function RemoveSegment()
+ {
+ var pathelm = document.getElementById("mypath");
+ var pathlist = pathelm.pathSegList;
+
+ var segments = pathlist.numberOfItems - 2; // Not MoveTo and Close
+ var angle = offset_angle;
+ var inc_angle = 360/(segments-1);
+ var shift_v_x, shift_v_y, xcp, ycp;
+
+ var move = pathlist.getItem(0);
+ move.x = 240 + 30 * Math.cos(DegToRad(offset_angle - inc_angle/2));
+ move.y = 180 + 30 * Math.sin(DegToRad(offset_angle - inc_angle/2));
+
+ for (var i = 0; i < segments-1; i++)
+ {
+ var curve = pathlist.getItem(1+i);
+
+ shift_v_x = current_shift * Math.cos(DegToRad(angle + 90));
+ shift_v_y = current_shift * Math.sin(DegToRad(angle + 90));
+
+ xcp = 240 + 120 * Math.cos(DegToRad(angle));
+ ycp = 180 + 120 * Math.sin(DegToRad(angle));
+
+ curve.x = 240 + 30 * Math.cos(DegToRad(angle + inc_angle/2));
+ curve.y = 180 + 30 * Math.sin(DegToRad(angle + inc_angle/2));
+
+ curve.x1 = xcp - shift_v_x;
+ curve.y1 = ycp - shift_v_y;
+
+ curve.x2 = xcp + shift_v_x;
+ curve.y2 = ycp + shift_v_y;
+
+ angle += inc_angle;
+ }
+
+ pathlist.removeItem(pathlist.numberOfItems-2);
+ }
+
+ function AdjustPath()
+ {
+ if (seg_diff > 0)
+ {
+ AddSegment();
+ }
+ else
+ {
+ RemoveSegment();
+ }
+
+ segments_added += seg_diff;
+
+ if (segments_added > 5)
+ seg_diff = -1;
+ else if (segments_added <= 0)
+ seg_diff = 1;
+
+ if(adjust_count < adjust_count_max)
+ {
+ adjust_count++;
+ setTimeout('AdjustPath()', 500);
+ }
+ }
+
+ function AnimatePath()
+ {
+ var pathelm = document.getElementById("mypath");
+ var pathlist = pathelm.pathSegList;
+
+ var segments = pathlist.numberOfItems - 2; // Not MoveTo and Close
+ var angle = offset_angle;
+ var inc_angle = 360/segments;
+ for (var i = 0; i < segments; i++)
+ {
+ var curve = pathlist.getItem(1+i);
+
+ var shift_v_x, shift_v_y, xcp, ycp;
+
+ shift_v_x = current_shift * Math.cos(DegToRad(angle + 90));
+ shift_v_y = current_shift * Math.sin(DegToRad(angle + 90));
+
+ xcp = 240 + 120 * Math.cos(DegToRad(angle));
+ ycp = 180 + 120 * Math.sin(DegToRad(angle));
+
+ curve.x1 = xcp - shift_v_x;
+ curve.y1 = ycp - shift_v_y;
+
+ curve.x2 = xcp + shift_v_x;
+ curve.y2 = ycp + shift_v_y;
+
+ angle += inc_angle;
+ }
+
+ current_shift += shift_inc;
+ if (current_shift >= THRESHOLD || current_shift < 0)
+ shift_inc = -shift_inc;
+
+ if(adjust_count >= adjust_count_max)
+ {
+ anim_count++;
+ }
+
+ if(anim_count < anim_count_max)
+ setTimeout('AnimatePath();', 50);
+ else
+ document.getElementById("mypath").addEventListener("click", function func() { adjust_count_max=32768;anim_count_max=32768; AdjustPath(); AnimatePath(); }, false);
+ }
+
+ ]]></script>
+ <path d="" id="mypath" stroke="black" fill="blue"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-01-b-isvalid.html
new file mode 100644
index 0000000000..b5781089de
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-01-b-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Linear Gradient using a xlink:href to another linear gradient -->
+ <!-- ====================================================================== -->
+ <linearGradient id="Grad1a" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="0">
+ <stop stop-color="blue" offset="0"/>
+ <stop stop-color="lime" offset="1"/>
+ </linearGradient>
+ <linearGradient id="Grad1b" xlink:href="#Grad1a"/>
+ <rect x="20" y="20" width="440" height="80" fill="url(#Grad1a)"/>
+ <text font-size="30" x="20" y="130">Linear gradient.</text>
+ <rect x="20" y="150" width="440" height="80" fill="url(#Grad1b)"/>
+ <text font-size="30" x="20" y="260">Referencing gradient below.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-02-b-isvalid.html
new file mode 100644
index 0000000000..6170799563
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-02-b-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-02-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-02-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Radial Gradient using a xlink:href to another radial gradient -->
+ <!-- ====================================================================== -->
+ <radialGradient id="Grad2a" gradientUnits="objectBoundingBox" cx=".5" cy=".5" fx=".5" fy=".5" r=".5">
+ <stop stop-color="black" offset="0"/>
+ <stop stop-color="rgb(255,165,0)" offset="1"/>
+ </radialGradient>
+ <radialGradient id="Grad2b" xlink:href="#Grad2a" gradientUnits="userSpaceOnUse" cx="240" cy="190" fx="240" fy="190" r="40"/>
+ <rect x="20" y="20" width="440" height="80" fill="url(#Grad2a)"/>
+ <text font-size="30" x="20" y="130">Radial gradient.</text>
+ <rect x="20" y="150" width="440" height="80" fill="url(#Grad2b)"/>
+ <text font-size="30" x="20" y="260">Referencing gradient below.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-03-b-isvalid.html
new file mode 100644
index 0000000000..88a2a176f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-03-b-isvalid.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-03-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-03-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Pattern filled rectangles using a xlink:href to another pattern fill -->
+ <!-- ====================================================================== -->
+ <pattern id="Pat3a" x="0" y="0" width="20" height="20" patternUnits="userSpaceOnUse">
+ <rect x="0" y="0" width="10" height="10" fill="#93D"/>
+ <rect x="10" y="0" width="10" height="10" fill="green"/>
+ <rect x="0" y="10" width="10" height="10" fill="blue"/>
+ <rect x="10" y="10" width="10" height="10" fill="yellow"/>
+ </pattern>
+ <pattern id="Pat3b" xlink:href="#Pat3a" width="20" height="20"/>
+ <rect x="20" y="20" width="440" height="80" fill="url(#Pat3a)"/>
+ <text font-size="30" x="20" y="130">Pattern fill.</text>
+ <rect x="20" y="160" width="440" height="80" fill="url(#Pat3b)"/>
+ <text font-size="30" x="20" y="270">Referencing pattern fill below.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-04-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-04-b-isvalid.html
new file mode 100644
index 0000000000..97d94f2895
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-04-b-isvalid.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-04-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-04-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-04-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <linearGradient id="Grad1" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="1">
+ <stop stop-color="rgb(238,130,238)" offset="0"/>
+ <stop stop-color="blue" offset="0.2"/>
+ <stop stop-color="lime" offset="0.4"/>
+ <stop stop-color="yellow" offset="0.6"/>
+ <stop stop-color="rgb(255,165,0)" offset="0.8"/>
+ <stop stop-color="green" offset="1"/>
+ </linearGradient>
+ <rect x="20" y="20" width="440" height="80" fill="url(#Grad1)"/>
+ <text font-size="30" x="20" y="130">Multi-color linear gradient.</text>
+ <!-- ====================================================================== -->
+ <!-- Radial gradient on the stroke of a rectangle ======== -->
+ <!-- ====================================================================== -->
+ <radialGradient id="Grad2" gradientUnits="userSpaceOnUse" cx="240" cy="210" r="220" fx="240" fy="210">
+ <stop stop-color="black" offset="0"/>
+ <stop stop-color="yellow" offset="0.2"/>
+ <stop stop-color="orange" offset="0.4"/>
+ <stop stop-color="blue" offset="0.6"/>
+ <stop stop-color="white" offset="0.8"/>
+ <stop stop-color="green" offset="1"/>
+ </radialGradient>
+ <rect x="20" y="150" width="440" height="80" fill="url(#Grad2)" stroke-width="40"/>
+ <text font-size="30" x="20" y="260">Multi-color radial gradient.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-05-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-05-b-isvalid.html
new file mode 100644
index 0000000000..1c573bcf35
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-05-b-isvalid.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-05-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-05-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-05-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="60" fill="aqua" x="70" y="80">Background</text>
+ <linearGradient id="Grad1" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="1">
+ <stop stop-color="rgb(238,130,238)" stop-opacity="1" offset="0"/>
+ <stop stop-color="blue" stop-opacity="0" offset="0.2"/>
+ <stop stop-color="lime" stop-opacity="0.5" offset="0.4"/>
+ <stop stop-color="yellow" stop-opacity="0.2" offset="0.6"/>
+ <stop stop-color="rgb(255,165,0)" stop-opacity="0.8" offset="0.8"/>
+ <stop stop-color="black" stop-opacity="1" offset="1"/>
+ </linearGradient>
+ <rect x="20" y="20" width="440" height="80" fill="url(#Grad1)"/>
+
+ <text font-size="60" fill="aqua" x="70" y="210">Background</text>
+ <radialGradient id="Grad2" gradientUnits="userSpaceOnUse" cx="240" cy="210" r="220" fx="240" fy="210">
+ <stop stop-color="black" stop-opacity="1" offset="0"/>
+ <stop stop-color="yellow" stop-opacity="0" offset="0.2"/>
+ <stop stop-color="red" stop-opacity="0.5" offset="0.4"/>
+ <stop stop-color="blue" stop-opacity="0.2" offset="0.6"/>
+ <stop stop-color="white" stop-opacity="0.8" offset="0.8"/>
+ <stop stop-color="green" stop-opacity="1" offset="1"/>
+ </radialGradient>
+ <rect x="20" y="150" width="440" height="80" fill="url(#Grad2)" stroke-width="40"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-06-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-06-b-isvalid.html
new file mode 100644
index 0000000000..b4680b4fc4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-06-b-isvalid.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-06-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-06-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-06-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Linear Gradient with gradientTransforms -->
+ <!-- ====================================================================== -->
+ <linearGradient id="Grad1" gradientUnits="userSpaceOnUse" x1="0" y1="0" x2="430" y2="0" gradientTransform="translate(25 35) scale(0.5)">
+ <stop stop-color="blue" offset="0"/>
+ <stop stop-color="green" offset="0.5"/>
+ <stop stop-color="lime" offset="1"/>
+ </linearGradient>
+ <rect x="20" y="20" width="440" height="50" fill="url(#Grad1)"/>
+ <text font-size="30" x="20" y="100">scale(0.5) on gradient</text>
+ <!-- ====================================================================== -->
+ <!-- Radial Gradiant with a gradientTransform -->
+ <!-- ====================================================================== -->
+ <radialGradient id="Grad2" gradientUnits="userSpaceOnUse" cx="0" cy="0" fx="0" fy="0" r="60" gradientTransform="translate(240,155) skewX(45)">
+ <stop stop-color="black" offset="0"/>
+ <stop stop-color="rgb(255,165,0)" offset="1"/>
+ </radialGradient>
+ <rect x="20" y="110" width="440" height="50" fill="url(#Grad2)"/>
+ <text font-size="30" x="20" y="190">skewX(45) on gradient</text>
+ <!-- ====================================================================== -->
+ <!-- Pattern filled rectangles with a patternTransform. -->
+ <!-- ====================================================================== -->
+ <pattern patternUnits="userSpaceOnUse" id="Pat3" x="0" y="0" width="20" height="20" patternTransform="translate(25 215) scale(2) skewX(45)">
+ <rect x="0" y="0" width="10" height="10" fill="maroon"/>
+ <rect x="10" y="0" width="10" height="10" fill="green"/>
+ <rect x="0" y="10" width="10" height="10" fill="blue"/>
+ <rect x="10" y="10" width="10" height="10" fill="yellow"/>
+ </pattern>
+ <rect x="20" y="210" width="440" height="50" fill="url(#Pat3)"/>
+ <text font-size="30" x="20" y="290">scale(2), skewX(45) on pattern</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-07-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-07-b-isvalid.html
new file mode 100644
index 0000000000..2e55d8d7c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-07-b-isvalid.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-07-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-07-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-07-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(1, 1.5)">
+ <!-- ====================================================================== -->
+ <!-- Very simple blue to red linear gradient from left to right ========== -->
+ <!-- ====================================================================== -->
+ <linearGradient id="Gradient" gradientUnits="userSpaceOnUse" x1="10" y1="10" x2="440" y2="10">
+ <stop stop-color="blue" offset="0"/>
+ <stop stop-color="lime" offset="1"/>
+ </linearGradient>
+ <!-- ====================================================================== -->
+ <!-- Linear gradient on the fill of a rectangle ======== -->
+ <!-- ====================================================================== -->
+ <rect x="10" y="10" width="430" height="60" fill="url(#Gradient)"/>
+ <text font-size="24" x="10" y="90">Linear gradient filled rectangle</text>
+ <!-- ====================================================================== -->
+ <!-- Linear gradient on the stroke of a rectangle ======== -->
+ <!-- ====================================================================== -->
+ <rect x="25" y="110" width="400" height="30" fill="none" stroke="url(#Gradient)" stroke-width="20"/>
+ <text font-size="24" x="10" y="170">Linear gradient on stroke of rectangle</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-08-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-08-b-isvalid.html
new file mode 100644
index 0000000000..8afbbc2263
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-08-b-isvalid.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-08-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-08-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-08-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <style>
+ @font-face {
+ font-family: Blocky;
+ src: url(woffs/Blocky.woff) format("woff");
+ </style>
+ <defs>
+ <font-face font-family="Blocky" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/Blocky.svg#Blocky"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g transform="scale(1, 1.5)">
+ <!-- ====================================================================== -->
+ <!-- Very simple blue to red linear gradient from left to right ========== -->
+ <!-- ====================================================================== -->
+ <linearGradient id="Gradient" gradientUnits="userSpaceOnUse" x1="10" y1="10" x2="440" y2="10">
+ <stop stop-color="blue" offset="0"/>
+ <stop stop-color="lime" offset="1"/>
+ </linearGradient>
+ <!-- ====================================================================== -->
+ <!-- Gradient on fill of text ======== -->
+ <!-- ====================================================================== -->
+ <text font-family="Blocky" font-size="68" fill="url(#Gradient)" x="20" y="70">Gradient on fill</text>
+ <!-- ====================================================================== -->
+ <!-- Gradient on stroke of text ======== -->
+ <!-- ====================================================================== -->
+ <text font-family="Blocky" x="20" y="160" font-size="55" fill="none" stroke="url(#Gradient)" stroke-width="3">Gradient on stroke</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="28">
+ <text x="40" y="145">Linear gradient on filled text</text>
+ <text x="30" y="280">Linear gradient on stroke of text</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.13 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-09-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-09-b-isvalid.html
new file mode 100644
index 0000000000..b9d5bffeda
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-09-b-isvalid.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-09-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-09-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-09-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="15" x="10" y="25">Testing gradientUnits attribute</text>
+ <!-- ====================================================================== -->
+ <!-- Linear gradient with default attributes on <linear gradient> element. -->
+ <!-- ====================================================================== -->
+ <linearGradient id="Grad1">
+ <stop stop-color="lime" offset="0"/>
+ <stop stop-color="blue" offset="1"/>
+ </linearGradient>
+ <rect x="125" y="35" width="200" height="50" fill="url(#Grad1)"/>
+ <!--<text font-size="12" x="10" y="100">Linear gradient with default attributes (thus, same as objectBoundingBox)</text>-->
+ <!--text font-size="12" x="10" y="125">Gradient is from the viewport left edge (lime) to viewport right edge (blue)</text-->
+ <!--<text font-size="12" x="10" y="115">Gradient is from the object left edge (lime) to object right edge (blue)</text>-->
+ <!-- ====================================================================== -->
+ <!-- Linear gradient with gradientUnits=objectBoundingBox ======== -->
+ <!-- ====================================================================== -->
+ <linearGradient id="Grad2" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="0" y2="1">
+ <stop stop-color="blue" offset="0"/>
+ <stop stop-color="lime" offset="1"/>
+ </linearGradient>
+ <rect x="10" y="125" width="430" height="50" fill="url(#Grad2)"/>
+ <!--<text font-size="12" x="10" y="190">gradientUnits=objectBoundingBox</text>-->
+ <!--<text font-size="12" x="10" y="205">Gradient is from the object top edge (blue) to object bottom edge (lime)</text>-->
+ <!-- ====================================================================== -->
+ <!-- Gradient using gradientUnits="userSpaceOnUse" -->
+ <!-- ====================================================================== -->
+ <linearGradient id="Grad3" x1="0" y1="0" x2="0" y2="430" gradientUnits="userSpaceOnUse">
+ <stop stop-color="lime" offset="0"/>
+ <stop stop-color="blue" offset="1"/>
+ </linearGradient>
+ <rect transform="translate(10, 260) rotate(-90)" x="0" y="0" width="50" height="430" fill="url(#Grad3)"/>
+ <!--<text font-size="12" x="10" y="275">gradientUnits=userSpaceOnUse</text>-->
+ <!--<text font-size="12" x="10" y="290">Gradient is from the object left edge (lime) to object right edge (blue)</text>-->
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-10-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-10-b-isvalid.html
new file mode 100644
index 0000000000..39f919e74e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-10-b-isvalid.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-10-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-10-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-10-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="15" x="10" y="25">Testing spreadMethod attribute</text>
+ <!-- ====================================================================== -->
+ <!-- Linear Gradient with spreadMethod=pad -->
+ <!-- ====================================================================== -->
+ <linearGradient id="Grad1" gradientUnits="objectBoundingBox" x1=".4" y1="0" x2=".6" y2="0" spreadMethod="pad">
+ <stop stop-color="blue" offset="0"/>
+ <stop stop-color="lime" offset="1"/>
+ </linearGradient>
+ <rect x="10" y="35" width="460" height="55" fill="url(#Grad1)"/>
+ <text font-size="12" x="10" y="105">spreadMethod=pad</text>
+ <!-- ====================================================================== -->
+ <!-- Linear Gradient with spreadMethod=reflect -->
+ <!-- ====================================================================== -->
+ <linearGradient id="Grad2" gradientUnits="objectBoundingBox" x1=".4" y1="0" x2=".6" y2="0" spreadMethod="reflect">
+ <stop stop-color="blue" offset="0"/>
+ <stop stop-color="lime" offset="1"/>
+ </linearGradient>
+ <rect x="10" y="120" width="460" height="55" fill="url(#Grad2)"/>
+ <text font-size="12" x="10" y="190">spreadMethod=reflect</text>
+ <!-- ====================================================================== -->
+ <!-- Linear Gradient with spreadMethod=repeat -->
+ <!-- ====================================================================== -->
+ <linearGradient id="Grad3" gradientUnits="objectBoundingBox" x1=".4" y1="0" x2=".6" y2="0" spreadMethod="repeat">
+ <stop stop-color="blue" offset="0"/>
+ <stop stop-color="lime" offset="1"/>
+ </linearGradient>
+ <rect x="10" y="205" width="460" height="55" fill="url(#Grad3)"/>
+ <text font-size="12" x="10" y="275">spreadMethod=repeat</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="lime" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-11-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-11-b-isvalid.html
new file mode 100644
index 0000000000..5056c94b8a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-11-b-isvalid.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-11-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-11-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-11-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Very simple black to red radial gradient ======== -->
+ <!-- ====================================================================== -->
+ <radialGradient gradientUnits="userSpaceOnUse" id="Grad1" cx="75" cy="100" r="130" fx="75" fy="100">
+ <stop stop-color="#009" offset="0"/>
+ <stop stop-color="#2e2" offset="1"/>
+ </radialGradient>
+ <rect x="10" y="10" width="210" height="140" fill="url(#Grad1)"/>
+ <text font-family="Arial" font-size="12" x="10" y="165">Radial gradient on fill of rectangle</text>
+ <!-- ====================================================================== -->
+ <!-- Radial gradient on the stroke of a rectangle ======== -->
+ <!-- ====================================================================== -->
+ <radialGradient id="Grad2" gradientUnits="userSpaceOnUse" cx="295" cy="100" r="150" fx="295" fy="100">
+ <stop stop-color="#e22" offset="0"/>
+ <stop stop-color="#ff6" offset="1"/>
+ </radialGradient>
+ <rect x="250" y="30" width="170" height="100" fill="none" stroke="url(#Grad2)" stroke-width="40"/>
+ <text font-family="Arial" font-size="12" x="230" y="165">Radial gradient on stroke of rectangle</text>
+ <!-- ====================================================================== -->
+ <!-- Gradient on fill of text ======== -->
+ <!-- ====================================================================== -->
+ <radialGradient id="Grad3" gradientUnits="userSpaceOnUse" cx="225" cy="180" r="90" fx="225" fy="180">
+ <stop stop-color="#060" offset="0"/>
+ <stop stop-color="yellow" offset="1"/>
+ </radialGradient>
+ <text font-family="Arial" font-size="50" fill="url(#Grad3)" x="10" y="210">Gradient on text fill</text>
+ <text font-family="Arial" font-size="12" x="10" y="225">Radial gradient on text, black to yellow</text>
+ <!-- ====================================================================== -->
+ <!-- Gradient on stroke of text ======== -->
+ <!-- ====================================================================== -->
+ <radialGradient id="Grad4" gradientUnits="userSpaceOnUse" cx="225" cy="245" r="90" fx="225" fy="245">
+ <stop stop-color="black" offset="0"/>
+ <stop stop-color="#D6D" offset="1"/>
+ </radialGradient>
+ <text font-family="Arial" font-size="45" fill="none" stroke="url(#Grad4)" stroke-width="2" x="10" y="270">Gradient on text stroke</text>
+ <text font-family="Arial" font-size="12" x="10" y="285">Radial gradient on stroke of text, black to red</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-12-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-12-b-isvalid.html
new file mode 100644
index 0000000000..733082c3f9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-12-b-isvalid.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-12-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-12-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-12-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="15" x="10" y="25">Testing gradientUnits attribute</text>
+ <!-- ====================================================================== -->
+ <!-- Radial gradient with default attributes on <radial gradient> element. -->
+ <!-- ====================================================================== -->
+ <radialGradient id="Grad1">
+ <stop stop-color="#009" offset="0"/>
+ <stop stop-color="lime" offset="1"/>
+ </radialGradient>
+ <rect x="10" y="35" width="460" height="50" fill="url(#Grad1)"/>
+ <text font-size="12" x="10" y="100">Radial gradient with default attributes (from blue to yellow)</text>
+ <text font-size="12" x="10" y="115">Gradient is blue at the object center and lime at the object edges</text>
+ <!-- ====================================================================== -->
+ <!-- Radial gradient with gradientUnits=objectBoundingBox ======== -->
+ <!-- ====================================================================== -->
+ <radialGradient id="Grad2" gradientUnits="objectBoundingBox" cx=".2" cy=".2" fx=".2" fy=".2" r=".5">
+ <stop stop-color="#009" offset="0"/>
+ <stop stop-color="lime" offset="1"/>
+ </radialGradient>
+ <rect x="10" y="125" width="460" height="50" fill="url(#Grad2)"/>
+ <text font-size="12" x="10" y="190">gradientUnits=objectBoundingBox</text>
+ <text font-size="12" x="10" y="205">cx=.2, cy=.2, r=.5, fx=.2 fy=.2</text>
+ <!-- ====================================================================== -->
+ <!-- Gradient using gradientUnits="userSpaceOnUse" -->
+ <!-- ====================================================================== -->
+ <radialGradient id="Grad3" cx="25" cy="215" r="25" fx="25" fy="215" gradientUnits="userSpaceOnUse">
+ <stop stop-color="yellow" offset="0"/>
+ <stop stop-color="blue" offset="1"/>
+ </radialGradient>
+ <rect transform="translate(10, 260) rotate(-90)" x="0" y="0" width="50" height="460" fill="url(#Grad3)"/>
+ <text font-size="12" x="10" y="275">gradientUnits=userSpaceOnUse</text>
+ <text font-size="12" x="10" y="290">Gradient is yellow to blue radial gradient from center to horizontal bounds</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-13-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-13-b-isvalid.html
new file mode 100644
index 0000000000..b527b45410
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-13-b-isvalid.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-13-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-13-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-13-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="240" y="30" font-size="20" text-anchor="middle">Radial gradient focal point</text>
+ <defs>
+ <g id="alpha">
+ <rect x="00" y="0" width="100" height="60" fill="yellow"/>
+ <rect x="00" y="0" width="10" height="60" fill="gold"/>
+ <rect x="15" y="0" width="10" height="60" fill="orange"/>
+ <rect x="30" y="0" width="10" height="60" fill="sienna"/>
+ <rect x="45" y="0" width="10" height="60" fill="gold"/>
+ <rect x="60" y="0" width="10" height="60" fill="sienna"/>
+ <rect x="75" y="0" width="10" height="60" fill="orange"/>
+ <rect x="90" y="0" width="10" height="60" fill="gold"/>
+ <rect x="00" y="0" width="100" height="60"/>
+ <!-- inherits a radial gradient -->
+ </g>
+ </defs>
+ <defs>
+ <radialGradient id="grad1a" gradientUnits="objectBoundingBox" cx="10%" cy="10%" r="75%" fx="00.00%" fy="00%">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset=".5" stop-color="darkblue"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad2a" gradientUnits="objectBoundingBox" cx="10%" cy="10%" r="75%" fx="16.66%" fy="00%">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset=".5" stop-color="darkblue"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad4a" gradientUnits="objectBoundingBox" cx="10%" cy="10%" r="75%" fx="50.00%" fy="00%">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset=".5" stop-color="darkblue"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad6a" gradientUnits="objectBoundingBox" cx="10%" cy="10%" r="75%" fx="83.33%" fy="00%">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset=".5" stop-color="darkblue"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+
+ <radialGradient id="grad1b" gradientUnits="objectBoundingBox" cx="10%" cy="10%" r="75%" fx="00.00%" fy="25%">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset=".5" stop-color="darkblue"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad2b" gradientUnits="objectBoundingBox" cx="10%" cy="10%" r="75%" fx="16.66%" fy="25%">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset=".5" stop-color="darkblue"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad4b" gradientUnits="objectBoundingBox" cx="10%" cy="10%" r="75%" fx="50.00%" fy="25%">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset=".5" stop-color="darkblue"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad6b" gradientUnits="objectBoundingBox" cx="10%" cy="10%" r="75%" fx="83.33%" fy="25%">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset=".5" stop-color="darkblue"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+
+ <radialGradient id="grad1c" gradientUnits="objectBoundingBox" cx="10%" cy="10%" r="75%" fx="00.00%" fy="50%">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset=".5" stop-color="darkblue"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad2c" gradientUnits="objectBoundingBox" cx="10%" cy="10%" r="75%" fx="16.66%" fy="50%">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset=".5" stop-color="darkblue"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad4c" gradientUnits="objectBoundingBox" cx="10%" cy="10%" r="75%" fx="50.00%" fy="50%">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset=".5" stop-color="darkblue"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad6c" gradientUnits="objectBoundingBox" cx="10%" cy="10%" r="75%" fx="83.33%" fy="50%">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset=".5" stop-color="darkblue"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+
+ <radialGradient id="grad1d" gradientUnits="objectBoundingBox" cx="10%" cy="10%" r="75%" fx="00.00%" fy="75%">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset=".5" stop-color="darkblue"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad2d" gradientUnits="objectBoundingBox" cx="10%" cy="10%" r="75%" fx="16.66%" fy="75%">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset=".5" stop-color="darkblue"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad4d" gradientUnits="objectBoundingBox" cx="10%" cy="10%" r="75%" fx="50.00%" fy="75%">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset=".5" stop-color="darkblue"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad6d" gradientUnits="objectBoundingBox" cx="10%" cy="10%" r="75%" fx="83.33%" fy="75%">
+ <stop offset="0" stop-opacity="0"/>
+ <stop offset=".5" stop-color="darkblue"/>
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ </defs>
+
+ <g id="group1" stroke="black" stroke-width="0.5">
+ <use xlink:href="#alpha" x="017.5" y="045" fill="url(#grad1a)"/>
+ <use xlink:href="#alpha" x="130" y="045" fill="url(#grad2a)"/>
+ <use xlink:href="#alpha" x="242.5" y="045" fill="url(#grad4a)"/>
+ <use xlink:href="#alpha" x="355" y="045" fill="url(#grad6a)"/>
+
+ <use xlink:href="#alpha" x="017.5" y="110" fill="url(#grad1b)"/>
+ <use xlink:href="#alpha" x="130" y="110" fill="url(#grad2b)"/>
+ <use xlink:href="#alpha" x="242.5" y="110" fill="url(#grad4b)"/>
+ <use xlink:href="#alpha" x="355" y="110" fill="url(#grad6b)"/>
+
+ <use xlink:href="#alpha" x="017.5" y="175" fill="url(#grad1c)"/>
+ <use xlink:href="#alpha" x="130" y="175" fill="url(#grad2c)"/>
+ <use xlink:href="#alpha" x="242.5" y="175" fill="url(#grad4c)"/>
+ <use xlink:href="#alpha" x="355" y="175" fill="url(#grad6c)"/>
+
+ <use xlink:href="#alpha" x="017.5" y="240" fill="url(#grad1d)"/>
+ <use xlink:href="#alpha" x="130" y="240" fill="url(#grad2d)"/>
+ <use xlink:href="#alpha" x="242.5" y="240" fill="url(#grad4d)"/>
+ <use xlink:href="#alpha" x="355" y="240" fill="url(#grad6d)"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-14-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-14-b-isvalid.html
new file mode 100644
index 0000000000..3a446a1c7b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-14-b-isvalid.html
@@ -0,0 +1,112 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-14-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-14-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-14-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <linearGradient id="lgSpreadPad" gradientUnits="userSpaceOnUse" y1="0" x1="50" y2="0" x2="100" spreadMethod="pad">
+ <stop offset="000%" stop-color="black"/>
+ <stop offset="100%" stop-color="gold"/>
+ </linearGradient>
+
+ <linearGradient id="lgSpreadReflect" gradientUnits="userSpaceOnUse" y1="0" x1="50" y2="0" x2="100" spreadMethod="reflect">
+ <stop offset="000%" stop-color="black"/>
+ <stop offset="100%" stop-color="gold"/>
+ </linearGradient>
+
+ <linearGradient id="lgSpreadRepeat" gradientUnits="userSpaceOnUse" y1="0" x1="50" y2="0" x2="100" spreadMethod="repeat">
+ <stop offset="000%" stop-color="black"/>
+ <stop offset="100%" stop-color="gold"/>
+ </linearGradient>
+
+ <linearGradient id="lgSpreadDefault" gradientUnits="userSpaceOnUse" y1="0" x1="50" y2="0" x2="100">
+ <stop offset="000%" stop-color="black"/>
+ <stop offset="100%" stop-color="gold"/>
+ </linearGradient>
+
+ <radialGradient id="rgSpreadPad" gradientUnits="objectBoundingBox" cx="0.5" cy="0.5" r="0.2" spreadMethod="pad">
+ <stop offset="000%" stop-color="black"/>
+ <stop offset="100%" stop-color="gold"/>
+ </radialGradient>
+
+ <radialGradient id="rgSpreadReflect" gradientUnits="objectBoundingBox" cx="0.5" cy="0.5" r="0.2" spreadMethod="reflect">
+ <stop offset="000%" stop-color="black"/>
+ <stop offset="100%" stop-color="gold"/>
+ </radialGradient>
+
+ <radialGradient id="rgSpreadRepeat" gradientUnits="objectBoundingBox" cx="0.5" cy="0.5" r="0.2" spreadMethod="repeat">
+ <stop offset="000%" stop-color="black"/>
+ <stop offset="100%" stop-color="gold"/>
+ </radialGradient>
+
+ <radialGradient id="rgSpreadDefault" gradientUnits="objectBoundingBox" cx="0.5" cy="0.5" r="0.2">
+ <stop offset="000%" stop-color="black"/>
+ <stop offset="100%" stop-color="gold"/>
+ </radialGradient>
+ </defs>
+
+ <text font-size="20" x="240" y="30" text-anchor="middle">Gradient 'spreadMethod' values</text>
+
+ <rect x="10" y="060" width="225" height="40" fill="url(#lgSpreadPad)" stroke="none"/>
+ <text font-size="16" x="10" y="55">spreadMethod="pad"</text>
+
+ <rect x="10" y="130" width="225" height="40" fill="url(#lgSpreadReflect)" stroke="none"/>
+ <text font-size="16" x="10" y="125">spreadMethod="reflect"</text>
+
+ <rect x="10" y="200" width="225" height="40" fill="url(#lgSpreadRepeat)" stroke="none"/>
+ <text font-size="16" x="10" y="195">spreadMethod="repeat"</text>
+
+ <rect x="10" y="270" width="225" height="40" fill="url(#lgSpreadDefault)" stroke="none"/>
+ <text font-size="16" x="10" y="265">spreadMethod="default"</text>
+
+
+ <rect x="245" y="060" width="225" height="40" fill="url(#rgSpreadPad)" stroke="none"/>
+ <text font-size="16" x="245" y="55">spreadMethod="pad"</text>
+
+ <rect x="245" y="130" width="225" height="40" fill="url(#rgSpreadReflect)" stroke="none"/>
+ <text font-size="16" x="245" y="125">spreadMethod="reflect"</text>
+
+ <rect x="245" y="200" width="225" height="40" fill="url(#rgSpreadRepeat)" stroke="none"/>
+ <text font-size="16" x="245" y="195">spreadMethod="repeat"</text>
+
+ <rect x="245" y="270" width="225" height="40" fill="url(#rgSpreadDefault)" stroke="none"/>
+ <text font-size="16" x="245" y="265">spreadMethod="default"</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-15-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-15-b-isvalid.html
new file mode 100644
index 0000000000..e8bc4b10dd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-15-b-isvalid.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-15-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-15-b-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-15-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Test defaults for linear grad x1,y1,y2 = 0%, x2 = 100%. -->
+ <linearGradient id="defs1" gradientUnits="objectBoundingBox">
+ <stop stop-color="blue" offset="0"/>
+ <stop stop-color="fuchsia" offset="1"/>
+ </linearGradient>
+ <!-- Test defaults for radial grad cx,cy,r = 50%, fx,fy = cx,cy. -->
+ <radialGradient id="defs2" gradientUnits="objectBoundingBox">
+ <stop stop-color="black" offset="0"/>
+ <stop stop-color="fuchsia" offset="1"/>
+ </radialGradient>
+
+ <rect x="20" y="20" width="440" height="80" fill="url(#defs1)"/>
+ <rect x="20" y="150" width="440" height="80" fill="url(#defs2)"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-16-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-16-b-isvalid.html
new file mode 100644
index 0000000000..23222e9e5c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-16-b-isvalid.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-16-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-16-b-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-16-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- No stops, like fill = none -->
+ <linearGradient id="defs1" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="0">
+ </linearGradient>
+ <!-- One stop, like fill = black -->
+ <linearGradient id="defs2" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="0">
+ <stop stop-color="black" offset="1"/>
+ </linearGradient>
+ <!-- If a stop less than all previous stops, it is set equal to the largest stop-->
+ <!-- This also tests if two stops are equal the last stop controls the color at the overlap point-->
+ <linearGradient id="defs3" gradientUnits="objectBoundingBox" x1="0" y1="0" x2="1" y2="0">
+ <stop stop-color="yellow" offset="0"/>
+ <stop stop-color="#f48" offset=".25"/>
+ <stop stop-color="green" offset=".5"/>
+ <stop stop-color="blue" offset=".1"/>
+ </linearGradient>
+
+ <rect x="20" y="10" width="440" height="80" fill="url(#defs1)" stroke="#f48"/>
+ <rect x="20" y="110" width="440" height="80" fill="url(#defs2)"/>
+ <rect x="20" y="210" width="440" height="80" fill="url(#defs3)"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-17-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-17-b-isvalid.html
new file mode 100644
index 0000000000..313a956e67
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-17-b-isvalid.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-17-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-17-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-17-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <linearGradient id="grad">
+ <stop offset="0" stop-color="black"/>
+ <stop offset="1" stop-color="white"/>
+ </linearGradient>
+ </defs>
+
+ <!-- sub-test 1: stroke with solid color fallback -->
+ <g transform="translate(50, 100) scale(0.3)">
+ <line x1="0" y1="180" x2="480" y2="180" stroke="url(#grad) #0f0" stroke-width="20"/>
+ <line x1="0" y1="180" x2="480" y2="180" stroke="url(#grad) #0f0" stroke-width="20" transform="rotate(45 240 180)"/>
+ <line x1="0" y1="180" x2="480" y2="180" stroke="url(#grad) #0f0" stroke-width="20" transform="rotate(90 240 180)"/>
+ <line x1="410" y1="10" x2="70" y2="350" stroke="url(#grad) #0f0" stroke-width="20"/>
+ <rect x="0" y="-60" width="480" height="480" fill="none" stroke="black"/>
+ </g>
+ <text x="120" y="250" text-anchor="middle">With fallback</text>
+
+ <!-- sub-test 2: stroke without a fallback -->
+ <g transform="translate(280,100) scale(0.3)">
+ <line x1="0" y1="180" x2="480" y2="180" stroke="url(#grad)" stroke-width="20"/>
+ <line x1="0" y1="180" x2="480" y2="180" stroke="url(#grad)" stroke-width="20" transform="rotate(45 240 180)"/>
+ <line x1="0" y1="180" x2="480" y2="180" stroke="url(#grad)" stroke-width="20" transform="rotate(90 240 180)"/>
+ <line x1="410" y1="10" x2="70" y2="350" stroke="url(#grad)" stroke-width="20"/>
+ <rect x="0" y="-60" width="480" height="480" fill="none" stroke="black"/>
+ </g>
+ <text x="350" y="250" text-anchor="middle">Without fallback</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-18-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-18-b-isvalid.html
new file mode 100644
index 0000000000..8681f1fe55
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-18-b-isvalid.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-18-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-18-b-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-18-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g id="g0" stop-color="#f48" stop-opacity="0.5" color="yellow">
+ <linearGradient id="MyGradient1" stop-color="inherit">
+ <stop offset="0" stop-color="green" stop-opacity="1"/>
+ <stop offset="1" stop-color="inherit" stop-opacity="1"/>
+ </linearGradient>
+ <linearGradient id="MyGradient2" stop-opacity="inherit">
+ <stop offset="0" stop-color="green" stop-opacity="1"/>
+ <stop offset="1" stop-color="green" stop-opacity="inherit"/>
+ </linearGradient>
+ <linearGradient id="MyGradient3">
+ <stop offset="0" stop-color="green" stop-opacity="1"/>
+ <stop offset="1"/>
+ </linearGradient>
+ <linearGradient id="MyGradient4">
+ <stop offset="0" stop-color="green" stop-opacity="1"/>
+ <stop offset="1" stop-color="currentColor" stop-opacity="1"/>
+ </linearGradient>
+ </g>
+ <g id="g1" stop-color="blue">
+ <rect id="r1" fill="url(#MyGradient1)" width="100" height="100" x="50" y="50"/>
+ </g>
+ <g id="g2" stop-opacity="1">
+ <rect id="r2" fill="url(#MyGradient2)" width="100" height="100" x="200" y="50"/>
+ </g>
+ <g id="g3" stop-opacity="1" stop-color="blue">
+ <rect id="r3" fill="url(#MyGradient3)" width="100" height="100" x="50" y="200"/>
+ </g>
+ <g id="g4" color="blue">
+ <rect id="r4" fill="url(#MyGradient4)" width="100" height="100" x="200" y="200"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-20-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-20-b-isvalid.html
new file mode 100644
index 0000000000..6ebc6ff7f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-20-b-isvalid.html
@@ -0,0 +1,71 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-20-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-20-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-20-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <linearGradient id="grad">
+ <stop offset="0" stop-color="black" />
+ <stop offset="1" stop-color="white" />
+ </linearGradient>
+ </defs>
+
+ <!-- sub-test 1: stroke with solid color fallback -->
+ <g transform="translate(50, 100) scale(0.3)">
+ <path d="M0 180L480 180" stroke="url(#grad) #0f0" stroke-width="20"/>
+ <path d="M0 180L480 180" stroke="url(#grad) #0f0" stroke-width="20" transform="rotate(45 240 180)"/>
+ <path d="M0 180L480 180" stroke="url(#grad) #0f0" stroke-width="20" transform="rotate(90 240 180)"/>
+ <path d="M410 10L70 350" stroke="url(#grad) #0f0" stroke-width="20"/>
+ <rect x="0" y="-60" width="480" height="480" fill="none" stroke="black"/>
+ </g>
+ <text x="120" y="250" text-anchor="middle">With fallback</text>
+
+ <!-- sub-test 2: stroke without a fallback -->
+ <g transform="translate(280,100) scale(0.3)">
+ <path d="M0 180L480 180" stroke="url(#grad)" stroke-width="20"/>
+ <path d="M0 180L480 180" stroke="url(#grad)" stroke-width="20" transform="rotate(45 240 180)"/>
+ <path d="M0 180L480 180" stroke="url(#grad)" stroke-width="20" transform="rotate(90 240 180)"/>
+ <path d="M410 10L70 350" stroke="url(#grad)" stroke-width="20"/>
+ <rect x="0" y="-60" width="480" height="480" fill="none" stroke="black"/>
+ </g>
+ <text x="350" y="250" text-anchor="middle">Without fallback</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-21-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-21-b-isvalid.html
new file mode 100644
index 0000000000..d9a3f015d4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-21-b-isvalid.html
@@ -0,0 +1,133 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-21-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-21-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-21-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <radialGradient id="grad1" cx="100%" r="20%">
+ <stop offset="0" stop-color="black" />
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad2" xlink:href="#grad1" cx="0%"/>
+ <radialGradient id="grad3" cx="100%" r="20%" fx="0%">
+ <stop offset="0" stop-color="black" />
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad4" xlink:href="#grad3" cx="0%"/>
+ <radialGradient id="grad5" cx="100%" r="20%" fx="25%">
+ <stop offset="0" stop-color="black" />
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad6" xlink:href="#grad5" cx="0%"/>
+
+ <radialGradient id="grad1-ref" cx="100%" r="20%">
+ <stop offset="0" stop-color="black" />
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad2-ref" cx="0%" r="20%">
+ <stop offset="0" stop-color="black" />
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad3-ref" cx="100%" r="20%" fx="0%">
+ <stop offset="0" stop-color="black" />
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad4-ref" cx="0%" r="20%" fx="0%">
+ <stop offset="0" stop-color="black" />
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad5-ref" cx="100%" r="20%" fx="25%">
+ <stop offset="0" stop-color="black" />
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ <radialGradient id="grad6-ref" cx="0%" r="20%" fx="25%">
+ <stop offset="0" stop-color="black" />
+ <stop offset="1" stop-opacity="0"/>
+ </radialGradient>
+ </defs>
+
+ <g transform="translate(100 60)">
+ <!-- first line of tests -->
+ <rect fill="url(#grad1)" x="-60" width="120" height="90"/>
+ <rect fill="url(#grad2)" x="60" width="120" height="90"/>
+ <ellipse cx="60" cy="45" rx="24" ry="18" fill="none" stroke="blue"/>
+
+ <!-- reference for first line -->
+ <g transform="translate(100 0)">
+ <rect fill="url(#grad1-ref)" x="-60" width="120" height="90"/>
+ <rect fill="url(#grad2-ref)" x="60" width="120" height="90"/>
+ <ellipse cx="60" cy="45" rx="24" ry="18" fill="none" stroke="blue"/>
+ </g>
+
+ <!-- second line of tests -->
+ <g transform="translate(0 50)">
+ <rect fill="url(#grad3)" x="-60" width="120" height="90"/>
+ <rect fill="url(#grad4)" x="60" width="120" height="90"/>
+ <ellipse cx="60" cy="45" rx="24" ry="18" fill="none" stroke="blue"/>
+ </g>
+
+ <!-- reference for second line -->
+ <g transform="translate(100 50)">
+ <rect fill="url(#grad3-ref)" x="-60" width="120" height="90"/>
+ <rect fill="url(#grad4-ref)" x="60" width="120" height="90"/>
+ <ellipse cx="60" cy="45" rx="24" ry="18" fill="none" stroke="blue"/>
+ </g>
+
+ <!-- third line of tests -->
+ <g transform="translate(0 100)">
+ <rect fill="url(#grad5)" x="-60" width="120" height="90"/>
+ <rect fill="url(#grad6)" x="60" width="120" height="90"/>
+ <ellipse cx="60" cy="45" rx="24" ry="18" fill="none" stroke="blue"/>
+ </g>
+
+ <!-- reference for third line -->
+ <g transform="translate(100 100)">
+ <rect fill="url(#grad5-ref)" x="-60" width="120" height="90"/>
+ <rect fill="url(#grad6-ref)" x="60" width="120" height="90"/>
+ <ellipse cx="60" cy="45" rx="24" ry="18" fill="none" stroke="blue"/>
+ </g>
+
+ <rect x="120" y="20" width="80" height="200" fill="none" stroke="green"/>
+ <text y="200" x="160" text-anchor="middle" font-size="12">Reference</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-22-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-22-b-isvalid.html
new file mode 100644
index 0000000000..48ee6b367c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-22-b-isvalid.html
@@ -0,0 +1,88 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-22-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-22-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-22-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <linearGradient id="g1" x1="0" y1="0" x2="400" y2="50" gradientUnits="userSpaceOnUse" >
+ <stop offset="0" stop-color="blue"/>
+ <stop offset="0.5" stop-color="yellow"/>
+ <stop offset="1.0" stop-color="blue"/>
+ </linearGradient>
+
+ <linearGradient id="g2" x1="0" y1="0" x2="200" y2="12.5" gradientUnits="userSpaceOnUse">
+ <stop offset="0" stop-color="blue"/>
+ <stop offset="0.5" stop-color="yellow"/>
+ <stop offset="1.0" stop-color="blue"/>
+ </linearGradient>
+
+ <linearGradient id="g3" x1="0" y1="0" x2="400" y2="50" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-37) scale(0.89 1)">
+ <stop offset="0" stop-color="blue"/>
+ <stop offset="0.5" stop-color="yellow"/>
+ <stop offset="1.0" stop-color="blue"/>
+ </linearGradient>
+
+ <linearGradient id="g4" x1="0" y1="0" x2="200" y2="12.5" gradientUnits="userSpaceOnUse" gradientTransform="rotate(-20)">
+ <stop offset="0" stop-color="blue"/>
+ <stop offset="0.5" stop-color="yellow"/>
+ <stop offset="1.0" stop-color="blue"/>
+ </linearGradient>
+ </defs>
+
+ <g transform="translate(20,50)">
+ <g transform="scale(0.5,1)">
+ <rect width="400" height="50" fill="url(#g1)" />
+ </g>
+ </g>
+
+ <g transform="translate(20,120)">
+ <rect width="200" height="50" fill="url(#g2)" />
+ </g>
+
+ <g transform="translate(250,80)">
+ <rect width="400" height="50" fill="url(#g3)" transform="scale(0.5,1)"/>
+ </g>
+
+ <g transform="translate(250,150)">
+ <rect width="200" height="50" fill="url(#g4)" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-23-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-23-f-novalid.html
new file mode 100644
index 0000000000..9c1f75b822
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-23-f-novalid.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-23-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-23-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-23-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-size="18">
+ <defs>
+ <linearGradient id="testLinear" stop-color="inherit">
+ <stop offset="100%" stop-color="inherit" />
+ </linearGradient>
+ <radialGradient id="testRadial" stop-color="inherit">
+ <stop offset="100%" stop-color="inherit" />
+ </radialGradient>
+ </defs>
+ <g stop-color="red">
+ <rect x="30" y="30" width="100" height="100" fill="url(#testLinear)" stop-color="inherit" />
+ <rect x="150" y="30" width="100" height="100" fill="url(#testRadial)" stop-color="inherit" />
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-24-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-24-f-isvalid.html
new file mode 100644
index 0000000000..62dee44c98
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-24-f-isvalid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-24-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-24-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-24-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <linearGradient id="testLinear">
+ <stop offset="100%" stop-color="red" />
+ </linearGradient>
+ <radialGradient id="testRadial">
+ <stop offset="100%" stop-color="red" />
+ </radialGradient>
+ </defs>
+ <text x="10" y="50">There should be no red.</text>
+ <use x="0" y="0" xlink:href="url(#testLinear)" />
+ <use x="0" y="150" xlink:href="url(#testRadial)" />
+ <linearGradient x1="0" x2="100" y1="150" y2="250">
+ <stop offset="100%" stop-color="red" />
+ </linearGradient>
+ <radialGradient cx="200" cy="300" r="50" fx="200" fy="300">
+ <stop offset="100%" stop-color="red" />
+ </radialGradient>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-stops-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-stops-01-f-isvalid.html
new file mode 100644
index 0000000000..c475e31853
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-grad-stops-01-f-isvalid.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-grad-stops-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-grad-stops-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-grad-stops-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <linearGradient id="gradient1">
+ <stop offset="-1" stop-color="blue" />
+ </linearGradient>
+ <linearGradient id="gradient2">
+ <stop offset="-1%" stop-color="blue" />
+ </linearGradient>
+ <linearGradient id="gradient3">
+ <stop offset="2" stop-color="blue" />
+ </linearGradient>
+ <linearGradient id="gradient4">
+ <stop offset="101%" stop-color="blue" />
+ </linearGradient>
+ </defs>
+ <rect fill="url(#gradient1)" stroke="black" stroke-width="5" x="10" y="10" width="100" height="100" />
+ <rect fill="url(#gradient2)" stroke="black" stroke-width="5" x="120" y="10" width="100" height="100" />
+ <rect fill="url(#gradient3)" stroke="black" stroke-width="5" x="10" y="120" width="100" height="100" />
+ <rect fill="url(#gradient4)" stroke="black" stroke-width="5" x="120" y="120" width="100" height="100" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-01-b-isvalid.html
new file mode 100644
index 0000000000..c8f3e75caf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-01-b-isvalid.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-pattern-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-pattern-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-pattern-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Rectangle with a pattern fill ======== -->
+ <!-- ====================================================================== -->
+ <pattern patternUnits="userSpaceOnUse" id="pat1" x="10" y="10" width="20" height="20">
+ <rect x="5" y="5" width="10" height="10" fill="yellow"/>
+ <rect x="10" y="10" width="10" height="10" fill="green"/>
+ </pattern>
+ <rect x="25" y="10" width="430" height="60" stroke="black" fill="url(#pat1)"/>
+ <text font-family="Arial" font-size="12" x="25" y="85">Pattern created using yellow and green rectangles applied to fill of rectangle</text>
+ <!-- ====================================================================== -->
+ <!-- Rectangle with a pattern on the stroke ======== -->
+ <!-- ====================================================================== -->
+ <pattern patternUnits="userSpaceOnUse" id="pat2" x="0" y="0" width="20" height="20">
+ <rect x="0" y="0" width="10" height="10" fill="maroon"/>
+ <rect x="10" y="0" width="10" height="10" fill="green"/>
+ <rect x="0" y="10" width="10" height="10" fill="blue"/>
+ <rect x="10" y="10" width="10" height="10" fill="yellow"/>
+ </pattern>
+ <rect x="35" y="110" width="410" height="40" fill="none" stroke="url(#pat2)" stroke-width="20"/>
+ <text font-family="Arial" font-size="12" x="25" y="175">Pattern of 4 rectangles applied to a stroke of a rectangle.</text>
+ <!-- ====================================================================== -->
+ <!-- Pattern filled text ======== -->
+ <!-- ====================================================================== -->
+ <pattern patternUnits="userSpaceOnUse" id="pat3" x="0" y="0" width="10" height="20">
+ <rect x="0" y="0" width="10" height="10" fill="orange"/>
+ <rect x="0" y="10" width="10" height="10" fill="green"/>
+ </pattern>
+ <text font-family="Arial" font-size="50" fill="url(#pat3)" x="25" y="220">Pattern on fill</text>
+ <text font-family="Arial" font-size="12" x="25" y="235">Pattern consists of orange and green rows</text>
+ <!-- ====================================================================== -->
+ <!-- Pattern on stroke of text ======== -->
+ <!-- ====================================================================== -->
+ <pattern patternUnits="userSpaceOnUse" id="pat4" x="0" y="0" width="20" height="10">
+ <rect x="0" y="0" width="10" height="10" fill="maroon"/>
+ <rect x="10" y="0" width="10" height="10" fill="blue"/>
+ </pattern>
+ <text font-family="Arial" font-size="40" fill="none" stroke="url(#pat4)" stroke-width="2" x="25" y="275">Pattern on stroke</text>
+ <text font-family="Arial" font-size="12" x="25" y="290">Pattern consists of maroon and blue columns</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-02-f-isvalid.html
new file mode 100644
index 0000000000..34f0a395db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-02-f-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-pattern-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-pattern-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-pattern-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <pattern id="pattern" viewBox="0 0 100 100" patternTransform="rotate(45)" height="0.1" width="0.1">
+ <rect y="50" width="50" height="50" fill="blue"/>
+ <rect x="50" width="50" height="50" fill="blue"/>
+ </pattern>
+ </defs>
+ <rect fill="url(#pattern)" width="480" height="480"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-03-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-03-f-isvalid.html
new file mode 100644
index 0000000000..1e8830c897
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-03-f-isvalid.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-pattern-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-pattern-03-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-pattern-03-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <pattern id="invisible1">
+ <rect width="100%" height="100%" fill="red"/>
+ </pattern>
+ <pattern id="invisible2" patternUnits="objectBoundingBox" patternContentUnits="objectBoundingBox">
+ <rect width="100%" height="100%" fill="red"/>
+ </pattern>
+ <pattern id="invisible3" width="0" height="0" patternUnits="objectBoundingBox" patternContentUnits="objectBoundingBox">
+ <rect width="1" height="1" fill="red"/>
+ </pattern>
+ <pattern id="invisible4" width="0" patternUnits="objectBoundingBox" patternContentUnits="objectBoundingBox">
+ <rect width="1" height="1" fill="red"/>
+ </pattern>
+ <pattern id="invisible5" width="0" height="0" patternUnits="userSpaceOnUse" patternContentUnits="objectBoundingBox">
+ <rect width="1" height="1" fill="red"/>
+ </pattern>
+ <pattern id="invisible6" height="0" patternUnits="userSpaceOnUse" patternContentUnits="objectBoundingBox">
+ <rect width="1" height="1" fill="red"/>
+ </pattern>
+ <pattern id="invisible7" height="0" patternUnits="userSpaceOnUse" patternContentUnits="userSpaceOnUse">
+ <rect width="100%" height="100%" fill="red"/>
+ </pattern>
+ </defs>
+
+ <g transform="translate(40 60)" stroke="black">
+ <rect width="100" height="100" fill="url(#invisible1) lime"/>
+ <rect x="100" width="100" height="100" fill="url(#invisible2) lime"/>
+ <rect x="200" width="100" height="100" fill="url(#invisible3) lime"/>
+ <rect x="300" width="100" height="100" fill="url(#invisible4) lime"/>
+
+ <rect y="100" width="100" height="100" fill="url(#invisible5) lime"/>
+ <rect x="100" y="100" width="100" height="100" fill="url(#invisible6) lime"/>
+ <rect x="200" y="100" width="100" height="100" fill="url(#invisible7) lime"/>
+
+ <!-- note that this is on purpose testing a broken uri -->
+ <rect x="300" y="100" width="100" height="100" fill="url(#invisible8) lime"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-04-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-04-f-isvalid.html
new file mode 100644
index 0000000000..266e93dd9a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-04-f-isvalid.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-pattern-04-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-pattern-04-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-pattern-04-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <pattern id="pattern1" patternUnits="userSpaceOnUse" x="0" y="0" width="100" height="100" viewBox="0 0 10 10" >
+ <circle cx="5" cy="5" r="1.9" fill="red" />
+ </pattern>
+ <pattern id="pattern2" xlink:href="#pattern1" y="30">
+ <circle cx="5" cy="2" r="2" fill="lime" />
+ </pattern>
+ </defs>
+ <rect fill="url(#pattern1)" stroke="none" x="1" y="1" width="200" height="200" />
+ <rect fill="url(#pattern2)" stroke="none" x="1" y="1" width="200" height="200" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-05-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-05-f-isvalid.html
new file mode 100644
index 0000000000..b394cf07ab
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-05-f-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-pattern-05-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-pattern-05-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-pattern-05-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <pattern id="Pattern1" patternUnits="userSpaceOnUse" width="100" height="100" viewBox="0 0 10 10" />
+ <pattern id="Pattern2" xlink:href="#Pattern1" />
+ <pattern id="Pattern3" xlink:href="#Pattern2">
+ <circle cx="5" cy="5" r="2" fill="green"/>
+ </pattern>
+ </defs>
+ <circle cx="50" cy="50" r="20" fill="red" />
+ <rect fill="url(#Pattern3)" width="100" height="100" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-06-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-06-f-isvalid.html
new file mode 100644
index 0000000000..0fbb200287
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-06-f-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-pattern-06-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-pattern-06-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-pattern-06-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <pattern id="testPattern" patternUnits="userSpaceOnUse" x="0" y="0" width="100" height="100" viewBox="0 0 10 10" >
+ <rect x="5" y="5" width="10" height="10" fill="red" />
+ </pattern>
+ </defs>
+ <use x="100" y="100" xlink:href="url(#testPattern)" />
+ <pattern patternUnits="userSpaceOnUse" x="10" y="10" width="20" height="20">
+ <rect x="5" y="5" width="10" height="10" fill="red" />
+ </pattern>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-07-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-07-f-isvalid.html
new file mode 100644
index 0000000000..5b710e35f8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-07-f-isvalid.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-pattern-07-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-pattern-07-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-pattern-07-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <pattern id="pattern1" patternUnits="userSpaceOnUse" x="0" y="0" width="100" height="100" viewBox="0 0 10 10">
+ <circle cx="5" cy="5" r="1.7" fill="red" />
+ </pattern>
+ <pattern id="pattern2" xlink:href="#invalidlink" patternUnits="userSpaceOnUse" x="0" y="0" width="100" height="100" viewBox="0 0 10 10">
+ <circle cx="5" cy="5" r="2" fill="lime" />
+ </pattern>
+ </defs>
+ <rect fill="url(#pattern1)" stroke="none" x="1" y="1" width="200" height="200" />
+ <rect fill="url(#pattern2)" stroke="none" x="1" y="1" width="200" height="200" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-08-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-08-f-isvalid.html
new file mode 100644
index 0000000000..448a015432
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-08-f-isvalid.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-pattern-08-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-pattern-08-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-pattern-08-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <pattern id="pattern1" patternUnits="userSpaceOnUse" x="0" y="0" width="100" height="100" viewBox="0 0 10 10">
+ <circle cx="5" cy="5" r="1.7" fill="red" />
+ </pattern>
+ <pattern id="pattern2" xlink:href="#invalidlink" width="0.5" height="0.5">
+ <circle cx="50" cy="50" r="20" fill="lime" />
+ </pattern>
+ </defs>
+ <rect fill="url(#pattern1)" stroke="none" x="1" y="1" width="200" height="200" />
+ <rect fill="url(#pattern2)" stroke="none" x="1" y="1" width="200" height="200" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-09-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-09-f-isvalid.html
new file mode 100644
index 0000000000..6fad233099
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/pservers-pattern-09-f-isvalid.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>pservers-pattern-09-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: pservers-pattern-09-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: pservers-pattern-09-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <pattern id="pattern1" patternUnits="userSpaceOnUse" x="0" y="0" width="100" height="100" viewBox="0 0 10 10">
+ <circle cx="5" cy="5" r="1.7" fill="red" />
+ </pattern>
+ <pattern id="pattern2" xlink:href="#invalidlink">
+ <circle cx="50" cy="50" r="20" fill="red" />
+ </pattern>
+ <pattern id="pattern3" patternUnits="userSpaceOnUse" x="0" y="0" width="0" height="0" viewBox="0 0 10 10">
+ <circle cx="5" cy="5" r="1.7" fill="red" />
+ </pattern>
+ </defs>
+ <rect fill="url(#pattern1)" stroke="none" x="1" y="1" width="200" height="200" />
+ <rect fill="url(#pattern2) lime" stroke="none" x="1" y="1" width="200" height="200" />
+ <rect fill="url(#pattern3) lime" stroke="none" x="201" y="1" width="200" height="200" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/render-elems-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/render-elems-01-t-isvalid.html
new file mode 100644
index 0000000000..50bd46bcbd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/render-elems-01-t-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>render-elems-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: render-elems-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: render-elems-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- First, fill shape with two different colors -->
+ <!-- ====================================================================== -->
+ <g transform="translate(30, 80)">
+ <g fill="green">
+ <path d="M60,0 l60,0 l60,60 l0,60 l-60,60 l-60,0 l-60,-60 l0,-60 z"/>
+ </g>
+ <g fill="black" transform="translate(200, 0)">
+ <path d="M60,0 l60,0 l60,60 l0,60 l-60,60 l-60,0 l-60,-60 l0,-60 z"/>
+ </g>
+ <text x="130" y="-30" font-size="28">Shape fill</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/render-elems-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/render-elems-02-t-isvalid.html
new file mode 100644
index 0000000000..8172ed3267
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/render-elems-02-t-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>render-elems-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: render-elems-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: render-elems-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Now, stroke shape with two different stroke width and color -->
+ <!-- ====================================================================== -->
+ <g transform="translate(30, 80)">
+ <g fill="none" stroke="green" stroke-width="3">
+ <path d="M60,0 l60,0 l60,60 l0,60 l-60,60 l-60,0 l-60,-60 l0,-60 z"/>
+ </g>
+ <g fill="none" stroke="black" stroke-width="9" transform="translate(200, 0)">
+ <path d="M60,0 l60,0 l60,60 l0,60 l-60,60 l-60,0 l-60,-60 l0,-60 z"/>
+ </g>
+ <text x="110" y="-30" font-size="28">Shape stroke</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/render-elems-06-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/render-elems-06-t-isvalid.html
new file mode 100644
index 0000000000..f48ade43a3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/render-elems-06-t-isvalid.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>render-elems-06-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: render-elems-06-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: render-elems-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs >
+ <font-face font-family="Blocky" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/Blocky.svg#Blocky"/>
+ </font-face-src>
+ </font-face>
+ <style>
+ @font-face {
+ font-family: BlockyWoff;
+ src: url(woffs/Blocky.woff) format("woff");
+ </style>
+ </defs>
+ <!-- ====================================================================== -->
+ <!-- First, fill text with two different colors -->
+ <!-- ====================================================================== -->
+ <text x="180" y="40" font-size="30">Text fill</text>
+ <g font-size="300" font-family="Blocky, BlockyWoff">
+ <text x="60" y="280" fill="green">G</text>
+ <text x="260" y="280" fill="navy">G</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/render-elems-07-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/render-elems-07-t-isvalid.html
new file mode 100644
index 0000000000..bfb73171a5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/render-elems-07-t-isvalid.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>render-elems-07-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: render-elems-07-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: render-elems-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font-face font-family="Blocky" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/Blocky.svg#Blocky"/>
+ </font-face-src>
+ </font-face>
+ <style>
+ @font-face {
+ font-family: BlockyWoff;
+ src: url(woffs/Blocky.woff) format("woff");
+ </style>
+ </defs>
+ <!-- ====================================================================== -->
+ <!-- Now, stroke text with two different stroke width and color -->
+ <!-- ====================================================================== -->
+ <text x="180" y="40" font-size="30">Text stroke</text>
+ <g font-size="300" font-family="Blocky, BlockyWoff">
+ <text x="60" y="280" fill="none" stroke="green" stroke-width="12">G</text>
+ <text x="260" y="280" fill="none" stroke="navy" stroke-width="12">G</text>
+ </g>
+ <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.9 $</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ </g>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/render-elems-08-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/render-elems-08-t-isvalid.html
new file mode 100644
index 0000000000..9411b42c13
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/render-elems-08-t-isvalid.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>render-elems-08-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: render-elems-08-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: render-elems-08-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font-face font-family="Blocky" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/Blocky.svg#Blocky"/>
+ </font-face-src>
+ </font-face>
+ <style>
+ @font-face {
+ font-family: BlockyWoff;
+ src: url(woffs/Blocky.woff) format("woff");
+ </style>
+ </defs>
+ <!-- ====================================================================== -->
+ <!-- Now, fill and stroke. The fill should happen first -->
+ <!-- ====================================================================== -->
+ <text x="120" y="40" font-size="30">Text fill and stroke</text>
+ <g font-size="300" font-family="Blocky, BlockyWoff">
+ <text x="60" y="280" fill="#2f8" stroke="green" stroke-width="12">G</text>
+ <text x="260" y="280" fill="#e9a" stroke="navy" stroke-width="12">G</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/render-groups-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/render-groups-01-b-isvalid.html
new file mode 100644
index 0000000000..3aa02dc352
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/render-groups-01-b-isvalid.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>render-groups-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: render-groups-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: render-groups-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="313">
+ <!-- Converted from Larabie Anglepoise by Batik ttf2svg -->
+ <font-face font-family="s-larabie-anglepoise" units-per-em="1000" panose-1="0 0 4 0 0 0 0 0 0 0" ascent="703" descent="-300" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="500" d="M63 0V700H438V0H63ZM125 63H375V638H125V63Z"/>
+ <glyph unicode="S" glyph-name="S" horiz-adv-x="385" d="M371 1H29V144H264Q264 151 264 166Q265 180 265 188Q265 212 249 212H132Q83 212 55 247Q29 279 29 329V566H335V422H136V375Q136 360 144 356Q148 355 168 355H279Q327 355 352 309Q371 273 371 221V1Z"/>
+ <glyph unicode="V" glyph-name="V" horiz-adv-x="351" d="M365 563L183 -33L0 563H101L183 296L270 563H365Z"/>
+ <glyph unicode="G" glyph-name="G" horiz-adv-x="367" d="M355 1H18V564H355V420H125V144H248V211H156V355H355V1Z"/>
+ <hkern g1="V" g2="G" k="-40"/>
+ </font>
+ <style>
+ @font-face {
+ font-family: anglepoise;
+ src: url(woffs/anglepoi.woff) format("woff");
+ }
+ </style>
+ </defs>
+ <!-- ====================================================================== -->
+ <!-- 3 overlapping elements in a group with opacity -->
+ <!-- ====================================================================== -->
+ <g transform="scale(1.8, 1.8)">
+ <!-- Background pattern -->
+ <rect x="20" y="10" width="230" height="155" fill="rgb(192, 192, 192)"/>
+ <line x1="40" y1="10" x2="40" y2="175" stroke="white" stroke-width="15"/>
+ <line x1="70" y1="10" x2="70" y2="175" stroke="white" stroke-width="15"/>
+ <line x1="100" y1="10" x2="100" y2="175" stroke="white" stroke-width="15"/>
+ <line x1="130" y1="10" x2="130" y2="175" stroke="white" stroke-width="15"/>
+ <line x1="160" y1="10" x2="160" y2="175" stroke="white" stroke-width="15"/>
+ <line x1="190" y1="10" x2="190" y2="175" stroke="white" stroke-width="15"/>
+ <line x1="220" y1="10" x2="220" y2="175" stroke="white" stroke-width="15"/>
+ <line x1="250" y1="10" x2="250" y2="175" stroke="white" stroke-width="15"/>
+ <rect x="20" y="10" width="230" height="155" fill="none" stroke="black"/>
+ <!-- The following group, as a whole, should be rendered with a .5 opacity -->
+ <!-- Conceptually, this means that the object is contains are first -->
+ <!-- rendered offscreen. Then, the offscreen is painted on the canvas with -->
+ <!-- half opacity. -->
+ <g opacity="0.5">
+ <!-- The following text, rectangle and image are drawn, fully opaque, in -->
+ <!-- the order they are defined. Therefore, none of the 'A' under the -->
+ <!-- rectangle should show. Neither should any of the rectangle under -->
+ <!-- the image. -->
+ <text font-family="s-larabie-anglepoise, anglepoise" font-size="120" x="30" y="90">SVG</text>
+ <rect x="70" y="55" width="130" height="70" fill="rgb(130, 0, 50)"/>
+ <image x="162" y="75" width="80" height="80" xlink:href="../images/sign.png"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/render-groups-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/render-groups-03-t-isvalid.html
new file mode 100644
index 0000000000..257e005df2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/render-groups-03-t-isvalid.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>render-groups-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: render-groups-03-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: render-groups-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="313">
+ <!-- Converted from Larabie Anglepoise by Batik ttf2svg -->
+ <font-face font-family="s-larabie-anglepoise" units-per-em="1000" panose-1="0 0 4 0 0 0 0 0 0 0" ascent="703" descent="-300" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="500" d="M63 0V700H438V0H63ZM125 63H375V638H125V63Z"/>
+ <glyph unicode="S" glyph-name="S" horiz-adv-x="385" d="M371 1H29V144H264Q264 151 264 166Q265 180 265 188Q265 212 249 212H132Q83 212 55 247Q29 279 29 329V566H335V422H136V375Q136 360 144 356Q148 355 168 355H279Q327 355 352 309Q371 273 371 221V1Z"/>
+ <glyph unicode="V" glyph-name="V" horiz-adv-x="351" d="M365 563L183 -33L0 563H101L183 296L270 563H365Z"/>
+ <glyph unicode="G" glyph-name="G" horiz-adv-x="367" d="M355 1H18V564H355V420H125V144H248V211H156V355H355V1Z"/>
+ <hkern g1="V" g2="G" k="-40"/>
+ </font>
+ <style>
+ @font-face {
+ font-family: anglepoise;
+ src: url(woffs/anglepoi.woff) format("woff");
+ }
+ </style>
+ </defs>
+ <!-- ====================================================================== -->
+ <!-- 3 overlapping elements in a group with opacity -->
+ <!-- ====================================================================== -->
+ <g transform="scale(1.8, 1.8)">
+ <!-- Background pattern -->
+ <rect x="20" y="10" width="230" height="155" fill="rgb(192, 192, 192)"/>
+ <line x1="40" y1="10" x2="40" y2="175" stroke="white" stroke-width="15"/>
+ <line x1="70" y1="10" x2="70" y2="175" stroke="white" stroke-width="15"/>
+ <line x1="100" y1="10" x2="100" y2="175" stroke="white" stroke-width="15"/>
+ <line x1="130" y1="10" x2="130" y2="175" stroke="white" stroke-width="15"/>
+ <line x1="160" y1="10" x2="160" y2="175" stroke="white" stroke-width="15"/>
+ <line x1="190" y1="10" x2="190" y2="175" stroke="white" stroke-width="15"/>
+ <line x1="220" y1="10" x2="220" y2="175" stroke="white" stroke-width="15"/>
+ <line x1="250" y1="10" x2="250" y2="175" stroke="white" stroke-width="15"/>
+ <rect x="20" y="10" width="230" height="155" fill="none" stroke="black"/>
+ <!-- The following text, rectangle and image are drawn, fully opaque, in -->
+ <!-- the order they are defined. Therefore, none of the 'A' under the -->
+ <!-- rectangle should show. Neither should any of the rectangle under -->
+ <!-- the image. -->
+ <text font-family="s-larabie-anglepoise, anglepoise" font-size="120" x="30" y="90">SVG</text>
+ <rect x="70" y="55" width="130" height="70" fill="rgb(130, 0, 50)"/>
+ <image x="162" y="75" width="80" height="80" xlink:href="../images/sign.png"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/script-handle-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/script-handle-01-b-isvalid.html
new file mode 100644
index 0000000000..aff8a24686
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/script-handle-01-b-isvalid.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>script-handle-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: script-handle-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: script-handle-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Displayed Title -->
+ <text x="140" y="20" fill="black">
+ Event and DOM Access Test
+ </text>
+
+ <!-- When the user clicks on the "target" group, the onMouseClick should -->
+ <!-- be invoked. That handler will hide the target and show a message -->
+ <!-- indicating that the test passed. -->
+ <g id="targetGroup">
+ <g id="target" onclick="onMouseClick( evt )">
+ <text x="70" y="150">Click on the blue square</text>
+ <rect x="60" y="160" width="20" height="20" fill="blue" stroke="none"/>
+ </g>
+ <g id="testPassed" visibility="hidden">
+ <text x="70" y="170" fill="green" font-size="30" font-weight="bold">Scripting Test Passed!</text>
+ </g>
+ </g>
+
+ <script type="text/ecmascript"><![CDATA[
+
+ function onMouseClick(evt) {
+
+ // Get Document
+ var target = evt.target;
+ var doc = target.ownerDocument;
+
+ // Make test result visible
+ var testPassed = doc.getElementById('testPassed');
+ testPassed.setAttribute('visibility', 'visible');
+
+ // Make target invisible
+ var target = doc.getElementById('target');
+ target.setAttribute('visibility', 'hidden');
+ }
+
+ ]]></script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/script-handle-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/script-handle-02-b-isvalid.html
new file mode 100644
index 0000000000..7adcbb8959
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/script-handle-02-b-isvalid.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>script-handle-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: script-handle-02-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: script-handle-02-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <!-- Displayed Title -->
+ <text x="100" y="40" fill="black" font-size="24">
+ Mouse event handlers test.
+ </text>
+
+ <!-- The test defines a target and defines all the handlers for the target -->
+ <!-- There are legends for each handler that are modified after the handler-->
+ <!-- has been invoked -->
+
+ <g id="targetGroup" transform="translate(60, 140)">
+ <text x="-40" y="-50" font-size="32">Target</text>
+ <text x="60" y="7" font-size="24">Use the target to trigger events</text>
+ <!-- The target has all the event handlers defined -->
+ <!-- Use this <g> instead -->
+ <g id="target" onfocusin="onEvent(evt, 'onfocusin')" onfocusout="onEvent(evt, 'onfocusout')" onactivate="onEvent(evt, 'onactivate')">
+
+ <circle cx="0" cy="0" r="30" fill="#cccccc" stroke="black"/>
+ <line x1="-30" y1="0" x2="30" y2="0"/>
+ <line x1="0" y1="-30" x2="0" y2="30"/>
+ </g>
+ </g>
+ <!-- targetGroup -->
+
+ <g id="labels">
+ <g id="mouseEvents" transform="translate(65, 190)">
+ <g id="mouseEventsLabels">
+ <text x="10" y="20" font-size="32">onfocusin</text>
+ <text x="10" y="50" font-size="32">onfocusout</text>
+ <text x="10" y="80" font-size="32">onactivate</text>
+ </g>
+ <g id="mouseEventsTestIndicators">
+ <!-- onfocusin -->
+ <rect x="-15" y="2" width="20" height="20" fill="green"/>
+ <rect id="onfocusin" x="-15" y="2" width="20" height="20" fill="red"/>
+
+ <!-- onfocusout -->
+ <rect x="-15" y="32" width="20" height="20" fill="green"/>
+ <rect id="onfocusout" x="-15" y="32" width="20" height="20" fill="red"/>
+
+ <!-- onactivate -->
+ <rect x="-15" y="62" width="20" height="20" fill="green"/>
+ <rect id="onactivate" x="-15" y="62" width="20" height="20" fill="red"/>
+
+ </g>
+ </g>
+ <!-- Mouse Events -->
+ </g>
+
+ <script type="text/ecmascript"><![CDATA[
+
+ function onEvent(evt, indicatorId){
+ // Get Document
+ var target = evt.target;
+ var doc = target.ownerDocument;
+
+ // Mark test as passed
+ var testPassed = doc.getElementById(indicatorId);
+ testPassed.setAttribute('visibility', 'hidden');
+ }
+ ]]></script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/script-handle-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/script-handle-03-b-isvalid.html
new file mode 100644
index 0000000000..9a15d2e59f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/script-handle-03-b-isvalid.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>script-handle-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: script-handle-03-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: script-handle-03-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <!-- Displayed Title -->
+ <text x="100" y="40" fill="black" font-size="24">
+ Mouse event handlers test.
+ </text>
+
+ <!-- The test defines a target and defines all the handlers for the target -->
+ <!-- There are legends for each handler that are modified after the handler-->
+ <!-- has been invoked -->
+
+ <g id="targetGroup" transform="translate(60, 140)">
+ <text x="-40" y="-50" font-size="32">Target</text>
+ <text x="60" y="7" font-size="24">Use the target to trigger events</text>
+ <!-- The target has all the event handlers defined -->
+ <!-- Use this <g> instead -->
+ <g id="target" onmousedown="onEvent(evt, 'onmousedown')" onmouseup="onEvent(evt, 'onmouseup')" onclick="onEvent(evt, 'onclick')">
+
+ <circle cx="0" cy="0" r="30" fill="#cccccc" stroke="black"/>
+ <line x1="-30" y1="0" x2="30" y2="0"/>
+ <line x1="0" y1="-30" x2="0" y2="30"/>
+ </g>
+ </g>
+ <!-- targetGroup -->
+
+ <g id="labels">
+ <g id="mouseEvents" transform="translate(65, 190)">
+ <g id="mouseEventsLabels">
+ <text x="10" y="20" font-size="32">onmousedown</text>
+ <text x="10" y="50" font-size="32">onmouseup</text>
+ <text x="10" y="80" font-size="32">onclick</text>
+ </g>
+ <g id="mouseEventsTestIndicators">
+ <!-- onmousedown -->
+ <rect x="-15" y="2" width="20" height="20" fill="green"/>
+ <rect id="onmousedown" x="-15" y="2" width="20" height="20" fill="red"/>
+
+ <!-- onmouseup -->
+ <rect x="-15" y="32" width="20" height="20" fill="green"/>
+ <rect id="onmouseup" x="-15" y="32" width="20" height="20" fill="red"/>
+
+ <!-- onclick -->
+ <rect x="-15" y="62" width="20" height="20" fill="green"/>
+ <rect id="onclick" x="-15" y="62" width="20" height="20" fill="red"/>
+
+ </g>
+ </g>
+ <!-- Mouse Events -->
+ </g>
+
+ <script type="text/ecmascript"><![CDATA[
+
+ function onEvent(evt, indicatorId){
+ // Get Document
+ var target = evt.target;
+ var doc = target.ownerDocument;
+
+ // Mark test as passed
+ var testPassed = doc.getElementById(indicatorId);
+ testPassed.setAttribute('visibility', 'hidden');
+ }
+ ]]></script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/script-handle-04-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/script-handle-04-b-isvalid.html
new file mode 100644
index 0000000000..7faa657bd9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/script-handle-04-b-isvalid.html
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>script-handle-04-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: script-handle-04-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: script-handle-04-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <!-- Displayed Title -->
+ <text x="100" y="40" fill="black" font-size="24">
+ Mouse event handlers test.
+ </text>
+
+ <!-- The test defines a target and defines all the handlers for the target -->
+ <!-- There are legends for each handler that are modified after the handler-->
+ <!-- has been invoked -->
+
+ <g id="targetGroup" transform="translate(60, 140)">
+ <text x="-40" y="-50" font-size="32">Target</text>
+ <text x="60" y="7" font-size="24">Use the target to trigger events</text>
+ <!-- The target has all the event handlers defined -->
+ <!-- Use this <g> instead -->
+ <g id="target" onmouseover="onEvent(evt, 'onmouseover')" onmousemove="onEvent(evt, 'onmousemove')" onmouseout="onEvent(evt, 'onmouseout')">
+
+ <circle cx="0" cy="0" r="30" fill="#cccccc" stroke="black"/>
+ <line x1="-30" y1="0" x2="30" y2="0"/>
+ <line x1="0" y1="-30" x2="0" y2="30"/>
+ </g>
+ </g>
+ <!-- targetGroup -->
+
+ <g id="labels">
+ <g id="mouseEvents" transform="translate(65, 190)">
+ <g id="mouseEventsLabels">
+ <text x="10" y="20" font-size="32">onmouseover</text>
+ <text x="10" y="50" font-size="32">onmousemove</text>
+ <text x="10" y="80" font-size="32">onmouseout</text>
+ </g>
+ <g id="mouseEventsTestIndicators">
+ <!-- onmouseover -->
+ <rect x="-15" y="2" width="20" height="20" fill="green"/>
+ <rect id="onmouseover" x="-15" y="2" width="20" height="20" fill="red"/>
+
+ <!-- onmousemove -->
+ <rect x="-15" y="32" width="20" height="20" fill="green"/>
+ <rect id="onmousemove" x="-15" y="32" width="20" height="20" fill="red"/>
+
+ <!-- onmouseout -->
+ <rect x="-15" y="62" width="20" height="20" fill="green"/>
+ <rect id="onmouseout" x="-15" y="62" width="20" height="20" fill="red"/>
+
+ </g>
+ </g>
+ <!-- Mouse Events -->
+ </g>
+
+ <script type="text/ecmascript"><![CDATA[
+
+ function onEvent(evt, indicatorId){
+ // Get Document
+ var target = evt.target;
+ var doc = target.ownerDocument;
+
+ // Mark test as passed
+ var testPassed = doc.getElementById(indicatorId);
+ testPassed.setAttribute('visibility', 'hidden');
+ }
+ ]]></script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/script-specify-01-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/script-specify-01-f-novalid.html
new file mode 100644
index 0000000000..14aa6f6179
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/script-specify-01-f-novalid.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>script-specify-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: script-specify-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/noSuchLanguage"
+ onload="document.getElementById('testPassed').setAttribute('visibility', 'hidden');
+ document.getElementById('testFailed').setAttribute('visibility', 'visible');">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: script-specify-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Displayed Title -->
+ <text x="140" y="20" fill="black">
+ contentScriptType Test
+ </text>
+
+ <!-- The onload handler would only be run if the user agent implemented the
+ bogus scripting language MIME type specified in contentScriptType="". -->
+ <g font-size="24" font-weight="bold" transform="translate(240,170)" text-anchor="middle">
+ <text id="testPassed" fill="green">Good, script didn't run.</text>
+ <text id="testFailed" fill="red" visibility="hidden">No! This is not ECMAScript!</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/script-specify-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/script-specify-02-f-isvalid.html
new file mode 100644
index 0000000000..9688f54247
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/script-specify-02-f-isvalid.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>script-specify-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: script-specify-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: script-specify-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Displayed Title -->
+ <text x="240" y="20" fill="black" text-anchor="middle">
+ Test unknown type attribute value on script element
+ </text>
+
+ <g font-size="24" font-weight="bold" transform="translate(240,170)" text-anchor="middle">
+ <text id="testPassed" fill="green">Good, script didn't run.</text>
+ <text id="testFailed" fill="red" visibility="hidden">No! This is not ECMAScript!</text>
+ </g>
+
+ <!-- The script should be run only if the user agent implemented the bogus language. -->
+ <script type="application/noSuchLanguage"><![CDATA[
+ document.getElementById('testPassed').setAttribute('visibility', 'hidden');
+ document.getElementById('testFailed').setAttribute('visibility', 'visible');
+ ]]></script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-circle-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-circle-01-t-isvalid.html
new file mode 100644
index 0000000000..ae7ff60659
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-circle-01-t-isvalid.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-circle-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-circle-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-circle-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <circle cx="100" cy="100" r="50" fill="none" stroke="black"/>
+ <circle cx="220" cy="100" r="35" fill="green" stroke="black"/>
+ <circle cx="340" cy="100" r="20" fill="black" stroke="lime" stroke-width="4"/>
+ <circle cx="100" cy="260" r="20" stroke="lime" fill="yellow" stroke-width="4"/>
+ <circle cx="220" cy="260" r="35" stroke="none" fill="blue"/>
+ <circle cx="340" cy="260" r="50" stroke="green" fill="none" stroke-width="10"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-circle-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-circle-02-t-isvalid.html
new file mode 100644
index 0000000000..f4f70d3553
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-circle-02-t-isvalid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-circle-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-circle-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-circle-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g fill="green" stroke="#000000">
+ <!-- Set cx and cy coordinate to default.-->
+ <circle r="50"/>
+
+ <!-- Set cx coordinate to default.-->
+ <circle cy="100" r="50"/>
+
+ <!-- Set cy coordinate to default.-->
+ <circle cx="100" r="50"/>
+
+ <!-- Set r attribute to 0 (should not display a circle).-->
+ <circle cx="100" cy="100" r="0"/>
+
+ <!-- Set all values to draw a circle -->
+ <circle cx="100" cy="100" r="50"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-ellipse-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-ellipse-01-t-isvalid.html
new file mode 100644
index 0000000000..e470800920
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-ellipse-01-t-isvalid.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-ellipse-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-ellipse-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-ellipse-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- First pair of ellipses. -->
+ <!-- ====================================================================== -->
+ <ellipse id="ellipse-01" fill="none" stroke="#000000" cx="50" cy="75" rx="30" ry="50"/>
+ <ellipse id="ellipse-02" fill="green" cx="160" cy="75" rx="30" ry="50"/>
+ <!-- ====================================================================== -->
+ <!-- Second pair of ellipses, should actually draw circles. -->
+ <!-- ====================================================================== -->
+ <ellipse id="ellipse-03" fill="none" stroke="#000000" cx="270" cy="80" rx="35" ry="35"/>
+ <ellipse id="ellipse-04" fill="green" cx="370" cy="80" rx="35" ry="35"/>
+ <!-- ====================================================================== -->
+ <!-- Third pair of ellipses. -->
+ <!-- ====================================================================== -->
+ <ellipse id="ellipse-05" fill="none" stroke="#0000FF" stroke-width="8" cx="50" cy="220" rx="30" ry="50"/>
+ <ellipse id="ellipse-06" fill="#00FF00" stroke="#0000FF" stroke-width="8" cx="160" cy="220" rx="30" ry="50"/>
+ <!-- ====================================================================== -->
+ <!-- Fourth pair of ellipses. -->
+ <!-- ====================================================================== -->
+ <ellipse id="ellipse-07" fill="#00FF00" stroke="#0000FF" stroke-width="8" cx="330" cy="220" rx="70" ry="40"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-ellipse-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-ellipse-02-t-isvalid.html
new file mode 100644
index 0000000000..ed45b7a46a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-ellipse-02-t-isvalid.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-ellipse-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-ellipse-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-ellipse-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g fill="blue" stroke="#000000">
+ <!-- Set cx and cy coordinate to default.-->
+ <ellipse rx="100" ry="50"/>
+
+ <!-- Set rx attribute to 0.-->
+ <ellipse cx="100" cy="150" rx="0" ry="50"/>
+
+ <!-- Set ry attribute to 0.-->
+ <ellipse cx="200" cy="50" rx="100" ry="0"/>
+
+ <!-- Set all values attribute to drawn an ellipse.-->
+ <ellipse cx="250" cy="250" rx="100" ry="50"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-ellipse-03-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-ellipse-03-f-isvalid.html
new file mode 100644
index 0000000000..96e4e3de98
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-ellipse-03-f-isvalid.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-ellipse-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-ellipse-03-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-ellipse-03-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g transform="translate(150,150)">
+ <line x1="0" y1="-100" x2="0" y2="100" stroke="black" />
+ <line x1="-100" y1="0" x2="100" y2="0" stroke="black" />
+ <ellipse cx="0" cy="0" rx="80" ry="50" fill="none" stroke="black" />
+ </g>
+
+ <g transform="translate(350,150) rotate(-30)">
+ <line x1="0" y1="-100" x2="0" y2="100" stroke="black" />
+ <line x1="-100" y1="0" x2="100" y2="0" stroke="black" />
+ <ellipse cx="0" cy="0" rx="80" ry="50" fill="none" stroke="black" />
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g> -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-grammar-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-grammar-01-f-isvalid.html
new file mode 100644
index 0000000000..c6aa3cfbd1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-grammar-01-f-isvalid.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-grammar-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-grammar-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-grammar-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g transform="translate(0,400)">
+ <g stroke="#070" stroke-width="8">
+ <polyline fill="#396"
+ points="270,-225 300,-245 320,-225 340,-245 280,-280
+ 390,-280 420,-240 280,-185"/>
+ <polygon fill="#5F9"
+ points="179,-185,218,-203,228,-245,202,-279,159,-280,131,-247,139,-205"/>
+ </g>
+ <g stroke="#3C6" stroke-width="3" fill="none">
+ <polyline
+ points="270-225 300-245 320-225 340-245 280-280
+ 390-280 420-240 280-185"/>
+ <polygon
+ points="179-185,218-203,228-245,202-279,159-280,131-247,139-205"/>
+ </g>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-intro-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-intro-01-t-isvalid.html
new file mode 100644
index 0000000000..1d7fc22cf4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-intro-01-t-isvalid.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-intro-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-intro-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-intro-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- Draw the boxes to contain the shapes and the text labels for the boxes -->
+ <!-- ====================================================================== -->
+ <g fill="none" stroke="#000000">
+ <!-- rects -->
+ <rect x="50" y="50" width="35" height="60"/>
+ <rect x="50" y="155" width="35" height="60"/>
+ <rect x="130" y="50" width="35" height="60"/>
+ <rect x="130" y="155" width="35" height="60"/>
+
+ <!-- circles -->
+ <rect x="210" y="50" width="60" height="60"/>
+ <rect x="210" y="155" width="60" height="60"/>
+
+ <!-- ellipses -->
+ <rect x="315" y="50" width="35" height="60"/>
+ <rect x="315" y="155" width="35" height="60"/>
+ <rect x="394" y="50" width="35" height="60"/>
+ <rect x="394" y="155" width="35" height="60"/>
+
+ <!-- line -->
+ <rect x="235" y="260" width="10" height="10"/>
+ </g>
+
+ <g font-family="Arial" font-size="8">
+ <text x="5" y="90">Stroked</text>
+ <text x="5" y="195">Unstroked</text>
+ <text x="50" y="135">Zero width rect</text>
+ <text x="130" y="135">Zero height rect</text>
+ <text x="210" y="135">Zero radius circle</text>
+ <text x="315" y="135">Zero x radius ellipse</text>
+ <text x="394" y="135">Zero y radius ellipse</text>
+ <text x="235" y="290">Zero length line</text>
+ </g>
+ <!-- ====================================================================== -->
+ <!-- Draw 4 rectangles, two with zero width, two with zero height -->
+ <!-- (stroked and unstroked) -->
+ <!-- ====================================================================== -->
+ <rect id="Zero-width-stroked-rect" fill="none" stroke="#000000" x="55" y="55" width="0" height="50"/>
+ <rect id="Zero-width-unstroked-rect" fill="#FF0000" stroke="none" x="55" y="160" width="0" height="50"/>
+ <rect id="Zero-height-stroked-rect" fill="#00FF00" stroke="#0000FF" x="135" y="55" width="25" height="0"/>
+ <rect id="Zero-height-rect" fill="#00FF00" stroke="none" x="135" y="160" width="25" height="0"/>
+ <!-- ====================================================================== -->
+ <!-- Draw two zero radius circles (stroked and unstroked) -->
+ <!-- ====================================================================== -->
+ <circle id="Zero-radius-stroked-circle" fill="none" stroke="#000000" cx="240" cy="80" r="0"/>
+ <circle id="Zero-radius-unstroked-circle" fill="#FF0000" stroke="none" cx="240" cy="185" r="0"/>
+ <!-- ====================================================================== -->
+ <!-- Draw 4 ellipses, two with a zero x radius, two with a zero y radius -->
+ <!-- (stroked and unstroked) -->
+ <!-- ====================================================================== -->
+ <ellipse id="Zero-x-radius-stroked-ellipse" fill="#00FF00" stroke="#0000FF" cx="332" cy="80" rx="0" ry="25"/>
+ <ellipse id="Zero-x-radius-unstroked-ellipse" fill="#00FF00" stroke="none" cx="332" cy="185" rx="0" ry="25"/>
+ <ellipse id="Zero-y-radius-stroked-ellipse" fill="none" stroke="#000000" cx="411" cy="80" rx="12" ry="0"/>
+ <ellipse id="Zero-y-radius-unstroked-ellipse" fill="#FF0000" stroke="none" cx="411" cy="185" rx="12" ry="0"/>
+ <!-- ====================================================================== -->
+ <!-- Draw a zero-length line -->
+ <!-- ====================================================================== -->
+ <line id="Zero-length-line" stroke="#0000FF" x1="240" y1="265" x2="240" y2="265"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-intro-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-intro-02-f-isvalid.html
new file mode 100644
index 0000000000..3d9765dd94
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-intro-02-f-isvalid.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-intro-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-intro-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-intro-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <path d="M35 25 L115 25 A 10 20 0 0 1 125 45 L 125 105 A 10 20 0 0 1 115 125 L 35 125 A 10 20 0 0 1 25 105 L 25 45 A 10 20 0 0 1 35 25" fill="red" />
+ <rect x="25" y="25" rx="10" ry="20" width="100" height="100" fill="black" />
+ <rect x="130" y="25" rx="10" ry="20" width="100" height="100" fill="red" />
+ <path d="M140 25 L220 25 A 10 20 0 0 1 230 45 L 230 105 A 10 20 0 0 1 220 125 L 140 125 A 10 20 0 0 1 130 105 L 130 45 A 10 20 0 0 1 140 25" fill="black" />
+
+ <path d="M300 125 A50 50 0 1 0 299.9999 125" fill="red" />
+ <circle cx="300" cy="75" r="50" fill="black" />
+ <circle cx="401" cy="75" r="50" fill="red" />
+ <path d="M401 125 A50 50 0 1 0 400.9999 125" fill="black" />
+
+ <path d="M60 305 A50 80 0 1 0 59.9999 305 Z" fill="red" />
+ <ellipse cx="60" cy="225" rx="50" ry="80" fill="black" />
+ <ellipse cx="161" cy="225" rx="50" ry="80" fill="red" />
+ <path d="M161 305 A50 80 0 1 0 160.9999 305 Z" fill="black" />
+
+ <path d="M220 150 L270 200 L220 250 Z" fill="red" />
+ <polygon points="220,150 270,200 220,250" fill="black" />
+ <polygon points="270,150 320,200 270,250" fill="red" />
+ <path d="M270 150 L320 200 L270 250 Z" fill="black" />
+
+ <path d="M350 250 L350 350 L400 350 L400 250 L450 250 L450 350" fill="none" stroke="red" stroke-width="10" />
+ <polyline fill="none" stroke="black" stroke-width="10" points="350,250 350,350 400,350 400,250 450,250 450,350" />
+ <polyline fill="none" stroke="red" stroke-width="10" points="350,135 350,235 400,235 400,135 450,135 450,235" />
+ <path d="M350 135 L350 235 L400 235 L400 135 L450 135 L450 235" fill="none" stroke="black" stroke-width="10" />
+
+ <path d="M225 275 L325 275" stroke-width="10" stroke="red" />
+ <line x1="225" y1="275" x2="325" y2="275" stroke-width="10" stroke="black" />
+ <line x1="225" y1="325" x2="325" y2="325" stroke-width="10" stroke="red" />
+ <path d="M225 325 L325 325" stroke-width="10" stroke="black" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g> -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-line-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-line-01-t-isvalid.html
new file mode 100644
index 0000000000..d5707729a3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-line-01-t-isvalid.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-line-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-line-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-line-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g id="diagonal-line-set">
+ <line x1="37.5" y1="137" x2="112.5" y2="50" fill="none" stroke="black" stroke-width="1"/>
+ <line x1="112.5" y1="137" x2="187.5" y2="50" fill="none" stroke="yellow" stroke-width="5"/>
+ <line x1="187.5" y1="137" x2="262.5" y2="50" fill="none" stroke="green" stroke-width="7.5"/>
+ <line x1="262.5" y1="137" x2="337.5" y2="50" fill="none" stroke="blue" stroke-width="10"/>
+ <line x1="337.5" y1="137" x2="412.5" y2="50" fill="none" stroke="fuchsia" stroke-width="12.5"/>
+ </g>
+ <g id="middle-figure" stroke="black" stroke-width="1">
+ <line x1="170" y1="200" x2="220" y2="200"/>
+ <line x1="220" y1="200" x2="220" y2="250"/>
+ <line x1="220" y1="250" x2="270" y2="250"/>
+ <line x1="270" y1="250" x2="270" y2="200"/>
+ <line x1="270" y1="200" x2="320" y2="200"/>
+ </g>
+ <g id="lower-left-figure" stroke="blue" stroke-width="10">
+ <line x1="25" y1="200" x2="75" y2="200"/>
+ <line x1="75" y1="200" x2="75" y2="250"/>
+ <line x1="75" y1="250" x2="125" y2="250"/>
+ <line x1="125" y1="250" x2="125" y2="200"/>
+ <line x1="125" y1="200" x2="175" y2="200"/>
+ </g>
+ <g id="lower-right-figure" stroke-width="10">
+ <line x1="370" y1="250" x2="420" y2="250" stroke="black"/>
+ <line x1="420" y1="200" x2="470" y2="200" stroke="fuchsia"/>
+ <line x1="320" y1="200" x2="370" y2="200" stroke="blue"/>
+ <line x1="370" y1="200" x2="370" y2="250" stroke="green"/>
+ <line x1="420" y1="250" x2="420" y2="200" stroke="orange"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-line-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-line-02-f-isvalid.html
new file mode 100644
index 0000000000..cf6374cf0e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-line-02-f-isvalid.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-line-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-line-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-line-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <line x1="100" y1="100" x2="300" y2="100" stroke-width="10" stroke="black" fill="red" />
+ <line x1="100" y1="100" x2="300" y2="100" stroke-width="10" stroke="black" fill="red" transform="rotate(15)"/>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-polygon-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-polygon-01-t-isvalid.html
new file mode 100644
index 0000000000..2de242bede
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-polygon-01-t-isvalid.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-polygon-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-polygon-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-polygon-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Test case label. -->
+ <!-- ====================================================================== -->
+ <!-- First two polygons, convex and "regular". -->
+ <!-- ====================================================================== -->
+ <!-- Open, convex, "regular". -->
+ <polygon id="polygon-01" fill="none" stroke="#000000" points="59,45,95,63,108,105,82,139,39,140,11,107,19,65"/>
+ <!-- Closed, convex, "regular". -->
+ <polygon id="polygon-02" fill="blue" points="179,45,218,63,228,105,202,139,159,140,131,107,139,65,179,45"/>
+ <!-- ====================================================================== -->
+ <!-- Third polygon, concave and irregular. -->
+ <!-- ====================================================================== -->
+ <!-- Closed, convex, "irregular". -->
+ <polygon id="polygon-03" fill="blue" stroke="black" stroke-width="6" points="350,45 375,80 410,95 375,110 350,145 325,120 290,95 325,70,350,45"/>
+ <!-- ====================================================================== -->
+ <!-- Fourth and fifth polygons. -->
+ <!-- ====================================================================== -->
+ <!-- Closed, convex, "regular". -->
+ <polygon id="polygon-05" fill="none" stroke="#0000FF" stroke-width="8" points="59,185,98,203,108,245,82,279,39,280,11,247,19,205,59,185"/>
+ <!-- Open, convex, "regular". -->
+ <polygon id="polygon-06" fill="#00FF00" stroke="#0000FF" stroke-width="8" points="179,185,218,203,228,245,202,279,159,280,131,247,139,205"/>
+ <!-- ====================================================================== -->
+ <!-- Sixth polygons, irregular with both concave and convex angles. -->
+ <!-- ====================================================================== -->
+ <polygon id="polygon-07" fill="none" stroke="#00FF00" stroke-width="8" points="270,225 300,245 320,225 340,245 280,280 390,280 420,240 280,185"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-polygon-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-polygon-02-t-isvalid.html
new file mode 100644
index 0000000000..d627e415cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-polygon-02-t-isvalid.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-polygon-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-polygon-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-polygon-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g stroke="#070" stroke-width="8">
+ <polygon id="polygon-01" fill="none"
+ points="59,45,95,63,108,105,82,139,39,140,11,107,19,65"/>
+ <polygon id="polygon-02" fill="#592"
+ points="179,45,218,63,228,105,202,139,159,140,131,107,139,65,179,45"/>
+ <polygon id="polygon-03" fill="#3D8"
+ points="350,45 375,80 410,95 375,110 350,145 325,120 290,95 325,70,350,45"/>
+ <polygon id="polygon-05" fill="none"
+ points="59,185,98,203,108,245,82,279,39,280,11,247,19,205,59,185"/>
+ <polygon id="polygon-06" fill="#5F9"
+ points="179,185,218,203,228,245,202,279,159,280,131,247,139,205"/>
+ <polygon id="polygon-07" fill="none"
+ points="270,225 300,245 320,225 340,245 280,280
+ 390,280 420,240 280,185"/>
+ </g>
+ <!-- now the equivalent paths-->
+ <g stroke="#3C6" stroke-width="3" fill="none">
+ <path d="M59,45 L95,63,108,105,82,139,39,140,11,107,19,65z"/>
+ <path d="M179,45 L218,63,228,105,202,139,159,140,131,107,139,65,179,45z"/>
+ <path d="M350,45 L375,80 410,95 375,110 350,145 325,120 290,95 325,70,350,45z"/>
+ <path d="M59,185 L98,203,108,245,82,279,39,280,11,247,19,205,59,185z"/>
+ <path d="M179,185 L218,203,228,245,202,279,159,280,131,247,139,205z"/>
+ <path d="M270,225 L300,245 320,225 340,245 280,280
+ 390,280 420,240 280,185z"/>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+<!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-polygon-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-polygon-03-t-isvalid.html
new file mode 100644
index 0000000000..b64ae5eff0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-polygon-03-t-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-polygon-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-polygon-03-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-polygon-03-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <polyline fill="red" points="80,200 80,300 150,250 80,200 250" />
+ <polyline fill="lime" points="80,200 80,300 150,250 80,200" />
+ <polyline fill="red" points="180,200 180,300 250,250 180,200" />
+ <polyline fill="lime" points="180,200 180,300 250,250 180,200 250" />
+ <polygon fill="red" points="80,60 80,160 150,110 80" />
+ <polygon fill="lime" points="80,60 80,160 150,110" />
+ <polygon fill="red" points="180,60 180,160 250,110" />
+ <polygon fill="lime" points="180,60 180,160 250,110 180" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-polyline-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-polyline-01-t-isvalid.html
new file mode 100644
index 0000000000..3954e8c3a1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-polyline-01-t-isvalid.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-polyline-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-polyline-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-polyline-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Test case label. -->
+ <!-- ====================================================================== -->
+ <!-- First two polylines. -->
+ <!-- ====================================================================== -->
+ <!-- Open sawtooth line. -->
+ <polyline id="polyline-01" fill="none" stroke="#000000" points="10,50,35,150,60,50,85,150,110,50,135,150"/>
+ <!-- text font-family="Arial" font-size="12" x="52" y="40">stroked</text-->
+ <!-- Closed pentagon shaped polyline (5 segments). -->
+ <polyline id="polyline-02" fill="none" stroke="blue" stroke-width="8" points="220,50,267,84,249,140,190,140,172,84,220,50"/>
+ <!--text font-family="Arial" font-size="12" x="202" y="40">stroked</text-->
+ <!-- ====================================================================== -->
+ <!-- Third polyline. -->
+ <!-- ====================================================================== -->
+ <!-- The sawtooth again, polylines can be filled. -->
+ <polyline id="polyline-03" fill="blue" stroke="#00FF00" stroke-width="4" points="310,50,335,150,360,50,385,150,410,50,435,150"/>
+ <!--text font-family="Arial" font-size="12" x="340" y="40">filled &amp; stroked</text-->
+ <!-- ====================================================================== -->
+ <!-- Fourth and fifth polylines. -->
+ <!-- ====================================================================== -->
+ <!-- An unclosed "septagon" shaped polyline (7th segment omitted). -->
+ <polyline id="polyline-04" fill="none" stroke="green" stroke-width="8" points="59,185,98,203,108,245,82,279,39,280,11,247,19,205"/>
+ <!--text font-family="Arial" font-size="12" x="36" y="175">stroked</text-->
+ <!-- Same shape, filled, shows difference with 'polygon'. -->
+ <polyline id="polyline-05" fill="#00FF00" stroke="#0000FF" stroke-width="8" points="189,185,228,203,238,245,212,279,169,280,141,247,149,205"/>
+ <!--text font-family="Arial" font-size="12" x="148" y="175">filled &amp; stroked</text-->
+ <!-- ====================================================================== -->
+ <!-- Sixth polylines, irregular with both concave and convex angles. -->
+ <!-- ====================================================================== -->
+ <polyline id="polyline-06" fill="#FF00FF" stroke="none" stroke-width="8" points="270,225 300,245 320,225 340,245 280,280 390,280 420,240 280,185"/>
+ <!--text font-family="Arial" font-size="12" x="330" y="175">filled</text-->
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-polyline-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-polyline-02-t-isvalid.html
new file mode 100644
index 0000000000..dda9c7194f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-polyline-02-t-isvalid.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-polyline-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-polyline-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-polyline-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g stroke="#070" stroke-width="8">
+ <!-- Open sawtooth line. -->
+ <polyline id="polyline-01" fill="none" points="10,50,35,150,60,50,85,150,110,50,135,150"/>
+ <!-- Closed pentagon shaped polyline (5 segments). -->
+ <polyline id="polyline-02" fill="none" points="220,50,267,84,249,140,190,140,172,84,220,50"/>
+ <!-- The sawtooth again, polylines can be filled. -->
+ <polyline id="polyline-03" fill="#396" points="310,50,335,150,360,50,385,150,410,50,435,150"/>
+ <!-- An unclosed "septagon" shaped polyline (7th segment omitted). -->
+ <polyline id="polyline-04" fill="none" points="59,185,98,203,108,245,82,279,39,280,11,247,19,205"/>
+ <!-- Same shape, filled, shows difference with 'polygon'. -->
+ <polyline id="polyline-05" fill="#396" points="189,185,228,203,238,245,212,279,169,280,141,247,149,205"/>
+ <polyline id="polyline-06" fill="#396"
+ points="270,225 300,245 320,225 340,245 280,280
+ 390,280 420,240 280,185"/>
+ </g>
+
+ <!-- now the equivalent paths-->
+ <g stroke="#3C6" stroke-width="3" fill="none">
+ <path d="M10,50 L35,150,60,50,85,150,110,50,135,150"/>
+ <path d="M220,50 L267,84,249,140,190,140,172,84,220,50"/>
+ <path d="M310,50 L335,150,360,50,385,150,410,50,435,150"/>
+ <path d="M59,185 L98,203,108,245,82,279,39,280,11,247,19,205"/>
+ <path d="M189,185 L228,203,238,245,212,279,169,280,141,247,149,205"/>
+ <path d="M270,225 L300,245 320,225 340,245 280,280
+ 390,280 420,240 280,185"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+<!--
+<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-01-t-isvalid.html
new file mode 100644
index 0000000000..5a74947fb7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-01-t-isvalid.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-rect-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-rect-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-rect-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- ====================================================================== -->
+ <!-- First of all draw two simple rectangles. One stroked , one filled. -->
+ <!-- ====================================================================== -->
+ <rect id="Simple-rect-no-fill" fill="none" stroke="#000000" x="30" y="46" width="50" height="80"/>
+ <rect id="Simple-rect-filled" fill="fuchsia" x="130" y="46" width="50" height="80"/>
+ <!-- ====================================================================== -->
+ <!-- Second set of rectangles this time with rounded corners. -->
+ <!-- ====================================================================== -->
+ <rect id="Simple-round-rect-no-fill" fill="none" stroke="#000000" x="250" y="46" width="50" height="80" rx="30"/>
+ <rect id="Simple-round-rect-filled" fill="fuchsia" x="350" y="46" width="50" height="80" rx="30"/>
+ <!-- ====================================================================== -->
+ <!-- Third set of rectangles. -->
+ <!-- ====================================================================== -->
+ <rect id="rect-03" fill="none" stroke="#0000FF" stroke-width="8" x="30" y="196" width="50" height="80"/>
+ <rect id="rect-04" fill="#00FF00" stroke="#0000FF" stroke-width="8" x="130" y="196" width="50" height="80"/>
+ <!-- ====================================================================== -->
+ <!-- Fourth set of rectangles. -->
+ <!-- ====================================================================== -->
+ <rect id="rect-05" fill="none" stroke="#0000FF" stroke-width="8" x="250" y="196" width="50" height="80" rx="30" ry="50"/>
+ <rect id="rect-06" fill="#00FF00" x="350" y="196" width="50" height="80" rx="30" ry="50"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-02-t-isvalid.html
new file mode 100644
index 0000000000..651458f765
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-02-t-isvalid.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-rect-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-rect-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-rect-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g fill="green" stroke="#000000">
+ <!-- Set x coordinate to default. -->
+ <rect y="46" width="50" height="80"/>
+
+ <!-- Set y coordinate to default. -->
+ <rect x="130" width="50" height="80"/>
+
+ <!-- Set width to default. -->
+ <rect x="250" y="46" height="80" width="0"/>
+
+ <!-- Set height to default. -->
+ <rect x="350" y="46" height="0" width="50"/>
+
+ <!-- Set rx to default. -->
+ <rect x="30" y="196" width="50" height="80" ry="20"/>
+
+ <!-- Set ry to default. -->
+ <rect x="130" y="196" width="50" height="80" rx="20"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-03-t-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-03-t-novalid.html
new file mode 100644
index 0000000000..8cfea5eba8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-03-t-novalid.html
@@ -0,0 +1,127 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-rect-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-rect-03-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-rect-03-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g transform="translate(0, 30)">
+ <g fill="red">
+ <g id="references">
+ <rect x="100" width="20" height="100" rx="50" ry="20"/>
+ <rect x="130" width="20" height="100" rx="10" ry="20"/>
+ <rect x="160" width="20" height="100" rx="10" ry="20"/>
+
+ <rect x="190" width="20" height="100" rx="10" ry="50"/>
+ <rect x="220" width="20" height="100" rx="10" ry="20"/>
+ <rect x="250" width="20" height="100" rx="10" ry="10"/>
+
+ <rect x="280" width="20" height="100" rx="5" ry="5"/>
+ <rect x="310" width="20" height="100" rx="0" ry="0"/>
+ <rect x="340" width="20" height="100" rx="0" ry="0"/>
+
+ <g transform="translate(45,0)">
+ <rect x="10" y="120" width="100" height="20" rx="50" ry="10"/>
+ <rect x="10" y="150" width="100" height="20" rx="15" ry="10"/>
+ <rect x="10" y="180" width="100" height="20" rx="10" ry="10"/>
+
+ <rect x="130" y="120" width="100" height="20" rx="50" ry="10"/>
+ <rect x="130" y="150" width="100" height="20" rx="20" ry="10"/>
+ <rect x="130" y="180" width="100" height="20" rx="10" ry="10"/>
+
+ <rect x="250" y="120" width="100" height="20" rx="5" ry="5"/>
+ <rect x="250" y="150" width="100" height="20" rx="0" ry="0"/>
+ <rect x="250" y="180" width="100" height="20" rx="0" ry="0"/>
+ </g>
+
+ <g transform="translate(100,100)">
+ <rect x="10" y="120" width="50" height="20" rx="25" ry="10"/>
+ <rect x="80" y="120" width="20" height="50" rx="10" ry="25"/>
+
+ <rect x="120" y="120" width="50" height="20" rx="25" ry="10"/>
+
+ <rect stroke-width="0.5" width="20" height="30" rx="10" ry="15" transform="translate(-10 -15) scale(2) translate(10 15) translate(85 52.5)"/>
+ <rect x="230" y="120" width="20" height="30" rx="10" ry="25"/>
+ </g>
+ </g>
+ </g>
+ <g id="tests" fill="lime">
+ <rect x="100" width="20" height="100" rx="50" ry="20"/>
+ <rect x="130" width="20" height="100" rx="15" ry="20"/>
+ <rect x="160" width="20" height="100" rx="10" ry="20"/>
+
+ <rect x="190" width="20" height="100" rx="80"/>
+ <rect x="220" width="20" height="100" rx="20"/>
+ <rect x="250" width="20" height="100" rx="10"/>
+
+ <rect x="280" width="20" height="100" rx="5"/>
+ <rect x="310" width="20" height="100" rx="0"/>
+ <rect x="340" width="20" height="100" rx="0" ry="0"/>
+
+ <g transform="translate(45,0)">
+ <rect x="10" y="120" width="100" height="20" rx="50" ry="20"/>
+ <rect x="10" y="150" width="100" height="20" rx="15" ry="20"/>
+ <rect x="10" y="180" width="100" height="20" rx="10" ry="20"/>
+
+ <rect x="130" y="120" width="100" height="20" ry="50"/>
+ <rect x="130" y="150" width="100" height="20" ry="20"/>
+ <rect x="130" y="180" width="100" height="20" ry="10"/>
+
+ <rect x="250" y="120" width="100" height="20" ry="5"/>
+ <rect x="250" y="150" width="100" height="20" ry="0"/>
+ <rect x="250" y="180" width="100" height="20" rx="0" ry="0"/>
+ </g>
+
+ <g transform="translate(100,100)">
+ <rect x="10" y="120" width="50" height="20" rx="50"/>
+ <rect x="80" y="120" width="20" height="50" ry="50"/>
+
+ <rect x="120" y="120" width="50" height="20" rx="200" ry="200"/>
+
+ <rect width="20" height="30" rx="50" transform="translate(-10 -15) scale(2) translate(10 15) translate(85 52.5)"/>
+ <rect x="230" y="120" width="20" height="30" ry="50"/>
+ </g>
+ </g>
+
+ <use xlink:href="#references" fill="none" stroke="black"/>
+
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect xml:id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-04-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-04-f-isvalid.html
new file mode 100644
index 0000000000..30ad9d4bd5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-04-f-isvalid.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-rect-04-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-rect-04-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-rect-04-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect x="25" y="25" width="200" height="100" rx="50" ry="50" fill="red" />
+ <rect x="25" y="25" width="200" height="100" rx="50" fill="black" />
+
+ <rect x="275" y="25" width="200" height="100" rx="50" ry="50" fill="red" />
+ <rect x="275" y="25" width="200" height="100" ry="50" fill="black" />
+
+ <rect x="150" y="135" width="200" height="100" fill="black" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-05-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-05-f-isvalid.html
new file mode 100644
index 0000000000..f971231d30
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-05-f-isvalid.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-rect-05-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-rect-05-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-rect-05-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g transform="translate(100,100)">
+ <rect x="0" y="0" width="75" height="100" fill="none" stroke="orange" stroke-width="10" />
+ <line x1="0" y1="0" x2="75" y2="0" stroke-width="10" stroke="black" stroke-linecap="square" />
+ <line x1="0" y1="0" x2="0" y2="100" stroke-width="10" stroke="black" stroke-linecap="square" />
+ </g>
+
+ <g transform="translate(100,100) rotate(-30) skewX(20)">
+ <rect x="100" y="100" width="100" height="100" fill="none" stroke="orange" stroke-width="5" />
+ <line x1="100" y1="100" x2="100" y2="200" stroke-width="5" stroke="black" stroke-linecap="square" />
+ <line x1="100" y1="100" x2="200" y2="100" stroke-width="5" stroke="black" stroke-linecap="square" />
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-06-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-06-f-isvalid.html
new file mode 100644
index 0000000000..4fa17abd67
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-06-f-isvalid.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-rect-06-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-rect-06-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-rect-06-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect x="25" y="50" width="200" height="100" rx="100" ry="50" fill="red" />
+ <rect x="25" y="50" width="200" height="100" rx="150" ry="50" fill="black" />
+ <rect x="25" y="200" width="200" height="100" rx="150" ry="50" fill="red" />
+ <rect x="25" y="200" width="200" height="100" rx="100" ry="50" fill="black" />
+
+ <rect x="275" y="50" width="200" height="100" ry="50" rx="100" fill="red" />
+ <rect x="275" y="50" width="200" height="100" ry="75" rx="100" fill="black" />
+ <rect x="275" y="200" width="200" height="100" ry="75" rx="100" fill="red" />
+ <rect x="275" y="200" width="200" height="100" ry="50" rx="100" fill="black" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-07-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-07-f-isvalid.html
new file mode 100644
index 0000000000..d8d11f6476
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/shapes-rect-07-f-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>shapes-rect-07-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: shapes-rect-07-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: shapes-rect-07-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect x="25" y="50" width="200" height="100" rx="100" fill="red" />
+ <rect x="25" y="50" width="200" height="100" rx="100" ry="50" fill="black" />
+ <rect x="25" y="200" width="200" height="100" rx="100" ry="50" fill="red" />
+ <rect x="25" y="200" width="200" height="100" rx="100" fill="black" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-01-t-isvalid.html
new file mode 100644
index 0000000000..0680592081
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-01-t-isvalid.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-cond-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-cond-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-cond-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <switch>
+ <rect fill="red" x="0" y="0" width="220" height="150" requiredExtensions="http://example.org/bogus"/>
+ <rect fill="green" x="0" y="150" width="220" height="150"/>
+ <rect fill="blue" x="240" y="0" width="220" height="150"/>
+ </switch>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-02-t-haswarn.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-02-t-haswarn.html
new file mode 100644
index 0000000000..e33ec280aa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-02-t-haswarn.html
@@ -0,0 +1,561 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-cond-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-cond-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-cond-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g fill="black" stroke="none" font-size="24" font-weight="normal" font-family="Arial, Tahoma, Verdana, 'Arial Unicode MS', Code2000">
+ <!-- a blank one
+<text x="20" y="220" xml:lang="">
+<tspan font-weight="bold" >
+ ?</text>
+<text x="230" y="150" xml:lang="en"></text>
+-->
+ <!-- put sample here for testing -->
+ <switch>
+ <g systemLanguage="af">
+ <text x="20" y="220" xml:lang="af" font-size="16">Waarom kan hulle nie net doodgewoon Afrikaans praat nie?</text>
+ <text x="230" y="150" xml:lang="en">Afrikaans</text>
+ </g>
+ <g systemLanguage="am">
+ <text x="20" y="220" xml:lang="am" font-family="'GF Zemen Unicode',Code2000" font-size="28">ለምንድነው አማርኛ የማይናገሩት፧</text>
+ <text x="230" y="150" xml:lang="en">Amharic</text>
+ </g>
+ <g systemLanguage="ar">
+ <!-- this is a tiny test so there is no text-anchor, thus rtl text is explicitly positioned -->
+ <text x="20" y="220" xml:lang="ar-SA" font-family=" Tahoma,'MS Farsi','Arial Unicode MS'" font-size="19">لماذا لا يتكلمون اللّغة العربية فحسب؟</text>
+ <text x="230" y="150" xml:lang="en">Arabic (SA)</text>
+ </g>
+ <g systemLanguage="bg">
+ <text x="20" y="220" xml:lang="bg" font-size="18">Защо те просто не могат да говорят български ?</text>
+ <text x="230" y="150" xml:lang="en">Bulgarian</text>
+ </g>
+ <g systemLanguage="bn">
+ <text x="20" y="220" xml:lang="bn" font-family="'Arial Unicode MS','UT Bengali Khulna'" font-size="28">ওরা েকন বাংলা বলেত পাের না ?</text>
+ <text x="230" y="150" xml:lang="en">Bengali</text>
+ </g>
+ <!--
+Tibetan needs complex layout: this will not work correctly though the font has the right glyphs:
+<g systemLanguage="bo">
+ <text x="20" y="220" xml:lang="bo" font-family="'Arial Unicode MS'" font-size="18">
+
+ག་རེ་བྱས་ཁོ་རང་ཚོས་ བོད་ སྐད་ཆ་དེ་ག་རང་བཤད་ཀྱི་མ་རེད།</text>
+ <text x="230" y="150" xml:lang="en">Tibetan</text>
+ </g>-->
+ <g systemLanguage="ca">
+ <text x="20" y="220" xml:lang="bg" font-size="20">Per què no poden simplement parlar en català ?</text>
+ <text x="230" y="150" xml:lang="en">Catalan</text>
+ </g>
+ <g systemLanguage="cs">
+ <text x="20" y="220" xml:lang="cs">Proč prostě nemluví česky ?</text>
+ <text x="230" y="150" xml:lang="en">Czech</text>
+ </g>
+ <g systemLanguage="cy">
+ <text x="20" y="220" xml:lang="cy" font-size="20">Pam dydyn nhw ddim yn siarad Cymraeg ?</text>
+ <text x="230" y="150" xml:lang="en">Welsh</text>
+ </g>
+ <g systemLanguage="da">
+ <text x="20" y="220" xml:lang="da">Hvorfor kan de ikke bare tale dansk ?</text>
+ <text x="230" y="150" xml:lang="en">Danish</text>
+ </g>
+ <!-- need a generic german, too -->
+ <g systemLanguage="de-DE">
+ <text x="20" y="220" xml:lang="de-DE" font-size="22">Warum sprechen sie nicht einfach Deutsch ?</text>
+ <text x="230" y="150" xml:lang="en">German (DE)</text>
+ </g>
+ <g systemLanguage="el">
+ <text x="20" y="220" xml:lang="el-GR" font-size="22">Μα γιατί δεν μπορούν να μιλήσουν Ελληνικά ;</text>
+ <text x="230" y="150" xml:lang="en">Greek (modern, GR)</text>
+ </g>
+ <g systemLanguage="en">
+ <text x="20" y="220" xml:lang="en-US">Why can't they just speak English ?</text>
+ <text x="230" y="150" xml:lang="en">English (US)</text>
+ </g>
+ <g systemLanguage="es">
+ <text x="20" y="220" xml:lang="es-ES" font-size="18">¿Por qué no pueden simplemente hablar en castellano ?</text>
+ <text x="230" y="150" xml:lang="en">Spanish (ES)</text>
+ </g>
+ <g systemLanguage="eu">
+ <text x="20" y="220" xml:lang="eu" font-size="21">Zergatik ezin dute  Euzkeraz bakarrik hitzegin?</text>
+ <text x="230" y="150" xml:lang="en">Basque</text>
+ </g>
+ <g systemLanguage="fa">
+ <text x="20" y="220" xml:lang="fa" font-family=" Tahoma,'MS Farsi','Arial Unicode MS'" font-size="22">خب، چرا فارسى صحبت نمى كنند؟</text>
+ <text x="230" y="150" xml:lang="en">Farsi</text>
+ </g>
+ <g systemLanguage="fi">
+ <text x="20" y="220" xml:lang="fi" font-size="20">Miksi he eivät yksinkertaisesti puhu suomea ?</text>
+ <text x="230" y="150" xml:lang="en">Finnish</text>
+ </g>
+ <!-- put Canadian French before generic French -->
+ <g systemLanguage="fr">
+ <text x="20" y="220" xml:lang="fr-fR" font-size="17">Pourquoi, tout simplement, ne parlent-ils pas en Français ?</text>
+ <text x="230" y="150" xml:lang="en">French (FR)</text>
+ </g>
+ <g systemLanguage="gd">
+ <text x="20" y="220" xml:lang="gd" font-size="20">Carson nach eil iad a'bruidhinn na Gàidhlige ?</text>
+ <text x="230" y="150" xml:lang="en">Scots Gaelic</text>
+ </g>
+ <g systemLanguage="gu">
+ <text x="20" y="220" xml:lang="gu" font-family="'Arial Unicode MS'" font-size="28">બદ્ધા લોકો ગુજરાતી કૅમ નથી બોલતા?</text>
+ <text x="230" y="150" xml:lang="en">Gujarti (IN)</text>
+ </g>
+ <g systemLanguage="he">
+ <!-- he or iw, check -->
+ <text x="20" y="220" xml:lang="he" font-family="Tahoma,'Arial Unicode MS'" font-size="22">למה הם פשוט לא מדברים עברית ?</text>
+ <text x="230" y="150" xml:lang="en">Hebrew (modern)</text>
+ </g>
+ <g systemLanguage="hi">
+ <text x="20" y="220" xml:lang="hi" font-family="Mangal,Code2000,'Arial Unicode MS'">यह लोग हिन्दी क्यों नहीं बोल सकते हैं ?</text>
+ <text x="230" y="150" xml:lang="en">Hindi</text>
+ </g>
+ <g systemLanguage="hr">
+ <text x="20" y="220" xml:lang="hr">Zašto jednostavno ne govore hrvatski ?</text>
+ <text x="230" y="150" xml:lang="en">Croatian</text>
+ </g>
+ <g systemLanguage="hu">
+ <text x="20" y="220" xml:lang="hu" font-size="22">Miért nem beszélnek egyszerűen magyarul ?</text>
+ <text x="230" y="150" xml:lang="en">Hungarian</text>
+ </g>
+ <g systemLanguage="hy">
+ <text x="20" y="220" xml:lang="hy" font-family="Sylfaen,Code2000,'Arial Unicode MS'" font-size="22">
+ Ինչու՞ նրանք չեն խոսում Հայերեն
+ </text>
+ <text x="230" y="150" xml:lang="en">Armenian</text>
+ </g>
+ <g systemLanguage="id">
+ <text x="20" y="220" xml:lang="id" font-size="18">Mengapa mereka tidak bisa bicara bahasa Indonesia ?</text>
+ <text x="230" y="150" xml:lang="en">Indonesian</text>
+ </g>
+ <g systemLanguage="is">
+ <text x="20" y="220" xml:lang="is" font-size="20">Hvers vegna geta þeir ekki réttlátur tala Íslenska ?</text>
+ <text x="230" y="150" xml:lang="en">Icelandic</text>
+ </g>
+ <g systemLanguage="it">
+ <text x="20" y="220" xml:lang="it" font-size="18">Perchè non possono semplicemente parlare italiano ?</text>
+ <text x="230" y="150" xml:lang="en">Italian</text>
+ </g>
+ <g systemLanguage="iu">
+ <!-- unable to distinguish North Baffin Island Inuktitut from
+ South/Central Baffin Island Inuktitut
+ because ISO 3166 codes do not offer any finer
+ resolution than 'Canadian' -->
+ <text x="20" y="220" xml:lang="iu" font-family="NunacomU,'Ballymun RO','Arial Unicode MS'" font-size="28">ᓱᒻᒪᓂᒃᑯᐊ ᐃᓄᒃᑎᑐ ᑐᐃᓐᓇᔭᙱᓚᑦ</text>
+ <text x="230" y="150" xml:lang="en">Inuktitut</text>
+ </g>
+ <g systemLanguage="ja-JP">
+ <text x="20" y="220" xml:lang="ja-JP" font-family="'MS Gothic',MS ゴシック,'MS Mincho',MS 明朝,Code2000,'Arial Unicode MS',DFP-SMTWSong" font-size="22">なぜ、みんな日本語を話してくれないのか?</text>
+ <text x="230" y="150" xml:lang="en">Japanese (JP)</text>
+ </g>
+ <g systemLanguage="jw">
+ <text x="20" y="220" xml:lang="jw" font-size="20">Kenapa kok ora nganggo  basa Jawa  wae?</text>
+ <text x="230" y="150" xml:lang="en">Javanese</text>
+ </g>
+ <g systemLanguage="ka">
+ <text x="20" y="220" xml:lang="ka" font-family="Sylfaen,Code2000,'Arial Unicode MS'" font-size="20">რატომ არ ლაპარაკობენ ისინი ქართულად ?</text>
+ <text x="230" y="150" xml:lang="en">Georgian</text>
+ </g>
+ <g systemLanguage="kk">
+ <text x="20" y="220" xml:lang="kk" font-family="'Arial Unicode MS',Code2000">Олар неге қазақ тiлiнде сойлемейдi?</text>
+ <text x="230" y="150" xml:lang="en">Kazakh</text>
+ </g>
+ <g systemLanguage="kn">
+ <text x="20" y="220" xml:lang="kn" font-family="'Arial Unicode MS',Code2000" font-size="28">ಅವರು ಕನ್ನಡ ಮಾತನಾಡಬಹುದಲ್ಲಾ?</text>
+ <text x="230" y="150" xml:lang="en">Kannada</text>
+ </g>
+ <g systemLanguage="ko">
+ <text x="20" y="220" xml:lang="ko" font-family="GulimChe,굴림체,Gulim,굴림,BatangChe,바탕체,Batang,바탕,Code2000,'Arial Unicode MS'" font-size="15">세계의 모든 사람들이 한국어 를 이해한다면 얼마나 좋을까?</text>
+ <text x="230" y="150" xml:lang="en">Korean</text>
+ </g>
+ <g systemLanguage="ky">
+ <text x="20" y="220" xml:lang="ky" font-family="'Arial Unicode MS',Code2000">Емне үчүн алар кыргызча сүйлбйт?</text>
+ <text x="230" y="150" xml:lang="en">Kirghiz</text>
+ </g>
+ <g systemLanguage="lt">
+ <text x="20" y="220" xml:lang="lt" font-size="28">Kodėl gi jie nekalba lietuviškai ?</text>
+ <text x="230" y="150" xml:lang="en">Lithuanian</text>
+ </g>
+ <g systemLanguage="mk">
+ <text x="20" y="220" xml:lang="mk" font-size="20">Зошто тие едноставно не говорат македонски ?</text>
+ <text x="230" y="150" xml:lang="en">Macedonian</text>
+ </g>
+ <g systemLanguage="mr">
+ <text x="20" y="220" xml:lang="mr" font-family="Mangal,Code2000,'Arial Unicode MS'" font-size="26">लोकांना मराठी का बोलता येत नाही?</text>
+ <text x="230" y="150" xml:lang="en">Marathi</text>
+ </g>
+ <g systemLanguage="nl">
+ <text x="20" y="220" xml:lang="nl" font-size="21">Waarom spreken ze niet gewoon Nederlands ?</text>
+ <text x="230" y="150" xml:lang="en">Dutch</text>
+ </g>
+ <g systemLanguage="no">
+ <text x="20" y="220" xml:lang="no" font-size="21">Hvorfor kan de ikke bare snakke norsk ?</text>
+ <text x="230" y="150" xml:lang="en">Norwegian</text>
+ </g>
+ <g systemLanguage="or">
+ <text x="20" y="220" xml:lang="or" font-family="'Arial Unicode MS',Code2000" font-size="26">ସେମାନେ ଉଡିଯା ରେ କହିନ୍କି କହିବେ ନହିଁ?</text>
+ <text x="230" y="150" xml:lang="en">Oriya</text>
+ </g>
+ <g systemLanguage="pl">
+ <text x="20" y="220" xml:lang="pl">Dlaczego oni nie mówią po polsku ?</text>
+ <text x="230" y="150" xml:lang="en">Polish</text>
+ </g>
+ <!-- test two specific types of Portugese, then a generic alternative -->
+ <g systemLanguage="pt-PT">
+ <text x="20" y="220" xml:lang="pt-PT" font-size="18">Porque é que eles não falam simplesmente em Português ?</text>
+ <text x="230" y="150" xml:lang="en">Portugese (PT)</text>
+ </g>
+ <g systemLanguage="pt-BR">
+ <text x="20" y="220" xml:lang="pt-BR" font-size="17">Porque é que eles não falam em Português (do Brasil) ?</text>
+ <text x="230" y="150" xml:lang="en">Portugese (BR)</text>
+ </g>
+ <g systemLanguage="pt">
+ <text x="20" y="220" xml:lang="pt-PT" font-size="18">Porque é que eles não falam simplesmente em Português ?</text>
+ <text x="230" y="150" xml:lang="en">Portugese</text>
+ </g>
+ <g systemLanguage="ro">
+ <text x="20" y="220" xml:lang="ro">De ce ei nu vorbesc moldoveneşte ?</text>
+ <text x="230" y="150" xml:lang="en">Romanian</text>
+ </g>
+ <g systemLanguage="ru">
+ <text x="20" y="220" xml:lang="ru">Почему же они не говорят по-русски ?</text>
+ <text x="230" y="150" xml:lang="en">Russian</text>
+ </g>
+ <g systemLanguage="sa">
+ <text x="20" y="220" xml:lang="sa" font-family="Mangal,Code2000,'Arial Unicode MS'" font-size="26">ते किं संस्कृतः माम वदन्ति ?</text>
+ <text x="230" y="150" xml:lang="en">Sanskrit</text>
+ </g>
+ <g systemLanguage="sr">
+ <text x="20" y="220" xml:lang="sr">Zašto jednostavno ne govore srpski ?</text>
+ <text x="230" y="150" xml:lang="en">Serbian</text>
+ </g>
+ <g systemLanguage="si">
+ <text x="20" y="220" xml:lang="si" font-family="'Andale Mono WT J'" font-size="26">අැයි ඔවුන්ට ඉංගරිස කතා ෛනබ ?</text>
+ <text x="230" y="150" xml:lang="en">Sinhalese</text>
+ <!-- Sinhalese needs somewhat complex layout (many paired special cases, see
+http://www-texdev.mpce.mq.edu.au/l2h/indic/Sinhala/lreport/node1.html
+so this 'chart' font is not entirely suitable-->
+ </g>
+ <g systemLanguage="sl">
+ <text x="20" y="220" xml:lang="sl">Zakaj vendar ne govorijo slovensko ?</text>
+ <text x="230" y="150" xml:lang="en">Slovenian</text>
+ </g>
+ <g systemLanguage="sq">
+ <text x="20" y="220" xml:lang="sq">Pse nuk duan të flasin vetëm shqip ?</text>
+ <text x="230" y="150" xml:lang="en">Albanian</text>
+ </g>
+ <g systemLanguage="sv">
+ <text x="20" y="220" xml:lang="sv">Varför pratar dom inte bara svenska ?</text>
+ <text x="230" y="150" xml:lang="en">Swedish</text>
+ </g>
+ <g systemLanguage="ta">
+ <text x="20" y="220" xml:lang="ta" font-family="Latha,'Arial Unicode MS'" font-size="20">அவர்கள் ஏன் தமிழில் பேசக்கூடாது ?</text>
+ <text x="230" y="150" xml:lang="en">Tamil</text>
+ </g>
+ <g systemLanguage="te">
+ <text x="20" y="220" xml:lang="te" font-family="'Arial Unicode MS'">
+ తెలుగు లో ఎందుకు మాట్లాడరు?
+ </text>
+ <text x="230" y="150" xml:lang="en">Telugu</text>
+ </g>
+ <g systemLanguage="tg">
+ <text x="20" y="220" xml:lang="tg" font-size="20">Čaro onho ba zaboni točiki gap namezanand?</text>
+ <text x="230" y="150" xml:lang="en">Tajik</text>
+ </g>
+ <g systemLanguage="th">
+ <text x="20" y="220" xml:lang="th" font-family="Tahoma,CordiaUPC,BrowalliaUPC,DilleniaUPC,EucrosiaUPC,FreesiaUPC,JasmineUPC, KodChiangUPC,LilyUPC,'Arial Unicode MS'" font-size="28">ทำไมเขาถึงไม่พูด ภาษาไทย </text>
+ <text x="230" y="150" xml:lang="en">Thai</text>
+ </g>
+ <g systemLanguage="tl">
+ <text x="20" y="220" xml:lang="tl" font-size="19">Bakit hindi na lang sila magsalita ng Tagalog ?</text>
+ <text x="230" y="150" xml:lang="en">Tagalog (Filipino)</text>
+ </g>
+ <g systemLanguage="tr">
+ <text x="20" y="220" xml:lang="tr">Neden Türkçe konuşamıyorlar?</text>
+ <text x="230" y="150" xml:lang="en">Turkish</text>
+ </g>
+ <g systemLanguage="tt">
+ <text x="20" y="220" xml:lang="tt" font-family="'Arial Unicode MS',Code2000" font-size="22">Нишләп олар татарча сүләша алмыйлар?</text>
+ <text x="230" y="150" xml:lang="en">Tatar</text>
+ </g>
+ <g systemLanguage="uk">
+ <text x="20" y="220" xml:lang="uk">Чому б їм не розмовляти українською ?</text>
+ <text x="230" y="150" xml:lang="en">Ukranian</text>
+ </g>
+ <g systemLanguage="ur-IN">
+ <text x="20" y="220" xml:lang="ur-IN" font-family=" Tahoma,'MS Farsi','Arial Unicode MS'" font-size="22">ﻦﻴﻫ ﻰﺘﻠﻭﺒ ﻦﻴﻬﻨ ﻦﻭﻴﻜ ﻮﺪﺭﺃ بس ﻮﻩ ﻟﻮﮒ؟</text>
+ <text x="230" y="150" xml:lang="en">Urdu (IN)</text>
+ </g>
+ <g systemLanguage="ur-PK">
+ <text x="20" y="220" xml:lang="ur-PK" font-family=" Tahoma,'MS Farsi','Arial Unicode MS'" font-size="19">ﻦﻴﻫ ﻰﺘﻠﻭﺒ ﻦﻴﻬﻨ ﻦﻭﻴﻜ ﻮﺪﺭﺃ بس ﻮﻩ ﻟﻮﮒ؟</text>
+ <text x="230" y="150" xml:lang="en">Urdu (PK)</text>
+ </g>
+ <!-- should have a generic Urdu here for when user preference is Urdu but neither Pakistan Urdu nor Indian Urdu -->
+ <g systemLanguage="uz">
+ <text x="20" y="220" xml:lang="uz" font-size="22">Nega ular uzbek tilinda gapirmaidilar?</text>
+ <text x="230" y="150" xml:lang="en">Uzbek</text>
+ </g>
+ <g systemLanguage="vi">
+ <text x="20" y="220" xml:lang="vi" font-family="Tahoma,Verdana,'Verdana Ref','Arial Unicode MS'" font-size="22">Tại sao họ không thể chỉ nói tiếng Việt ?</text>
+ <text x="230" y="150" xml:lang="en">Vietnamese</text>
+ </g>
+ <g systemLanguage="yi">
+ <text x="20" y="220" xml:lang="yi" font-family="Tahoma,'Arial Unicode MS'" font-size="22">פֿאַרװאָס רעדט מען ניט פּשוט ייִדיש ?</text>
+ <text x="230" y="150" xml:lang="en">Yiddish</text>
+ </g>
+ <g systemLanguage="zh-CN">
+ <text x="20" y="220" font-family="'MS Hei','MS Song',LiSu,隶书,Code2000,'Arial Unicode MS'" font-size="26" xml:lang="zh-CN">他们为什么不说中文 (中国) ?</text>
+ <text x="230" y="150" xml:lang="en">Chinese (CN)</text>
+ </g>
+ <g systemLanguage="zh-TW">
+ <text x="20" y="220" xml:lang="zh-TW" font-family="MingLiU,細明體,PMingLiU,新細明體,DFP-SMTWSong,Code2000,'Arial Unicode MS'" font-size="26">他們爲什麽不說中文(台灣)?</text>
+ <text x="230" y="150" xml:lang="en">Chinese (TW)</text>
+ </g>
+ <g>
+ <!-- the default case, try three languages of W3C host institutions -->
+ <text x="90" y="100" fill="#700" font-size="14">You have no (matching) language preference set</text>
+ <text x="20" y="180" xml:lang="ja-JP" font-family="MS Gothic,MS ゴシック,MS Mincho,MS 明朝,Code2000,'Arial Unicode MS',DFP-SMTWSong" font-size="20">なぜ、みんな日本語を話してくれないのか?</text>
+ <text x="20" y="220" xml:lang="en-US">Why can't they just speak English ?</text>
+ <text x="20" y="260" xml:lang="fr-fR" font-size="16">Pourquoi, tout simplement, ne parlent-ils pas en Français ?</text>
+ </g>
+ </switch>
+ <!-- action item was to make a switch "for all ISO 639-1 language codes",
+ a large task not completed. But there is enough here to make a good test case,
+ including 19 of the top 20 langiuages by number of speakers (except Punjabi).
+
+ Here is the full list (trailing * indicates language included in this test),
+ accurate as of October 22, 2002 from the registration authority:
+ http://lcweb.loc.gov/standards/iso639-2/langcodes.html
+
+ aa Afar
+ ab Abkhazian
+ af Afrikaans *
+ am Amharic *
+ ar Arabic *
+ as Assamese
+ ae Avestan
+ ay Aymara
+ az Azerbaijani
+
+ ba Bashkir
+ be Byelorussian
+ bg Bulgarian *
+ bh Bihari
+ bi Bislama
+ bn Bengali [Bangla] *
+ bo Tibetan *
+ br Breton
+ bs Bosnian
+
+ ca Catalan *
+ ce Chechen
+ ch Chamorro
+ co Corsican
+ cs Czech *
+ cu Church Slavic
+ cv Chuvash
+ cy Welsh *
+
+ da Danish *
+ de German *
+ dz Dzongkha [Bhutani]
+
+ el Greek, Modern (1453-) *
+ en English, Modern *
+ eo Esperanto
+ es Spanish *
+ et Estonian
+ eu Basque *
+
+ fa Persian (Farsi) *
+ fi Finnish *
+ fj Fijian
+ fo Faeroese
+ fr French, Modern *
+ fy Frisian
+
+ ga Irish
+ gd Scots Gaelic *
+ gl Gallegan [Galician]
+ gn Guarani
+ gu Gujarati *
+ gv Manx
+
+ ha Hausa
+ he Hebrew *
+ hi Hindi *
+ ho Hiri Motu
+ hr Croatian *
+ hu Hungarian *
+ hy Armenian *
+ hz Herero
+
+ ia Interlingua
+ id Indonesian *
+ ie Interlingue
+ ik Inupiak
+ is Icelandic *
+ it Italian *
+ iu Inuktitut *
+ iw Hebrew *
+
+ ja Japanese *
+ jw Javanese
+
+ ka Georgian *
+ ki Kikuyu
+ kj Kuanyama
+ kk Kazakh *
+ kl Kalaallisut [Greenlandic]
+ km Khmer [Cambodian]
+ kn Kannada *
+ ko Korean *
+ ks Kashmiri
+ ku Kurdish
+ kv Komi
+ kw Cornish
+ ky Kirghiz *
+
+ la Latin
+ ln Lingala
+ lo Lao [Laothian]
+ lt Lithuanian *
+ lv Latvian [Lettish]
+
+ mg Malagasy
+ mh Marshall
+ mi Maori
+ mk Macedonian *
+ ml Malayalam
+ mn Mongolian
+ mo Moldavian
+ mr Marathi *
+ ms Malay
+ mt Maltese
+ my Burmese
+
+ na Nauru
+ nb Norwegian Bokmal
+ nd Ndebele, North
+ ne Nepali
+ ng Ndonga
+ nl Dutch *
+ nn Norwegian Nynorsk
+ no Norwegian *
+ nr Ndebele, South
+ nv Navajo
+ ny Chichewa~@Nyanja
+
+ oc Occitan (post 1500); Provencal
+ om Oromo [Afan]
+ or Oriya *
+ os Ossetian; Ossetic
+
+ pa Panjabi
+ pi Pali
+ pl Polish *
+ ps Pushto [Pashto]
+ pt Portuguese *
+
+ qu Quechua
+
+ rm Rhaeto-Romance
+ rn Kirundi
+ ro Romanian *
+ ru Russian *
+ rw Kinyarwanda
+
+ sa Sanskrit *
+ sc Sardinian
+ sd Sindhi
+ se Northern Sami
+ sg Sangro
+ sr Serbian *
+ si Sinhalese *
+ sk Slovak
+ sl Slovenian *
+ sm Samoan
+ sn Shona
+ so Somali
+ sq Albanian *
+ sr Serbian
+ ss Swati [Siswati]
+ st Sotho, Southern [Sesotho]
+ su Sundanese
+ sv Swedish *
+ sw Swahili
+
+ ta Tamil *
+ te Tegulu *
+ tg Tajik *
+ th Thai *
+ ti Tigrinya
+ tk Turkmen
+ tl Tagalog *
+ tn Tswana [Setswana]
+ to Tonga
+ tr Turkish *
+ ts Tsonga
+ tt Tatar *
+ tw Twi
+
+ ug Uighur
+ uk Ukrainian *
+ ur Urdu *
+ uz Uzbek *
+
+ vi Vietnamese *
+ vo Volapuk
+
+ wo Wolof
+
+ xh Xhosa
+
+ yi Yiddish *
+ yo Yoruba
+
+ za Zhuang
+ zh Chinese *
+ zu Zulu
+
+note: http://msdn.microsoft.com/workshop/management/ISO639codes.htm is obselete and incorrect
+
+-->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-03-t-isvalid.html
new file mode 100644
index 0000000000..7989905dfc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-03-t-isvalid.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-cond-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-cond-03-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-cond-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <switch>
+ <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#SVGDOM">
+ <rect x="30" y="20" width="420" height="130" fill="rgb(32, 178, 170)"/>
+ <text x="240" y="100" font-size="20" text-anchor="middle">This viewer does more than SVG Tiny</text>
+ </g>
+ <g>
+ <rect x="30" y="20" width="420" height="130" fill="#0F0"/>
+ </g>
+ </switch>
+
+ <switch transform="translate(0, 140)">
+ <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#BasicText">
+ <rect x="30" y="20" width="420" height="130" fill="#0F0"/>
+ </g>
+ <g>
+ <rect x="30" y="20" width="420" height="130" fill="#F00"/>
+ <text x="240" y="100" font-size="20" text-anchor="middle">This is not an SVG Tiny Viewer</text>
+ </g>
+ </switch>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-overview-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-overview-02-f-isvalid.html
new file mode 100644
index 0000000000..0a89eae5db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-overview-02-f-isvalid.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-cond-overview-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-cond-overview-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-cond-overview-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-size="18">
+ <rect width="100" height="100" fill="blue" />
+ <rect width="100" height="100" id="testRequiredFeatures" requiredFeatures="INVALID_FEATURE_STRING" />
+ <rect x="200" width="100" height="100" fill="blue" />
+ <use x="200" xlink:href="#testRequiredFeatures" />
+ <rect y="120" width="100" height="100" fill="blue" />
+ <rect y="120" width="100" height="100" id="testRequiredExtensions" requiredExtensions="INVALID_EXTENSION_STRING" />
+ <rect y="120" x="200" width="100" height="100" fill="blue" />
+ <use x="200" xlink:href="#testRequiredExtensions" />
+ <rect y="240" width="100" height="100" fill="blue" />
+ <rect y="240" width="100" height="100" id="testSystemLanguage" systemLanguage="INVALID_LANGUAGE_STRING" />
+ <rect y="240" x="200" width="100" height="100" fill="blue" />
+ <use x="200" xlink:href="#testSystemLanguage" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-overview-03-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-overview-03-f-isvalid.html
new file mode 100644
index 0000000000..000da4f167
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-overview-03-f-isvalid.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-cond-overview-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-cond-overview-03-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-cond-overview-03-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-size="18">
+ <rect width="100" height="100" fill="blue" />
+ <rect width="100" height="100" requiredFeatures="" />
+ <rect y="120" width="100" height="100" fill="blue" />
+ <rect y="120" width="100" height="100" requiredExtensions="" />
+ <rect y="240" width="100" height="100" fill="blue" />
+ <rect y="240" width="100" height="100" systemLanguage="" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-overview-04-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-overview-04-f-isvalid.html
new file mode 100644
index 0000000000..e775e8bc32
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-overview-04-f-isvalid.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-cond-overview-04-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-cond-overview-04-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-cond-overview-04-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect width="100" height="100" fill="green"/>
+ <g requiredFeatures="INVALID_FEATURE_STRING">
+ <rect width="100" height="100" fill="red" requiredFeatures="http://www.w3.org/TR/SVG11/feature#ConditionalProcessing" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-overview-05-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-overview-05-f-isvalid.html
new file mode 100644
index 0000000000..ff93b25160
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-cond-overview-05-f-isvalid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-cond-overview-05-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-cond-overview-05-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-cond-overview-05-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-size="18">
+ <g requiredFeatures="INVALID_FEATURE_STRING">
+ <rect width="100" height="100" id="testRequiredFeatures" />
+ </g>
+ <rect x="200" width="100" height="100" fill="red" />
+ <use x="200" xlink:href="#testRequiredFeatures" />
+ <g requiredExtensions="INVALID_EXTENSION_STRING">
+ <rect y="120" width="100" height="100" id="testRequiredExtensions" />
+ </g>
+ <rect y="120" x="200" width="100" height="100" fill="red" />
+ <use x="200" xlink:href="#testRequiredExtensions" />
+ <g systemLanguage="INVALID_LANGUAGE_STRING">
+ <rect y="240" width="100" height="100" id="testSystemLanguage" />
+ </g>
+ <rect y="240" x="200" width="100" height="100" fill="red" />
+ <use x="200" xlink:href="#testSystemLanguage" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-defs-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-defs-01-t-isvalid.html
new file mode 100644
index 0000000000..f93b3a067d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-defs-01-t-isvalid.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-defs-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-defs-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-defs-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs id="references">
+ <rect id="rect11" x="0" y="0" width="480" height="360" color="#F00"/>
+ </defs>
+ <rect x="140" y="80" width="200" height="200" fill="#0F0"/>
+ <defs>
+ <rect x="160" y="100" width="160" height="160" fill="#F00"/>
+ </defs>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-01-b-isvalid.html
new file mode 100644
index 0000000000..cf66db736b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-01-b-isvalid.html
@@ -0,0 +1,166 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" onload="domTest(evt)" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script type="text/ecmascript" xlink:href="../resources/testharness.js"></script>
+ <script type="text/ecmascript"><![CDATA[
+ function domTest(evt) {
+
+ var svg_ns = "http://www.w3.org/2000/svg";
+
+ // Get Document
+ var target = evt.target;
+ var doc = target.ownerDocument;
+
+ //
+ // Test that our rectangle is an SVGElement instance
+ //
+ var rect = doc.getElementById("rectId");
+ var rootSVG = rect.ownerSVGElement;
+ var rootId = rootSVG.getAttribute( "id" );
+
+ // Insert a new text element to the DOM tree using the id
+ var newText = doc.createElementNS(svg_ns, 'text');
+ newText.setAttribute('x', '50');
+ newText.setAttribute('y', '100');
+ var message = "This document's root identifier is: " + rootId;
+ var textContent = doc.createTextNode(message);
+ newText.appendChild(textContent);
+ rect.parentNode.appendChild(newText);
+
+ //
+ // Now, check that our rectangle is an instance of SVGRect by accessing
+ // specific methods in order to get its x, y, width and height attributes.
+ //
+ var x = rect.x.baseVal.value; // SVGRect -&gt; SVGAnimatedLenght -&gt; SVGLength -&gt; long
+ var y = rect.y.baseVal.value;
+ var width = rect.width.baseVal.value;
+ var height = rect.height.baseVal.value;
+
+ //
+ // Now, build a new SVGRect through the SVGSVGElement interface.
+ //
+ var newRect = doc.createElementNS(svg_ns, 'rect');
+
+ //
+ // Set the x, y, width and height of this element
+ //
+ newRect.x.baseVal.value = x + 10;
+ newRect.y.baseVal.value = y + 10;
+ newRect.setAttribute("width", width);
+ newRect.setAttribute("height", height);
+
+ //
+ // Insert new element in DOM tree
+ //
+ rect.parentNode.insertBefore(newRect, rect);
+
+ //
+ // Check the pass criteria using the JS framework
+ //
+ test(function() {assert_equals(rootId, "svg-root")}, "Assert that the document's root identifier is 'svg-root'.");
+ test(function() {
+ assert_true(newRect instanceof SVGRectElement);
+ assert_equals(newRect.getAttribute('x'), String(x+10));
+ assert_equals(newRect.getAttribute('y'), String(y+10));
+ assert_equals(newRect.getAttribute('width'), String(width));
+ assert_equals(newRect.getAttribute('height'), String(height));
+ }, "Assert that 'newRect' is replica (ignoring fill) of 'rect' with different x and y.");
+ }
+
+ ]]></script>
+ <!--======================================================================-->
+ <!-- Since this test is examining the SVG DOM, it could use any language -->
+ <!-- binding. Here is the equivalent code for the Java binding -->
+ <!--
+
+ //
+ // Test that our rectangle is an SVGElement instance
+ //
+ SVGRectElement rect = (SVGRectElement) doc.getElementById("rectId");
+ SVGElement rootSVG = rect.getOwnerSVGElement();
+ String rootId = rootSVG.getId();
+
+ // Insert a new text element to the DOM tree using the id
+ Element newText = doc.createElement("text");
+ newText.setAttribute("x", "50");
+ newText.setAttribute("y", "100");
+ String message = "This document's root identifier is=" " + rootId"
+ Text textContent = doc.createTextNode(message);
+ newText.appendChild(textContent);
+ rect.getParentNode().appendChild(newText);
+
+ //
+ // Now, check that our rectangle is an instance of SVGRect by accessing
+ // specific methods in order to get its x, y, width and height attributes.
+ //
+ float x = rect.getX().getBaseVal().getValue();
+ float y = rect.getY().getBaseVal().getValue();
+ float width = rect.getWidth().getBaseVal().getValue();
+ float height = rect.getHeight().getBaseVal().getValue();
+
+ //
+ // Now, build a new SVGRect through the SVGSVGElement interface.
+ //
+ SVGRectElement newRect = (SVGRectElement) doc.createElement("rect");
+
+ //
+ // Set the x, y, width and height of this element
+ //
+ newRect.getX().getBaseVal().setValue(x + 10);
+ newRect.getY().getBaseVal().setValue(y + 10);
+ newRect.getWidth().getBaseVal().setValue(width);
+ newRect.getHeight().getBaseVal().setValue(height);
+
+ //
+ // Insert new element in DOM tree
+ //
+ alert(newRect)
+ rect.getParentNode().insertBefore(newRect, rect);
+
+-->
+ <!-- ===================================================================== -->
+ <!-- The following rectangle's is accessed in the 'domTest' ECMA Script -->
+ <!-- handler. -->
+ <!-- ===================================================================== -->
+ <rect id="rectId" x="40" y="150" width="50" height="50" fill="green"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-02-b-isvalid.html
new file mode 100644
index 0000000000..3dbe6f6452
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-02-b-isvalid.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-02-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" onload="domTest(evt)" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-02-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script type="text/ecmascript"><![CDATA[
+
+ var featureStrings = new Array();
+ var length = 0;
+ featureStrings[length++] = "xml";
+ featureStrings[length++] = "stylesheets";
+ featureStrings[length++] = "views";
+ featureStrings[length++] = "css2";
+ featureStrings[length++] = "events";
+ var svg_ns = "http://www.w3.org/2000/svg"
+ function domTest(evt) {
+ // Get Document
+ var target = evt.target;
+ var doc = target.ownerDocument;
+
+ // Get DOMImplementation
+ var domImpl = doc.implementation;
+
+ //
+ // Iterate through the feature strings
+ //
+ for(var i=0; i<featureStrings.length; i++){
+ var supports = domImpl.hasFeature(featureStrings[i], '2.0');
+ //
+ // if time, pretty up by putting xml to traveral in a left column and
+ // org.w3c.svg to org.w3c.dom.svg.all in a right column; add an extra
+ // parameter to addTextElemen t for x coord, and test if i < 9
+ //
+ addTextElement(featureStrings[i], supports, doc, doc.getElementById("test-body-content"), (55 + 55*i));
+ }
+ }
+
+ function addTextElement(label, value, doc, svg, y){
+ var newText = doc.createElementNS(svg_ns, 'text');
+ newText.setAttribute('font-size', '30');
+ newText.setAttribute('x', '10');
+ newText.setAttribute('y', y);
+ var textValue = label;
+ var textContent = doc.createTextNode(textValue);
+ newText.appendChild(textContent);
+ svg.appendChild(newText);
+
+ newText = doc.createElementNS(svg_ns, 'text');
+ newText.setAttribute('font-size', '30');
+ newText.setAttribute('x', '340');
+ newText.setAttribute('y', y);
+ textValue = value;
+ textContent = doc.createTextNode(textValue);
+ newText.appendChild(textContent);
+ svg.appendChild(newText);
+ }
+
+ ]]></script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-03-b-isvalid.html
new file mode 100644
index 0000000000..dba765cf96
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-03-b-isvalid.html
@@ -0,0 +1,97 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-03-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" onload="domTest(evt)" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-03-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script type="text/ecmascript"><![CDATA[
+
+ var featureStrings = new Array();
+ var length = 0;
+ featureStrings[length++] = "uievents";
+ featureStrings[length++] = "mouseevents";
+ featureStrings[length++] = "mutationevents";
+ featureStrings[length++] = "traversal";
+ featureStrings[length++] = "org.w3c.svg";
+ var svg_ns = "http://www.w3.org/2000/svg"
+ function domTest(evt) {
+ // Get Document
+ var target = evt.target;
+ var doc = target.ownerDocument;
+
+ // Get DOMImplementation
+ var domImpl = doc.implementation;
+
+ //
+ // Iterate through the feature strings
+ //
+ for(var i=0; i<featureStrings.length; i++){
+ var supports = domImpl.hasFeature(featureStrings[i], '2.0');
+ //
+ // if time, pretty up by putting xml to traveral in a left column and
+ // org.w3c.svg to org.w3c.dom.svg.all in a right column; add an extra
+ // parameter to addTextElement for x coord, and test if i < 9
+ //
+ addTextElement(featureStrings[i], supports, doc, doc.getElementById("test-body-content"), (50 + 50*i));
+ }
+ }
+
+ function addTextElement(label, value, doc, svg, y){
+ var newText = doc.createElementNS(svg_ns, 'text');
+ newText.setAttribute('font-size', '30');
+ newText.setAttribute('x', '10');
+ newText.setAttribute('y', y);
+ var textValue = label;
+ var textContent = doc.createTextNode(textValue);
+ newText.appendChild(textContent);
+ svg.appendChild(newText);
+
+ newText = doc.createElementNS(svg_ns, 'text');
+ newText.setAttribute('font-size', '30');
+ newText.setAttribute('x', '370');
+ newText.setAttribute('y', y);
+ textValue = value;
+ textContent = doc.createTextNode(textValue);
+ newText.appendChild(textContent);
+ svg.appendChild(newText);
+ }
+
+ ]]></script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-04-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-04-b-isvalid.html
new file mode 100644
index 0000000000..f3e613b2a2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-04-b-isvalid.html
@@ -0,0 +1,116 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-04-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-04-b-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" onload="domTest(evt)" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-04-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script type="text/ecmascript"><![CDATA[
+
+ var featureStrings = new Array();
+ var length = 0;
+ /*
+ featureStrings[length++] = "xml";
+ featureStrings[length++] = "stylesheets";
+ featureStrings[length++] = "views";
+ featureStrings[length++] = "css2";
+ featureStrings[length++] = "events";
+ featureStrings[length++] = "uievents ";
+ featureStrings[length++] = "mouseevents";
+ featureStrings[length++] = "mutationevents";
+ featureStrings[length++] = "traversal";
+ featureStrings[length++] = "org.w3c.svg";
+ */
+ featureStrings[length++] = "org.w3c.svg.lang";
+ featureStrings[length++] = "org.w3c.svg.dynamic";
+ featureStrings[length++] = "org.w3c.svg.static";
+ featureStrings[length++] = "org.w3c.dom.svg";
+ featureStrings[length++] = "org.w3c.svg";
+ /*
+ featureStrings[length++] = "org.w3c.dom.svg.static";
+ featureStrings[length++] = "org.w3c.dom.svg.animation";
+ featureStrings[length++] = "org.w3c.dom.svg.dynamic";
+ featureStrings[length++] = "org.w3c.svg.all";
+ featureStrings[length++] = "org.w3c.dom.svg.all";
+ */
+ var svg_ns = "http://www.w3.org/2000/svg"
+ function domTest(evt) {
+ // Get Document
+ var target = evt.target;
+ var doc = target.ownerDocument;
+
+ // Get DOMImplementation
+ var domImpl = doc.implementation;
+
+ //
+ // Iterate through the feature strings
+ //
+ for(var i=0; i<featureStrings.length; i++){
+ var supports = domImpl.hasFeature(featureStrings[i], '2.0');
+ //
+ // if time, pretty up by putting xml to traveral in a left column and
+ // org.w3c.svg to org.w3c.dom.svg.all in a right column; add an extra
+ // parameter to addTextElemen t for x coord, and test if i < 9
+ //
+ addTextElement(featureStrings[i], supports, doc, doc.getElementById("test-body-content"), (45 + 40*i));
+ }
+ }
+
+ function addTextElement(label, value, doc, svg, y){
+ var newText = doc.createElementNS(svg_ns, 'text');
+ newText.setAttribute('font-size', '30');
+ newText.setAttribute('x', '5');
+ newText.setAttribute('y', y);
+ var textValue = label;
+ var textContent = doc.createTextNode(textValue);
+ newText.appendChild(textContent);
+ svg.appendChild(newText);
+
+ newText = doc.createElementNS(svg_ns, 'text');
+ newText.setAttribute('font-size', '30');
+ newText.setAttribute('x', '385');
+ newText.setAttribute('y', y);
+ textValue = value;
+ textContent = doc.createTextNode(textValue);
+ newText.appendChild(textContent);
+ svg.appendChild(newText);
+ }
+
+ ]]></script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-05-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-05-b-isvalid.html
new file mode 100644
index 0000000000..2ebb11336c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-05-b-isvalid.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-05-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-05-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" onload="domTest(evt)" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-05-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script type="text/ecmascript"><![CDATA[
+
+ var featureStrings = new Array();
+ var length = 0;
+ /*
+ featureStrings[length++] = "xml";
+ featureStrings[length++] = "stylesheets";
+ featureStrings[length++] = "views";
+ featureStrings[length++] = "css2";
+ featureStrings[length++] = "events";
+ featureStrings[length++] = "uievents ";
+ featureStrings[length++] = "mouseevents";
+ featureStrings[length++] = "mutationevents";
+ featureStrings[length++] = "traversal";
+ featureStrings[length++] = "org.w3c.svg";
+ featureStrings[length++] = "org.w3c.svg.lang";
+ featureStrings[length++] = "org.w3c.svg.dynamic";
+ featureStrings[length++] = "org.w3c.svg.static";
+ featureStrings[length++] = "org.w3c.dom.svg";
+ featureStrings[length++] = "org.w3c.svg";
+ */
+ featureStrings[length++] = "org.w3c.dom.svg.static";
+ featureStrings[length++] = "org.w3c.dom.svg.animation";
+ featureStrings[length++] = "org.w3c.dom.svg.dynamic";
+ featureStrings[length++] = "org.w3c.dom.svg.all";
+ featureStrings[length++] = "org.w3c.svg.all";
+ var svg_ns = "http://www.w3.org/2000/svg"
+ function domTest(evt) {
+ // Get Document
+ var target = evt.target;
+ var doc = target.ownerDocument;
+
+ // Get DOMImplementation
+ var domImpl = doc.implementation;
+
+ //
+ // Iterate through the feature strings
+ //
+ for(var i=0; i<featureStrings.length; i++){
+ var supports = domImpl.hasFeature(featureStrings[i], '2.0');
+ //
+ // if time, pretty up by putting xml to traveral in a left column and
+ // org.w3c.svg to org.w3c.dom.svg.all in a right column; add an extra
+ // parameter to addTextElemen t for x coord, and test if i < 9
+ //
+ addTextElement(featureStrings[i], supports, doc, doc.getElementById("test-body-content"), (45 + 40*i));
+ }
+ }
+
+ function addTextElement(label, value, doc, svg, y){
+ var newText = doc.createElementNS(svg_ns, 'text');
+ newText.setAttribute('font-size', '30');
+ newText.setAttribute('x', '5');
+ newText.setAttribute('y', y);
+ var textValue = label;
+ var textContent = doc.createTextNode(textValue);
+ newText.appendChild(textContent);
+ svg.appendChild(newText);
+
+ newText = doc.createElementNS(svg_ns, 'text');
+ newText.setAttribute('font-size', '30');
+ newText.setAttribute('x', '385');
+ newText.setAttribute('y', y);
+ textValue = value;
+ textContent = doc.createTextNode(textValue);
+ newText.appendChild(textContent);
+ svg.appendChild(newText);
+ }
+
+ ]]></script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-06-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-06-b-isvalid.html
new file mode 100644
index 0000000000..a763b8476d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-06-b-isvalid.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-06-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-06-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" onload="domTest(evt)" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-06-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script type="text/ecmascript"><![CDATA[
+
+ function domTest(evt) {
+ // Get Document
+ var target = evt.target;
+ var doc = target.ownerDocument;
+
+ //
+ // Test attribute modification
+ //
+ var attributeErrorRect = doc.getElementById('attributeErrorRect');
+ attributeErrorRect.setAttribute('width', '0')
+ attributeErrorRect.setAttribute('height', '0');
+
+ //
+ // Test removing element from DOM tree
+ //
+ var elementErrorText = doc.getElementById('elementErrorText');
+ var parent = elementErrorText.parentNode;
+ parent.removeChild(elementErrorText);
+
+ //
+ // Test adding element to the DOM tree
+ //
+ var svg_ns = "http://www.w3.org/2000/svg"
+ var newText = doc.createElementNS(svg_ns, 'text');
+ newText.setAttribute('x', '50');
+ newText.setAttribute('y', '200');
+ var textContent = doc.createTextNode('DOM API is supported');
+ newText.appendChild(textContent);
+ parent.appendChild(newText);
+ }
+
+ ]]></script>
+ <!-- ===================================================================== -->
+ <!-- The following rectangle's color is red. It is modified to zero size -->
+ <!-- in the 'domTest' ECMAScript handler. -->
+ <!-- ===================================================================== -->
+ <rect id="attributeErrorRect" width="450" height="450" fill="red"/>
+ <!-- ===================================================================== -->
+ <!-- The following text element is removed from the document in the -->
+ <!-- 'domTest' ECMAScript handler. -->
+ <!-- ===================================================================== -->
+ <text id="elementErrorText" x="50" y="200" font-family="Verdana" font-size="30" fill="black">
+ Removing DOM Elements is not supported
+ </text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-07-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-07-f-isvalid.html
new file mode 100644
index 0000000000..e3688befe9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-07-f-isvalid.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-07-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-07-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" onload="init();" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-07-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script><![CDATA[
+ function init()
+ {
+ var use = document.getElementById("use-elm");
+ var firstElementChild = use.instanceRoot.firstChild;
+
+ // Get the <g> elements SVGElementInstance
+ while(firstElementChild.correspondingElement.nodeType != Node.ELEMENT_NODE)
+ firstElementChild = firstElementChild.nextSibling;
+
+ // the childnodes of the g element shadowtree
+ var childNodes = firstElementChild.childNodes;
+ for(var i = 0; i < childNodes.length; i++)
+ {
+ var item = childNodes.item(i);
+ if(item.correspondingElement.nodeType == Node.ELEMENT_NODE)
+ {
+ item.correspondingElement.setAttribute("fill", "green");
+ }
+ }
+ }
+ ]]></script>
+ <defs>
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-sub-root" viewBox="0 0 450 450">
+ <g id="drawRects" fill="red" stroke="black" stroke-width="5">
+ <rect x="225" y="0" width="225" height="225"/>
+ <rect x="0" y="225" width="225" height="225"/>
+ <rect x="225" y="225" width="225" height="225"/>
+ </g>
+ </svg>
+ </defs>
+
+ <g transform="translate(100,30)">
+ <use id="use-elm" x="60" y="50" width="240" height="240" transform="translate(50,50) scale(0.4)" xlink:href="#svg-sub-root"/>
+ <use id="use-elm-2" x="60" y="50" width="240" height="240" transform="scale(0.4)" xlink:href="#svg-sub-root"/>
+ <use id="use-elm-3" width="450" height="450" transform="translate(124,120) scale(0.213333)" xlink:href="#drawRects"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="black"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-08-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-08-f-isvalid.html
new file mode 100644
index 0000000000..6216a6541b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-08-f-isvalid.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-08-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-08-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-08-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='50'>Test that unsuspendRedraw() doesn't throw</text>
+ <rect id='r' x='10' y='60' width='50' height='50'/>
+
+ <script>
+ var id, svg = document.documentElement;
+
+ function begin() {
+ id = svg.suspendRedraw(10);
+ window.setTimeout("end()", 1000);
+ }
+
+ function end() {
+ try {
+ svg.unsuspendRedraw(id);
+ document.getElementById('r').setAttribute('fill', 'green');
+ return;
+ } catch (e) {
+ }
+ document.getElementById('r').setAttribute('fill', 'red');
+ }
+
+ begin();
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-11-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-11-f-isvalid.html
new file mode 100644
index 0000000000..0e9a19b7fd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-11-f-isvalid.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-11-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-11-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-11-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='40' font-size='13'>Test getIntersectionList and getEnclosureList return value liveness</text>
+
+ <rect id='r1' x='10' y='70' width='50' height='50' fill='black'/>
+ <text x='70' y='100'>getIntersectionList</text>
+
+ <rect id='r2' x='10' y='130' width='50' height='50' fill='black'/>
+ <text x='70' y='160'>getEnclosureList</text>
+
+ <g id="g1" visibility="hidden" pointer-events="painted">
+ <circle id='c1' cx='305' cy='100' r='5'/>
+ <circle id='c2' cx='305' cy='150' r='5'/>
+ </g>
+
+ <script><![CDATA[
+ function userspace2viewport(elm, r)
+ {
+ var ctm = elm.getCTM();
+
+ var corners = [];
+ for(var i = 0; i < 4; i++)
+ corners.push(svg.createSVGPoint());
+
+ corners[0].x = r.x;
+ corners[0].y = r.y;
+ corners[1].x = r.x + r.width;
+ corners[1].y = r.y;
+ corners[2].x = r.x + r.width;
+ corners[2].y = r.y + r.height;
+ corners[3].x = r.x;
+ corners[3].y = r.y + r.height;
+
+ for(var i = 0; i < 4; i++)
+ corners[i] = corners[i].matrixTransform(ctm);
+
+ var min = svg.createSVGPoint();
+ var max = svg.createSVGPoint();
+ min.x = corners[0].x;
+ min.y = corners[0].y;
+ max.x = corners[0].x;
+ max.y = corners[0].y;
+
+ for(var i = 1; i < 4; i++)
+ {
+ var x = corners[i].x;
+ var y = corners[i].y;
+
+ if(x < min.x)
+ min.x = x;
+ else if(x > max.x)
+ max.x = x;
+
+ if(y < min.y)
+ min.y = y;
+ else if(y > max.y)
+ max.y = y;
+ }
+
+ var res = svg.createSVGRect();
+ res.x = min.x;
+ res.y = min.y;
+ res.width = max.x - min.x;
+ res.height = max.y - min.y;
+ return res;
+ }
+
+ var svg = document.documentElement,
+ c = document.getElementById('c'),
+ r1 = document.getElementById('r1'),
+ r2 = document.getElementById('r2'),
+ c1 = document.getElementById('c1'),
+ c2 = document.getElementById('c2'),
+ g1 = document.getElementById('g1'),
+ r = svg.createSVGRect(),
+ nl;
+
+ try {
+ r.x = 300;
+ r.y = 95;
+ r.width = 5;
+ r.height = 5;
+
+ r = userspace2viewport(g1, r);
+
+ nl = svg.getIntersectionList(r, null);
+ if (nl && nl.length == 1) {
+ c1.parentNode.removeChild(c1);
+ r1.setAttribute('fill', nl.length == 1 ? 'lime' : 'red');
+ }
+ } catch (e) {
+ }
+
+ try {
+ r.x = 290;
+ r.y = 135;
+ r.width = 20;
+ r.height = 20;
+
+ r = userspace2viewport(g1, r);
+
+ nl = svg.getEnclosureList(r, null);
+ if (nl && nl.length == 1) {
+ c2.parentNode.removeChild(c2);
+ r2.setAttribute('fill', nl.length == 1 ? 'lime' : 'red');
+ }
+ } catch (e) {
+ }
+ ]]></script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-12-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-12-b-isvalid.html
new file mode 100644
index 0000000000..b5a467e685
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-12-b-isvalid.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-12-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-12-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-12-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <rect id="reference" x="240" y="1" width="239" height="358"/>
+ <script type="text/ecmascript"><![CDATA[
+ function test (event) {
+
+ // get pointers to use and reference elements
+ var reference = document.getElementById('reference');
+ var use = document.getElementById('use');
+
+ // initialize the pass count and colors
+ var pass = 0;
+ var colors = ['red', 'orange', 'green'];
+
+ // event.target.correspondingUseElement test
+ if (event.target.correspondingUseElement === use) {
+ document.getElementById('assertion_1').setAttributeNS(null, 'fill', 'green');
+ pass++;
+ }
+
+ // event.target.correspondingElement test
+ if (event.target.correspondingElement === reference) {
+ document.getElementById('assertion_2').setAttributeNS(null, 'fill', 'green');
+ pass++;
+ }
+
+ // show the result
+ use.setAttributeNS(null, 'fill', colors[pass]);
+ }
+
+
+ ]]></script>
+ </defs>
+
+ <use id="use" xlink:href="#reference" onclick="test(evt)" fill="grey"/>
+
+ <text transform="translate(5,20)">Click on the grey rectangle to start</text>
+ <text id="assertion_1" fill="red" transform="translate(5,80)">Test for correspondingUseElement</text>
+ <text id="assertion_2" fill="red" transform="translate(5,110)">Test for correspondingElement</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-13-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-13-f-isvalid.html
new file mode 100644
index 0000000000..96cf66bf5c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-13-f-isvalid.html
@@ -0,0 +1,159 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-13-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-13-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" onload="test()">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-13-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <style>
+ .passed { fill: lime }
+ .failed { fill: red }
+ .result { font: 9px monospace; fill: black }
+ </style>
+ </defs>
+
+ <g visibility="hidden">
+ <circle id="c1" cx="40" cy="40" r="10" fill="blue" stroke="lime"/>
+ <circle id="c2" cx="10" cy="50" r="10" fill="red" stroke="lime"/>
+ <circle id="c3" cx="20" cy="20" r="20" fill="green" stroke="lime"/>
+ <line id="l1" x1="5" y1="5" x2="40" y2="20" stroke="black"/>
+ <line id="l2" x1="20" y1="20" x2="40" y2="30" stroke="red"/>
+
+ <rect id="r1" x="10" y="10" width="50" height="50" fill="none" stroke="red"/>
+
+ <circle id="c4" cx="80" cy="50" r="10" fill="yellow"/>
+ </g>
+
+ <script><![CDATA[
+ var ypos = 100;
+
+ function verify(str, result)
+ {
+ var g = document.createElementNS("http://www.w3.org/2000/svg", "g");
+ var r = document.createElementNS("http://www.w3.org/2000/svg", "rect");
+ var t = document.createElementNS("http://www.w3.org/2000/svg", "text");
+ t.textContent = str + ": " + (result ? "PASSED" : "FAILED");
+ t.setAttribute("class", "result");
+ t.setAttribute("x", "10");
+ t.setAttribute("y", "7");
+ r.setAttribute("y", "1");
+ r.setAttribute("width", "5");
+ r.setAttribute("height", "5");
+ g.setAttribute("class", result ? "passed" : "failed");
+ g.appendChild(r);
+ g.appendChild(t);
+ g.setAttribute("transform", "translate(280 " + ypos + ")");
+ ypos += 10;
+ document.getElementById("test-body-content").appendChild(g);
+ }
+
+ function test()
+ {
+ var root = document.documentElement; //document.getElementById("test-root");
+ var rect = root.createSVGRect();
+ rect.x = 10;
+ rect.y = 10;
+ rect.width = 50;
+ rect.height = 50;
+
+ var tests = { "c1" : true, "c2" : true, "c3" : true, "l1" : true, "l2" : true, "r1" : true, "c4" : false };
+
+ verify("checkIntersection", root.checkIntersection);
+
+ if(root.checkIntersection)
+ {
+ for(var test in tests)
+ {
+ try
+ {
+ var elm = document.getElementById(test);
+ var result = root.checkIntersection(elm, rect);
+
+ verify(test, result == tests[test]);
+ }
+ catch(e)
+ {
+ verify(test, false);
+ }
+ }
+ }
+
+ verify("getIntersectionList", root.getIntersectionList);
+
+ if(root.getIntersectionList)
+ {
+ var expected = [ "c1", "c2", "c3", "l1", "l2", "r1" ];
+ try
+ {
+ var list = root.getIntersectionList(rect, null);
+ verify("call", true);
+ }
+ catch(e)
+ {
+ verify("call", false);
+ }
+
+ try
+ {
+ verify("length", expected.length == list.length);
+ }
+ catch(e)
+ {
+ verify("length", false);
+ }
+
+ for(var i = 0; i < expected.length; i++)
+ {
+ var elm = document.getElementById(expected[i]);
+ try
+ {
+ verify("has " + expected[i], elm === list.item(i))
+ }
+ catch(e)
+ {
+ verify("has " + expected[i], false);
+ }
+ }
+ }
+ }
+
+ ]]></script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-14-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-14-f-isvalid.html
new file mode 100644
index 0000000000..94ef4480ea
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-14-f-isvalid.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-14-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-14-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" onload="runTest()">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-14-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <g id="defsg1">
+ <circle id="defscircle3" cx="80" cy="180" r="25"/>
+ <circle id="defscircle4" cx="1000" cy="180" r="25"/>
+ <use xlink:href="#defscircle4" transform="translate(-600, 0)"/>
+ </g>
+ <script>
+ <![CDATA[
+ function runTest()
+ {
+ try
+ {
+ var use = document.getElementById("use1");
+ var instanceroot = use.instanceRoot;
+
+ if (instanceroot.firstChild.correspondingElement !== instanceroot.childNodes.item(0).correspondingElement)
+ throw("failed");
+ if (instanceroot.firstChild.nextSibling.correspondingElement !== instanceroot.childNodes.item(1).correspondingElement)
+ throw("failed");
+ if (instanceroot.lastChild.correspondingElement !== instanceroot.childNodes.item(instanceroot.childNodes.length-1).correspondingElement)
+ throw("failed");
+
+ // indicate test passed
+ document.getElementById("status").setAttribute("fill", "lime");
+
+ // This is an optional part of the test, which indicates whether SVGElementInstance(List) follows the normal DOM NodeList conventions and
+ // whether the returned objects are actually the same objects as those that the SVGElementInstance traversal attributes return.
+ if (instanceroot.firstChild !== instanceroot.childNodes.item(0))
+ throw("failed");
+ if (instanceroot.firstChild.nextSibling !== instanceroot.childNodes.item(1))
+ throw("failed");
+ if (instanceroot.lastChild !== instanceroot.childNodes.item(instanceroot.childNodes.length-1))
+ throw("failed");
+
+ // indicate status of the optional part of the test
+ document.getElementById("optional").setAttribute("fill", "green");
+ }
+ catch(e)
+ {
+ }
+ }
+ ]]>
+ </script>
+ </defs>
+
+ <use id="use1" xlink:href="#defsg1"/>
+
+ <rect id="status" width="100%" height="100%" fill="red"/>
+ <circle id="optional" cx="50%" cy="50%" r="10%" fill="yellow"/>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-15-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-15-f-isvalid.html
new file mode 100644
index 0000000000..d84d99c77b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-15-f-isvalid.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-15-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-15-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" onload="runTest()">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-15-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <circle id="defscircle1" cx="240" cy="180" r="25" onclick="verifyDefs1(evt)" fill="red"/>
+ <circle id="defscircle2" cx="240" cy="180" r="25" onclick="verifyDefs2(evt)" fill="red"/>
+
+ <script><![CDATA[
+ function verifyDefs1(e)
+ {
+ var dc = document.getElementById("defscircle1");
+ if (e.target === e.currentTarget && // Assertion: the target and currentTarget are the same
+ e.target === dc) // Assertion: the target is the 'circle' element since we dispatched the event directly to it, not to an SVGElementInstance
+ {
+ dc.setAttribute("fill", "lime");
+ }
+ }
+
+ // checks that event.target and event.currentTarget point to an SVGElementInstance (the instanceRoot)
+ function verifyDefs2(e)
+ {
+ var instance = document.getElementById("use2").instanceRoot;
+ if (e.target === e.currentTarget && // Assertion: the target and currentTarget are the same
+ e.target === instance) // Assertion: the target is SVGElementInstance corresponding to the 'circle' element with id="defscircle2", since we dispatched the event to that instance
+ {
+ instance.correspondingElement.setAttribute("fill", "lime");
+ }
+ }
+
+ function verify(e)
+ {
+ var c = document.getElementById("circle");
+ if (e.target === e.currentTarget && // Assertion: the target and currentTarget are the same
+ e.target === c) // Assertion: the target is the 'circle' element since we dispatched the event directly to it
+ {
+ c.setAttribute("fill", "lime");
+ }
+ }
+
+ function dispatchMouseClick(target)
+ {
+ var mouseevent = document.createEvent("MouseEvents");
+ mouseevent.initMouseEvent("click",
+ true, // canbubble
+ true, // cancellable
+ document.defaultView, // the AbstractView
+ 1, // mouseclick count
+ 0, // screen x coordinate
+ 0, // screen y coordinate
+ 0, // client x coordinate
+ 0, // client y coordinate
+ false, // ctrlKey
+ false, // altKey
+ false, // shiftKey
+ false, // metaKey
+ 0, // mousebutton
+ null); // related target
+ target.dispatchEvent(mouseevent);
+ }
+
+ function runTest()
+ {
+ // test simple circle inside <defs>
+ try {
+ var defsCircle = document.getElementById("defscircle1");
+ dispatchMouseClick(defsCircle);
+ } catch(e) {}
+
+ // test SVGElementInstance
+ try {
+ var elementInstance2 = document.getElementById("use2").instanceRoot;
+ dispatchMouseClick(elementInstance2);
+ } catch(e) {}
+
+ // test simple circle outside of <defs>
+ try {
+ var circle = document.getElementById("circle");
+ dispatchMouseClick(circle);
+ } catch(e) {}
+ }
+ ]]></script>
+ </defs>
+
+ <circle id="circle" cx="240" cy="180" r="25" onclick="verify(evt)" fill="red"/>
+
+ <use id="use1" xlink:href="#defscircle1" transform="translate(80,0)"/>
+ <use id="use2" xlink:href="#defscircle2" transform="translate(-80,0)"/>
+ <use id="use3" xlink:href="#defsg1"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-16-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-16-f-isvalid.html
new file mode 100644
index 0000000000..4d132e40a5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-16-f-isvalid.html
@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-16-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-16-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-16-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-size="18">
+ <svg id="testSVG" />
+ <text id="failText" x="350" y="350" font-size="50" fill="red">FAIL</text>
+ <text id="passText" x="350" y="300" font-size="50" display="none">PASS</text>
+ <script>
+ <![CDATA[
+ try
+ {
+ var passCount = 0;
+ var testSVG = document.getElementById("testSVG");
+
+ var testSVGNumber = testSVG.createSVGNumber();
+ if (0 == testSVGNumber.value)
+ {
+ passCount++;
+ }
+
+ var testSVGLength = testSVG.createSVGLength();
+ if (0 == testSVGLength.value)
+ {
+ passCount++;
+ }
+
+ var testSVGAngle = testSVG.createSVGAngle();
+ if (0 == testSVGAngle.value)
+ {
+ passCount++;
+ }
+
+ var testSVGPoint = testSVG.createSVGPoint();
+ if (0 == testSVGPoint.x && 0 == testSVGPoint.y)
+ {
+ passCount++;
+ }
+
+ var testSVGMatrix = testSVG.createSVGMatrix();
+ if (1 == testSVGMatrix.a && 0 == testSVGMatrix.b && 0 == testSVGMatrix.c && 1 == testSVGMatrix.d && 0 == testSVGMatrix.e && 0 == testSVGMatrix.f)
+ {
+ passCount++;
+ }
+
+ var testSVGRect = testSVG.createSVGRect();
+ if (0 == testSVGRect.x && 0 == testSVGRect.y && 0 == testSVGRect.width && 0 == testSVGRect.height)
+ {
+ passCount++;
+ }
+
+ var testSVGTransform = testSVG.createSVGTransform();
+ if (1 == testSVGTransform.type && 0 == testSVGTransform.angle && 1 == testSVGTransform.matrix.a && 0 == testSVGTransform.matrix.b && 0 == testSVGTransform.matrix.c && 1 == testSVGTransform.matrix.d && 0 == testSVGTransform.matrix.e && 0 == testSVGTransform.matrix.f)
+ {
+ passCount++;
+ }
+
+ var testSVGTransformFromMatrix = testSVG.createSVGTransformFromMatrix(testSVGMatrix);
+ if (1 == testSVGTransformFromMatrix.type && 0 == testSVGTransformFromMatrix.angle && 1 == testSVGTransformFromMatrix.matrix.a && 0 == testSVGTransformFromMatrix.matrix.b && 0 == testSVGTransformFromMatrix.matrix.c && 1 == testSVGTransformFromMatrix.matrix.d && 0 == testSVGTransformFromMatrix.matrix.e && 0 == testSVGTransformFromMatrix.matrix.f)
+ {
+ passCount++;
+ }
+
+ if (8 == passCount)
+ {
+ document.getElementById("failText").setAttribute("display", "none");
+ document.getElementById("passText").setAttribute("display", "inline");
+ }
+ }
+ catch(ex)
+ {
+ alert("ERROR: " + ex.message);
+
+ }
+ ]]>
+
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-17-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-17-f-novalid.html
new file mode 100644
index 0000000000..066e281baf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-17-f-novalid.html
@@ -0,0 +1,95 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-17-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-17-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-17-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <svg id="svgTree1">
+ <rect id="subElem1" />
+ </svg>
+ <svg id="svgTree2">
+ <rect id="subElem2" />
+ </svg>
+ <rect id="siblingElem1" />
+ <g transform="translate(320,350)" font-size="50">
+ <text id="failText" fill="red">FAIL</text>
+ <text id="passText" fill="green" display="none">PASS</text>
+ </g>
+ <script><![CDATA[
+ try
+ {
+ var passedCount = 0;
+ var svgTree1 = document.getElementById("svgTree1");
+
+ // Test support for "getElementById" on svgTree1
+ var subElem1 = svgTree1.getElementById("subElem1");
+ if (null != subElem1)
+ {
+ passedCount++;
+ }
+
+ if ("subElem1" == subElem1.id)
+ {
+ passedCount++;
+ }
+
+ // Test that "getElementById" on svgTree1 can't access children in other subtrees
+ if (null == svgTree1.getElementById("subElem2"))
+ {
+ passedCount++;
+ }
+
+ // Test that "getElementById" on svgTree1 can't access elements that are not its children
+ if (null == svgTree1.getElementById("siblingElem1"))
+ {
+ passedCount++;
+ }
+
+ if (4 == passedCount)
+ {
+ document.getElementById("failText").setAttribute("display", "none");
+ document.getElementById("passText").setAttribute("display", "inline");
+ }
+ }
+ catch(ex)
+ {
+ // alert('ERROR: ' + ex.message);
+ }]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-18-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-18-f-isvalid.html
new file mode 100644
index 0000000000..e6b23e25e8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-18-f-isvalid.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-18-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-18-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-18-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <svg id="testSVG">
+ <circle cx="96" cy="96" r="48" id="testCircle" />
+ <ellipse cx="96" cy="96" rx="48" ry="48" id="testEllipse" />
+ <line x1="10" y1="10" x2="10" y2="100" stroke="black" id="testLine" />
+ <path d="M0 10 H 100" stroke-width="5" stroke="black" fill="none" id="testPath" />
+ <polyline points="0,0 120,100 120,120" stroke="black" fill="black" id="testPolyline" />
+ <polygon points="0,0 100,100" stroke="black" fill="black" id="testPolygon" />
+ <rect width="96" height="96" id="testRect" />
+ <use xlink:href="#testRect" id="testUse" />
+ <image xlink:href="../images/black10x10.png" width="100" height="100" id="testImage" />
+ <text x="100" y="100" fill="black" id="testText">Filler text</text>
+ </svg>
+ <text id="failText" x="350" y="350" font-size="50" fill="red">FAIL</text>
+ <script><![CDATA[
+ try
+ {
+ var passedCount = 0;
+ var expectedIDList = ["testCircle", "testEllipse", "testLine", "testPath", "testPolyline", "testPolygon", "testRect", "testUse", "testImage", "testText"];
+ var testSVG = document.getElementById("testSVG");
+ var rectElem = testSVG.createSVGRect();
+
+ rectElem.x = 10;
+ rectElem.y = 0;
+ rectElem.width = 130;
+ rectElem.height = 98;
+
+ var intersectionList = testSVG.getIntersectionList(rectElem, null);
+
+ if (null != intersectionList && expectedIDList.length == intersectionList.length)
+ {
+ passedCount++;
+ }
+
+ for (var i = 0; i < intersectionList.length; i++)
+ {
+ var curIntersection = intersectionList[i];
+ var curExpectedId = expectedIDList[i];
+
+ if (curExpectedId == curIntersection.id)
+ {
+ passedCount++;
+ }
+ // Special case for "use" and SVGElementInstance
+ else if (null != curIntersection.correspondingUseElement && curExpectedId == curIntersection.correspondingUseElement.id)
+ {
+ passedCount++;
+ }
+ }
+
+ rectElem.x = 0;
+ rectElem.y = 0;
+ rectElem.width = 200;
+ rectElem.height = 200;
+
+ var enclosureList = testSVG.getEnclosureList(rectElem, null);
+
+ if (null != enclosureList && expectedIDList.length == enclosureList.length)
+ {
+ passedCount++;
+ }
+
+ for (var i = 0; i < enclosureList.length; i++)
+ {
+ var curEnclosure = enclosureList[i];
+ var curExpectedId = expectedIDList[i];
+
+ if (curExpectedId == curEnclosure.id)
+ {
+ passedCount++;
+ }
+ // Special case for "use" and SVGElementInstance
+ else if (null != curEnclosure.correspondingUseElement && curExpectedId == curEnclosure.correspondingUseElement.id)
+ {
+ passedCount++;
+ }
+ }
+
+ if (22 == passedCount)
+ {
+ document.getElementById("failText").setAttribute("display", "none");
+ }
+ }
+ catch(ex)
+ {
+ // alert('ERROR: ' + ex.message);
+ }]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-19-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-19-f-novalid.html
new file mode 100644
index 0000000000..a09f040d8b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-19-f-novalid.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-19-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-19-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-19-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect id="testElem" />
+ <use xlink:href="#testElem" id="testUse1" />
+ <use xlink:href="#testUse1" id="testUse2" />
+ <g transform="translate(100,100)" font-size="80">
+ <text id="failText" fill="red">FAIL</text>
+ <text id="passText" fill="green" display="none">PASS</text>
+ </g>
+ <script><![CDATA[
+ try
+ {
+ var passedCount = 0;
+ var testInstanceRoot1 = document.getElementById("testUse1").instanceRoot;
+ var testInstanceRoot2 = document.getElementById("testUse2").instanceRoot;
+
+ if (0 == testInstanceRoot1.childNodes.length)
+ {
+ passedCount++;
+ }
+
+ if (1 == testInstanceRoot2.childNodes.length)
+ {
+ passedCount++;
+ }
+
+ if (2 == passedCount)
+ {
+ document.getElementById("failText").setAttribute("display", "none");
+ document.getElementById("passText").setAttribute("display", "inline");
+ }
+ }
+ catch(ex)
+ {
+
+ //alert('ERROR: ' + ex.message);
+
+ }]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-20-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-20-f-isvalid.html
new file mode 100644
index 0000000000..d57ffb8806
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-dom-20-f-isvalid.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-dom-20-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-dom-20-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" onload="runTest()">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-dom-20-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <g id="defsg1" onclick="verifyDefs3(evt)">
+ <circle id="defscircle3" cx="80" cy="180" r="25" fill="red"/>
+ <use id="defsuse1" xlink:href="#defscircle4" transform="translate(-600, 0)" onclick="verifyDefs4(evt)"/>
+ </g>
+ <circle id="defscircle4" cx="1000" cy="180" r="25" fill="red"/>
+
+ <script><![CDATA[
+ function verifyDefs3(e)
+ {
+ var instance = document.getElementById("use3").instanceRoot;
+ var dc3instance = instance.firstChild.nextSibling;
+ if (e.target != e.currentTarget && // Assertion: the target and currentTarget are different since the event bubbled
+ e.target === dc3instance && // Assertion: the event was dispatched to the correct EventTarget
+ e.currentTarget === instance) // Assertion: the event bubbled up to the SVGElementInstance corresponding to the element with id="defsg1"
+ {
+ dc3instance.correspondingElement.setAttribute("fill", "lime");
+ }
+ }
+
+ function verifyDefs4(e)
+ {
+ var useElement = document.getElementById("use3");
+ var nestedUseInstance = useElement.instanceRoot.childNodes.item(3);
+ var instanceNestedCircle = nestedUseInstance.childNodes.item(0);
+ if (e.target != e.currentTarget && // Assertion: the target and currentTarget are different since the event bubbled
+ e.target === instanceNestedCircle && // Assertion: the event was dispatched to the correct EventTarget
+ e.currentTarget === nestedUseInstance && // Assertion: the event bubbled up to the SVGElementInstance corresponding to the element with id="defsuse1"
+ instanceNestedCircle.parentNode === nestedUseInstance && // Assertion: the parentNode is the SVGElementInstance of the 'use' that referenced the circle
+ instanceNestedCircle.correspondingUseElement === useElement) // Assertion: When 'use' elements are nested then the correspondingUseElement is the outermost 'use'
+ {
+ document.getElementById("defscircle4").setAttribute("fill", "lime");
+ }
+ }
+
+ function verify(e)
+ {
+ var c = document.getElementById("circle");
+ if (e.target === e.currentTarget && // Assertion: the target and currentTarget are the same
+ e.target === c) // Assertion: the target is the 'circle' element since we dispatched the event directly to it
+ {
+ c.setAttribute("fill", "lime");
+ }
+ }
+
+ function dispatchMouseClick(target)
+ {
+ var mouseevent = document.createEvent("MouseEvents");
+ mouseevent.initMouseEvent("click",
+ true, // canbubble
+ true, // cancellable
+ document.defaultView, // the AbstractView
+ 1, // mouseclick count
+ 0, // screen x coordinate
+ 0, // screen y coordinate
+ 0, // client x coordinate
+ 0, // client y coordinate
+ false, // ctrlKey
+ false, // altKey
+ false, // shiftKey
+ false, // metaKey
+ 0, // mousebutton
+ null); // related target
+ target.dispatchEvent(mouseevent);
+ }
+
+ function runTest()
+ {
+ // test bubbling click
+ try {
+ var instanceCircle = document.getElementById("use3").instanceRoot.firstChild.nextSibling;
+ dispatchMouseClick(instanceCircle);
+ } catch(e) {}
+
+ // test nested use with bubbling click
+ try {
+ var nestedUseInstance = document.getElementById("use3").instanceRoot.childNodes.item(3);
+ var instanceNestedCircle = nestedUseInstance.childNodes.item(0);
+ dispatchMouseClick(instanceNestedCircle);
+ } catch(e) {}
+ }
+ ]]></script>
+ </defs>
+
+ <use id="use3" xlink:href="#defsg1"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-01-t-isvalid.html
new file mode 100644
index 0000000000..2627fe74e6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-01-t-isvalid.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-frag-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-frag-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-frag-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ </g>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-02-t-isvalid.html
new file mode 100644
index 0000000000..3e2a8660be
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-02-t-isvalid.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-frag-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-frag-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" preserveAspectRatio="none" id="svg-root"
+ width="100%" height="100%" viewBox="100 100 100 100"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-frag-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect x="100" y="100" width="50" height="50" fill="rgb(220, 20, 60)"/>
+ <rect x="150" y="150" width="50" height="50" fill="rgb(220, 20, 60)"/>
+
+ <circle cx="125" cy="175" r="25" fill="rgb(255, 215, 0)"/>
+ <circle cx="175" cy="125" r="25" fill="rgb(255, 215, 0)"/>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="100" y="100" width="100" height="100" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-03-t-isvalid.html
new file mode 100644
index 0000000000..83a83efbcb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-03-t-isvalid.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-frag-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-frag-03-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" preserveAspectRatio="xMidYMid meet" id="svg-root"
+ width="100%" height="100%" viewBox="100 100 100 100"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-frag-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="100" y="100" width="50" height="50" fill="rgb(220, 20, 60)"/>
+ <rect x="150" y="150" width="50" height="50" fill="rgb(220, 20, 60)"/>
+
+ <circle cx="125" cy="175" r="25" fill="rgb(255, 215, 0)"/>
+ <circle cx="175" cy="125" r="25" fill="rgb(255, 215, 0)"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="100" y="100" width="100" height="100" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-04-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-04-t-isvalid.html
new file mode 100644
index 0000000000..b43e0a2615
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-04-t-isvalid.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-frag-04-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-frag-04-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" preserveAspectRatio="xMidYMid meet" id="svg-root"
+ width="100%" height="100%" x="1000" y="1000"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-frag-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="100" y="100" width="50" height="50" fill="rgb(220, 20, 60)"/>
+ <rect x="150" y="150" width="50" height="50" fill="rgb(220, 20, 60)"/>
+
+ <circle cx="125" cy="175" r="25" fill="rgb(255, 215, 0)"/>
+ <circle cx="175" cy="125" r="25" fill="rgb(255, 215, 0)"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-05-t-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-05-t-novalid.html
new file mode 100644
index 0000000000..e9c0a8792b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-05-t-novalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-frag-05-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-frag-05-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-frag-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial,sans-serif">
+ <s:g xmlns="http://www.example.org/notsvg" xmlns:s="http://www.w3.org/2000/svg">
+ <s:circle cx="240" cy="180" r="130" fill="#FF6"/>
+ <circle cx="240" cy="180" r="150" fill="#369"/>
+ </s:g>
+ <text x="240" y="100" text-anchor="middle" font-size="40" fill="#369">
+ <a xmlns:toto="http://www.w3.org/2000/svg" xmlns:dahut="http://www.w3.org/1999/xlink" dahut:href="../images/linkingToc-t.svg">Valid</a>
+ </text>
+ <text x="240" y="250" text-anchor="middle" font-size="40" fill="#C33">
+ <a xmlns="http://example.org/notsvg" xmlns:xlink="http://example.org/notxlink" xlink:href="../images/linkingToc-t.svg">Invalid</a>
+ </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-06-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-06-t-isvalid.html
new file mode 100644
index 0000000000..791a75610b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-frag-06-t-isvalid.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-frag-06-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-frag-06-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" zoomAndPan="magnify" preserveAspectRatio="xMidYMid meet" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-frag-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="30" y="30">Default entities: amp, lt, gt, apos, quot: </text>
+ <text x="90" y="60" fill="gray">&amp;, &lt;, &gt;, ', "</text>
+ <text x="30" y="100">Character references:</text>
+ <text x="90" y="130" fill="gray"> A hexadecimal (&amp;#x41)= A</text>
+ <text x="90" y="160" fill="gray"> A decimal (&amp;#65)= A</text>
+ <text x="30" y="200">Entity references:</text>
+ <text x="105" y="228" text-anchor="middle">gray</text>
+ <g transform="translate(90, 235) scale(0.2)" fill="gray">
+ <path d="M60,0 l60,0 l60,60 l0,60 l-60,60 l-60,0 l-60,-60 l0,-60 z"/>
+ </g>
+ <text x="205" y="228" text-anchor="middle">outlined</text>
+ <g transform="translate(190, 235) scale(0.2)" fill="none" stroke="gray" stroke-width="5">
+ <path d="M60,0 l60,0 l60,60 l0,60 l-60,60 l-60,0 l-60,-60 l0,-60 z"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-group-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-group-01-t-isvalid.html
new file mode 100644
index 0000000000..e38ea32bd3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-group-01-t-isvalid.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-group-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-group-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-group-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g id="rects" fill="blue">
+ <rect x="0" y="0" width="240" height="180"/>
+ <rect x="60" y="45" width="120" height="90" fill="green"/>
+ <rect x="240" y="180" width="240" height="180"/>
+ </g>
+ <g id="singleG">
+ <rect x="240" y="0" width="240" height="180" fill="black"/>
+ </g>
+ <g id="gratuitiousG">
+ <g id="yellowNrotate" fill="yellow" transform="rotate(-20)">
+ <rect x="0" y="224" width="40" height="40"/>
+ <rect x="0" y="280" width="40" height="40"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-group-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-group-02-b-isvalid.html
new file mode 100644
index 0000000000..7a74783d8c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-group-02-b-isvalid.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-group-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-group-02-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-group-02-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" id="lowerRight" x="240" y="180" width="240" height="180">
+ <rect x="0" y="0" width="240" height="180" fill="lime"/>
+ </svg>
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" id="upperRight" x="0" y="0" width="240" height="180">
+ <rect fill="blue" x="0" y="0" width="240" height="180"/>
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="basic" id="childArea" x="60" y="45" width="120" height="90">
+ <rect fill="yellow" x="0" y="0" width="120" height="90"/>
+ </svg>
+ </svg>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-group-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-group-03-t-isvalid.html
new file mode 100644
index 0000000000..d2525331d6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-group-03-t-isvalid.html
@@ -0,0 +1,269 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-group-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-group-03-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-group-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g id="grid" transform="translate(70, 150) rotate(-90)" fill="none" stroke="black">
+ <defs>
+ <rect id="propertyCell" x="-5" y="-14" width="110" height="22"/>
+ <rect id="sampleCell" x="-5" y="-14" width="50" height="22"/>
+ </defs>
+
+ <use xlink:href="#propertyCell"/>
+ <use xlink:href="#propertyCell" y="22"/>
+ <use xlink:href="#propertyCell" y="44"/>
+ <use xlink:href="#propertyCell" y="66"/>
+ <use xlink:href="#propertyCell" y="88"/>
+ <use xlink:href="#propertyCell" y="110"/>
+ <use xlink:href="#propertyCell" y="132"/>
+ <use xlink:href="#propertyCell" y="154"/>
+ <use xlink:href="#propertyCell" y="176"/>
+ <use xlink:href="#propertyCell" y="198"/>
+ <use xlink:href="#propertyCell" y="220"/>
+ <use xlink:href="#propertyCell" y="242"/>
+ <use xlink:href="#propertyCell" y="264"/>
+ <use xlink:href="#propertyCell" y="286"/>
+ <use xlink:href="#propertyCell" y="308"/>
+ <use xlink:href="#propertyCell" y="330"/>
+ <use xlink:href="#propertyCell" y="352"/>
+
+ <g transform="translate(-50, 0)">
+ <use xlink:href="#sampleCell"/>
+ <use xlink:href="#sampleCell" y="22"/>
+ <use xlink:href="#sampleCell" y="44"/>
+ <use xlink:href="#sampleCell" y="66"/>
+ <use xlink:href="#sampleCell" y="88"/>
+ <use xlink:href="#sampleCell" y="110"/>
+ <use xlink:href="#sampleCell" y="132"/>
+ <use xlink:href="#sampleCell" y="154"/>
+ <use xlink:href="#sampleCell" y="176"/>
+ <use xlink:href="#sampleCell" y="198"/>
+ <use xlink:href="#sampleCell" y="220"/>
+ <use xlink:href="#sampleCell" y="242"/>
+ <use xlink:href="#sampleCell" y="264"/>
+ <use xlink:href="#sampleCell" y="286"/>
+ <use xlink:href="#sampleCell" y="308"/>
+ <use xlink:href="#sampleCell" y="330"/>
+ <use xlink:href="#sampleCell" y="352"/>
+ </g>
+
+ <g transform="translate(-100, 0)">
+ <use xlink:href="#sampleCell"/>
+ <use xlink:href="#sampleCell" y="22"/>
+ <use xlink:href="#sampleCell" y="44"/>
+ <use xlink:href="#sampleCell" y="66"/>
+ <use xlink:href="#sampleCell" y="88"/>
+ <use xlink:href="#sampleCell" y="110"/>
+ <use xlink:href="#sampleCell" y="132"/>
+ <use xlink:href="#sampleCell" y="154"/>
+ <use xlink:href="#sampleCell" y="176"/>
+ <use xlink:href="#sampleCell" y="198"/>
+ <use xlink:href="#sampleCell" y="220"/>
+ <use xlink:href="#sampleCell" y="242"/>
+ <use xlink:href="#sampleCell" y="264"/>
+ <use xlink:href="#sampleCell" y="286"/>
+ <use xlink:href="#sampleCell" y="308"/>
+ <use xlink:href="#sampleCell" y="330"/>
+ <use xlink:href="#sampleCell" y="352"/>
+ </g>
+ </g>
+ <g id="properties" transform="translate(70, 150) rotate(-90)">
+ <text>color</text>
+ <text y="22">display</text>
+ <text y="44">fill</text>
+ <text y="66">fill-rule</text>
+ <text y="88">stroke</text>
+ <text y="110">stroke-dasharray</text>
+ <text y="132">stroke-dashoffset</text>
+ <text y="154">stroke-linecap</text>
+ <text y="176">stroke-linejoin</text>
+ <text y="198">stroke-miterlimit</text>
+ <text y="220">stroke-width</text>
+ <text y="242">visibility</text>
+ <text y="264">font-family</text>
+ <text y="286">font-size</text>
+ <text y="308">font-style</text>
+ <text y="330">font-weight</text>
+ <text y="352">text-anchor</text>
+ </g>
+
+ <g id="inheritGroup" transform="translate(56, 155)">
+
+ <g color="#0F0">
+ <rect x="3" y="10" width="16" height="32" fill="currentColor"/>
+ </g>
+
+ <g display="none" transform="translate(22, 0)">
+ <rect x="3" y="10" width="16" height="32" display="inherit"/>
+ </g>
+
+ <g fill="#0F0" transform="translate(44, 0)">
+ <rect x="3" y="10" width="16" height="32" fill="inherit"/>
+ </g>
+
+ <g fill-rule="evenodd" transform="translate(66, 0)">
+ <polygon points="10.5,0 21,21 0,7 21,7 0,21" fill-rule="inherit" fill="#0F0" transform="translate(3, 15) scale(0.7)"/>
+ </g>
+
+ <g stroke="#0F0" transform="translate(88, 0)">
+ <rect x="3" y="10" width="16" height="32" stroke="inherit" fill="none"/>
+ </g>
+
+ <g stroke-dasharray="2,2,5,5" transform="translate(110, 0)">
+ <line x1="11" y1="5" x2="11" y2="40" stroke="#0F0" stroke-dasharray="inherit" stroke-width="2"/>
+ </g>
+
+ <g stroke-dashoffset="4" transform="translate(132, 0)">
+ <line x1="11" y1="5" x2="11" y2="40" stroke="#0F0" stroke-dashoffset="inherit" stroke-dasharray="2,2,5,5" stroke-width="2"/>
+ </g>
+
+ <g stroke-linecap="round" transform="translate(154, 0)">
+ <line x1="11" y1="10" x2="11" y2="40" stroke="#0F0" stroke-linecap="inherit" stroke-width="10"/>
+ </g>
+
+ <g stroke-linejoin="round" transform="translate(176, 0)">
+ <polyline points="3,40 11,10 19,40" stroke="#0F0" stroke-linejoin="inherit" stroke-width="5" fill="none"/>
+ </g>
+
+ <g stroke-miterlimit="1" transform="translate(198, 0)">
+ <polyline points="3,40 11,10 19,40" stroke="#0F0" stroke-miterlimit="inherit" stroke-width="5" fill="none"/>
+ </g>
+
+ <g stroke-width="5" transform="translate(220, 0)">
+ <line x1="11" y1="10" x2="11" y2="40" stroke="#0F0" stroke-width="inherit"/>
+ </g>
+
+ <g visibility="hidden" transform="translate(242, 0)">
+ <line x1="11" y1="10" x2="11" y2="40" stroke="#0F0" visibility="inherit"/>
+ </g>
+
+ <g font-family="serif" transform="translate(264, 0)">
+ <text x="11" y="30" font-size="20" text-anchor="middle" font-family="inherit">A</text>
+ </g>
+
+ <g font-size="10" transform="translate(286, 0)">
+ <text x="11" y="30" font-size="inherit" text-anchor="middle" font-family="serif">A</text>
+ </g>
+
+ <g font-style="italic" transform="translate(308, 0)">
+ <text x="11" y="30" font-style="inherit" text-anchor="middle" font-size="20" font-family="serif">A</text>
+ </g>
+
+ <g font-weight="bold" transform="translate(330, 0)">
+ <text x="11" y="30" font-weight="inherit" text-anchor="middle" font-family="serif" font-size="20">A</text>
+ </g>
+
+ <g text-anchor="middle" transform="translate(352, 0)">
+ <text x="11" y="30" text-anchor="inherit" font-family="serif" font-size="20">A</text>
+ </g>
+ </g>
+
+ <g id="referenceGroup" transform="translate(56, 205)">
+
+ <g>
+ <rect x="3" y="10" width="16" height="32" fill="#0F0"/>
+ </g>
+
+ <g transform="translate(22, 0)">
+ <rect x="3" y="10" width="16" height="32" display="none"/>
+ </g>
+
+ <g transform="translate(44, 0)">
+ <rect x="3" y="10" width="16" height="32" fill="#0F0"/>
+ </g>
+
+ <g transform="translate(66, 0)">
+ <polygon points="10.5,0 21,21 0,7 21,7 0,21" fill-rule="evenodd" fill="#0F0" transform="translate(3, 15) scale(0.7)"/>
+ </g>
+
+ <g transform="translate(88, 0)">
+ <rect x="3" y="10" width="16" height="32" stroke="#0F0" fill="none"/>
+ </g>
+
+ <g stroke-dasharray="2,2,5,5" transform="translate(110, 0)">
+ <line x1="11" y1="5" x2="11" y2="40" stroke="#0F0" stroke-dasharray="inherit" stroke-width="2"/>
+ </g>
+
+ <g transform="translate(132, 0)">
+ <line x1="11" y1="5" x2="11" y2="40" stroke="#0F0" stroke-dashoffset="4" stroke-dasharray="2,2,5,5" stroke-width="2"/>
+ </g>
+
+ <g transform="translate(154, 0)">
+ <line x1="11" y1="10" x2="11" y2="40" stroke="#0F0" stroke-linecap="round" stroke-width="10"/>
+ </g>
+
+ <g transform="translate(176, 0)">
+ <polyline points="3,40 11,10 19,40" stroke="#0F0" stroke-linejoin="round" stroke-width="5" fill="none"/>
+ </g>
+
+ <g transform="translate(198, 0)">
+ <polyline points="3,40 11,10 19,40" stroke="#0F0" stroke-miterlimit="1" stroke-width="5" fill="none"/>
+ </g>
+
+ <g transform="translate(220, 0)">
+ <line x1="11" y1="10" x2="11" y2="40" stroke="#0F0" stroke-width="5"/>
+ </g>
+
+ <g transform="translate(242, 0)">
+ <line x1="11" y1="10" x2="11" y2="40" stroke="#0F0" visibility="hidden"/>
+ </g>
+
+ <g transform="translate(264, 0)">
+ <text x="11" y="30" font-size="20" text-anchor="middle" font-family="serif">A</text>
+ </g>
+
+ <g transform="translate(286, 0)">
+ <text x="11" y="30" font-size="10" text-anchor="middle" font-family="serif">A</text>
+ </g>
+
+ <g transform="translate(308, 0)">
+ <text x="11" y="30" font-style="italic" text-anchor="middle" font-size="20" font-family="serif">A</text>
+ </g>
+
+ <g transform="translate(330, 0)">
+ <text x="11" y="30" font-weight="bold" text-anchor="middle" font-family="serif" font-size="20">A</text>
+ </g>
+
+ <g transform="translate(352, 0)">
+ <text x="11" y="30" text-anchor="middle" font-family="serif" font-size="20">A</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-01-t-isvalid.html
new file mode 100644
index 0000000000..042f324ff3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-01-t-isvalid.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <image id="image1JPEG" x="240" y="0" width="240" height="150" xlink:href="../images/struct-image-01.jpg"/>
+ <image id="image1PNG" x="240" y="150" width="240" height="150" xlink:href="../images/struct-image-01.png"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-02-b-isvalid.html
new file mode 100644
index 0000000000..b28ba8b245
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-02-b-isvalid.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-02-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-02-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <image id="image1" x="0" y="0" width="240" height="150" xlink:href="../images/struct-image-02.jpg"/>
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="basic" id="svg01" x="240" y="0" width="240" height="225">
+ <rect width="100%" height="100%" fill="blue"/>
+ </svg>
+ </defs>
+ <g id="square1">
+ <use x="0" y="0" width="240" height="150" xlink:href="#image1"/>
+ </g>
+ <g id="square2">
+ <use xlink:href="#svg01"/>
+ </g>
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" baseProfile="basic" id="square3" x="0" y="150" width="240" height="150">
+ <g>
+ <rect fill="aqua" x="0" y="0" width="240" height="150"/>
+ </g>
+ </svg>
+ <g id="square4">
+ <switch>
+ <rect fill="red" x="240" y="150" width="240" height="150" requiredFeatures="http://www.w3.org/TR/SVG11/feature#ConditionalProcessing" systemLanguage=""/>
+ <rect fill="blue" x="240" y="150" width="240" height="150" requiredFeatures="http://www.w3.org/TR/SVG11/feature#ConditionalProcessing" systemLanguage=""/>
+ <rect fill="green" x="240" y="150" width="240" height="150" requiredFeatures="http://www.w3.org/TR/SVG11/feature#ConditionalProcessing"/>
+ <rect fill="yellow" x="240" y="150" width="240" height="150" requiredFeatures="http://www.w3.org/TR/SVG11/feature#ConditionalProcessing" systemLanguage=""/>
+ </switch>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-03-t-isvalid.html
new file mode 100644
index 0000000000..4852a11138
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-03-t-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-03-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-03-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="23" y="13" width="434" height="224" stroke="none" fill="black" />
+ <image x="25" y="15" width="430" height="48" xlink:href="../images/gam030.png"/>
+ <image x="25" y="43" width="430" height="48" xlink:href="../images/gam045.png"/>
+ <image x="25" y="91" width="430" height="48" xlink:href="../images/gam056.png"/>
+ <image x="25" y="139" width="430" height="48" xlink:href="../images/gam100.png"/>
+ <image x="25" y="187" width="430" height="48" xlink:href="../images/gam200.png"/>
+ <text x="25" y="285" font-size="40">Gamma correction</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-04-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-04-t-isvalid.html
new file mode 100644
index 0000000000..0a99c3049a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-04-t-isvalid.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-04-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-04-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <image id="image1JPEG" x="240" y="0" width="240" height="150" xlink:href="data:image/jpg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACWAPADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwCeSMqeDUDsy1YkPzHNRMFYcVZkQiQ0MA9IyEdKi3EGmBNGm1s4qfft4xUUL+tPlyTmkApYOORUDwgnNSbyKazmgCExBKjZgOKfIfeqsmexpgS5pjPimKSOvShsUAO3UhamZwaM0XAUtTC1ISaYxxQIcZKUMDVctQJMUwLOQBUbPUfm571Gz0ASmT1pPMqAvTd+eKALHmVJG/FU2bpU8bDbQIsb6XfkVXLUm+gCcmmlqhLn1qNpTQBK0mKhaQ1E0hNRlz60DPdL3wtZSJuhY7vTFc3PogiLjBG2vR2RSN2eTVeS0jlydoyaxUjSx5dLYsoJ/Kqb2slej6h4YF1h4GEZA+7jrWHL4WvwTiLOKrmQrHGEMnFKrO3Hauqk8Iakwz5OfxqhPoF5bMVeI5HpT5kKzMXGDTTkGrU1u6HlGGPaoSuTRcLEDsfTNVmOauPGeMVXMYGRRcdiNVLew9aQxndjmpFyv0p/BpXHYrMpHQcUzNWG7iq7DFFxWGsaiZqcTUT5qrisNLU0tUbEimbzRcViQsRTC5phehW5p3AC5HXikZu4NIzgnBqMnkgdKLiLAk+TFPWYYxVUA460hYgUXAuebR5lVN+B1o83FMCyZKjZ6rmamGagCdnpuc1B5tAlFAH0/DMjBdzLgjPXn8qs74UVT5sY3HjkcmvNzeloEAY7lGDk1SmuZe7H86x5DTmPWTIoH31Xd709rmOEfPnIHXHBryOLUp04ErD8a0f+EguZLI27uSOxPUUuRhzHdNqINwGS4/dsfmTris3U5YZpd0Qf8TXCNfyq4becjvmtXT9euFYKyLKvcMKfLYL3NJ0Vuqg/UVUl063kB/dKCe4FaLSxTqGjj2e2c0wKaZOqOautJ8rkDcp71Rl0wldwGBXaiHdxjNB01JBgp+VJstHnxsip6UGzbGQK71PDTSyYjbI9CtWo/Bs2QCY+ffpWUp9jWMU9zzNrZh1FV5bc+len3PgmfaTHtY+max7vwffopb7MxUegzS9o1uh+zXRnnrxY7VA0ZrqLzSJYAd0bD6isO4gKk8VaqJkODRmOBUDAVPMCCaquSK0TIcRrtUXmEUrZNRsrelO5NhTIKXzRVdgRTc+tO4rFrzeKjL5qEvSZOKdwJGkqNpsVE7EVCz0XETtNTDNVctSUXAsed70omqtS5ouB699q96YbgNxmszz885qNpiG4oEavmDGKYZSOhrPFz60puPemBdMmTyc1agvFj6dayPPFAm9DSsO508GrumMYrWj1qMoPlG761wq3BHep1uXxwamw7neW2uxo+JVA9CBWzbatp/mI0rAq3pxivMFuXPerEVy4P3qhwRopntdv9nkUSQFGB6FTmpq8r0jV57KdSrttyMgHrXo1jdG8jSVJAUI5XPIqb8ulh2vqXqKKK0IK13p9texGOeFWB74rz/WvAUxkZrRQ6H07V6GblN5VQWI64oS6jZyhO1h2asZKDejszaLmlqtDwe/8K3UDHK9KxpdIdPvDFfQ89vpVxIwljgZ26lh1rnPEPha3kjBtLYAgc44FTzOO+pVlLbQ8Re0EYORUOwHjbXa3+gyRKzPGVA9a564tthIxWsZpmUoNGHLb9TVKSMrWvMhFUpVPpV3IsZxHNDNxgVM6e1QslVcViJue9QsKsFKQx0CKpBpOlWNpz0o8lmHAoAr5pc1aSwlkPCE1bTRbggfu2NAHSp5i9cUrPgVrLaof+WfNVZbdQ+Gjz9KLisUPMphmwetbUGjwzpyShP6VI3hZGK4vVBPXK8CjmHYwhL707z/Q1sf8IlL2vIf1qGfwrfQjKFZe/wAtHMg5WUllyKk+0EVHJp97CcNA59wM1CySg4KMCPUUXFYti4NWIrk+tZYdl68VNHLzSKSN22uG3A5NdVomoXNtKkiSlVzyPauDTUbO3dUnuIo3borMBWlb6/ZRswe6jTYdp3naM/j1rOSNIux7jbXcN1CssbDB7Z5FNmvIolO7dxxxXkUHj3R4ZAqagnTqARz7cVcX4j2Hli6e4nVNwQ74zjnufb3qOaTHZI6++8SPBKwFsEHYkdaxG1xjKXEh3H3qvfeIbR0Y3N5aokgyod1H5Vz8txalfNW6iCZxneMZ+tNRT3DmZ0iX09zOziXGBkjPXFMn8S3suY2mfaOwNYEN5H9n81Z9iMSqsT9/tx696jaRVjaRpokUfeZnAA+pp8qFzM15tSMibZlDg1hXllBMxKOR7EVTk1/ToLe3nnvEWKckIxz261W/4S/SI7l4ZZoNgAKSiQMH9RgdOtJRS2G5t7kVzp7rkqcismaFgeRVi/8AG2kxyokLGQM2GZBwo/GsmfxjZeaQsO+PnnJB/LFWibkjRjPSm/Zy3RKx7vxfv/49rNU93Oaz/wDhJb8H/WAY6YGP/wBdMR1JsWxnbUJtD3WufXxRqHmFy6MD/wAs9vA/rW1Z6/ZXD26zy+SZGKvu6JgdSfQ07isXYNOMhHyHHsK0Y9EUn5GGR2NVrvxxpljA0dknnuhATPCsPXNUJfiOxjBjsU3kDq5wD34x+XNK7DlOqs7VYX+WBSR61PPkj5uPYVwM3xB1F5SYre2jQjAUqTj3zmqM/jDUpY8C4KsR8xCjg+3FGo7HrEdwv8P61YWQ9SBiqxhsIb6Kza4HnSqXUYPQf5P5VOwsbS3upLq+j/dhmVN4U4Azjmi6JsyQsxG8Y/OpIZ3m+R+Rn1xWZL4j8O2OjRXpvIp7hkVvsqSqzKSOh+nes/V/iBolvGz6ZEk86kY3h1B9ccUuYq1jsF+zFcbXVvXORWhZ2M0jYWQFOxzkV4tffEzV5XkFvHaxIRhWER3D82IqhbfEbxLbyB/t4YLkhWiXH6CpalbQtNX1PdNQENusrzybNoJztyDxxyB3rhNV8ZaRbQuFheWUj5DjaD/X9K8y1PxLrGsuTf6hcTqWLbHc7R9F6CqcZ3OM80JNIXU6q/8AFl1dogtI1typyzcNn25FZ8muapLuzd4yMfKij+QrP59KQjHWldhYa13dCYyNK5cnO7POfrSG4dslmJJPNRuwZT7VEHFVuIs+aaa0p5wTUYYnpSEHqQaVhjjKcdaDM5Xbk49M1F1oyfSmIe0zkAFiQowAT0pnmtyAxApDyM0zApgP3EjqaazcUH5elNJoAaTSFqDSUwDdTaO9GOKAD+VGaM8YpKYDqKTPvRmgB2SKaTRSHpQBoTXt5cyB57mZ2HG53JxVfcWbG+vRZNNsZUAkt0K/e+YHrVc6JpbAf6Ehz0IyKCbnCKuO5p231JruP7E0zBzbJgdfmPH601tE00/dthn/AHm/xoC5xDKvZj75FRHA9PrXbNomnA8W5HH981EdD05j/qj/AN/DQHMccM+9WrZgDgjntXS/2Dp/aJ/++zR/YtiuMI4P+8c0mrjUjDLtjOOKjZmP0rffTbNE+VXJ9N1EWkW03WORT7sKiw7nMOdoNMT5m7j1rso/C1vO3MjAZwMHOa1NP+HtvdsoW5I3gENjIpOpGO5ShJ7I4IMMYHFLgHAzz3r1uL4P2rKS2pENzgbCMn8cUyb4VWEPJ1FiMfeGCM/gay9tDuaeyn2PI5UAwV/Koeetel3ngPT4CQL0kYz82Af51jSeGLJM7Jy2O/StI1IshwaONPTJBNIsbsM4OK6d9AgDEZOKfBpVtBuDJnjjJq29NCDlXBXr+lM2n0rop9KtyxIX9TVc6dAvGz9apCuYRBHem4OO9bhsYP7lJ9hg/uUxcyMPn0o/A1tmxg/ufrQbKD+5QHMjEo4rZNjAf4f1phsYM48tvrziiwcyMmjFaxsIB/AfzNJ9jgH8P60BzIyiDTTxWr9lhx939aabWEn7v60D5jvPMLEDG9c5xtzj9aTMxxtBAPXA5FM2yDlZuOmM/wCAoInONzp7k5oIHNCXGGyfrzmkEW1cjP600RlckTAnPJ3daBIATudyTwOn5Uhjdw28cj1I61EzEMdx2jvyP6VO7K+FLLnPQn/Cojhckuvt83+NMGG3IGORjseRSFycLhgcYwf/AK1ROA+0CQY7ndmkjXYpETqc9BvJoET5kw3G/wCnaiPerYZl+h7fz/lUexmxtbkcnDEf0qaBXbA37SOSwPbtUsuJqWkjAKfMKg84GP8AP4V1ulWaTywsty5c/KcFuM9+D6etc5a217wIIl8tgAXYYAPXrg811NgbuO3dN0yuDx5TBR9STnofpXFVZ2U0bB2WiYNxwPk+8VCe5Bb+Z/KoiFETPayo8GfnbBIB6HgY7nr7VqCO4FlHI9vdGfaN0v2mNdgz6nGB+tU5hIYpJWjicsBmVJ0JI5Gdy/1zWFja5yuphoJn2Mp3ccRcj3weT/8AXrmr53OCeVJI5Qiuk1SCJpI/LkuEduVEeBz6bsA/l+NYFzatuSNRIqYyD5mc++StdFMwmY0yvkHcB6Z//VVNzKe5/E1eeHaXkEko74ZVOPpxVNuR8+T6/d/pXTE52VmLHrx7VBLnGc1LhS3Q4HrUUuMVojNkJJ9qQUE+lMzVEj80mabnPWjpmgBSaaaM5ppNAgJzTSaMnv8ApSE5NAxpNITRznGePpTT9f0pDOzbMeAsasPRmP8AQUfIGy6rgnquT/SociRM4IHokf8A9fNIpAHLOQOMYyKBFjY3O1VK+7Y/pQ3AIXH54FQiT5QAsjHrkjA/PFMkuiv3lAXPJYhR+HNAyUgqcEoAenem+WVbkHb7etVJJlL7oU3Hvtbr/jTPtJ3/ALxYoh6SOOfwoAszADHyhCOhxz/OkDcA/Mw75O0f41Cwt8h2iXI7quf5ZpAIw29Rj6gj+dAizh8kpGioT134P8quRxr5gaUEHHeXkj6nOD+FUgQcKY5H3cDbz/WrFu6RzbzPiRzjPlud3PJzzUSZpFHR6YJkkUQmZiOTHK4YBe/GMEf5wa6PT3AKpZt5sSNmRZAYmP4bea57TL6ztrp0ku/MRR8ojtmBDY/hIHXjk961LTxH5kbwqr+dsJDNHODuIP8AdHPOeCMVxTu+h2waXU68HUtryWpgYAYEUriTH0GAV+gqtcNqgjUmxtwSoD+XO6que5AQ/wBPxzWJNaC809mkURLt2YH2iLJ654znp3B7UQ2MMcI8vUb6SVU2BopC8n4EqD9M/wD1qyt3LK+qWstxGy3V3LK2MILd3Axkcnt2/KuYntoLJWtpLRmIO4FQWJP/AAIjity60+aMSKL67kBUbkkk3BjjPIMTZrMe2t1sWRJn3sG2iNN/Ab/cAwORnA5raDsZS1OflmkjY7rCTG3gJEmMe/P9apySg5PksMdeB1/CtKZGA8pzJweoTB/+vxWPKjHAjkuGDD1PP6V1ROaRFLIoJAjYc1Wdtx5B/GpHDA4eTOfUkf0qBgAfvc/jWqMmITjtgUzdz1FKSfqKYeRnFMQ7PNJmm5Pekz6/yoAcTSHmkzSZoAX6HFN6Um8HvmgmgAJPpSA0lJuOSMEUhnWpAVJCJEM8Z2AfyFVrm3cxly21ccgMeg+mKKKCRY4IvKDCNSo7Hn+eaHRbcFhCgwMkK2Pb0oooGRP5QI326sTwPnNMVLUSErbjOeh6UUUATIsTqc7wM9AelBgiWNmCbgP7x70UUDKwlt4jkxFivJJAresLkTW8twYd4jXP+sKHrjsD/k0UVEldGkXZ6F2yne5PlLugDjARX3pgezDg/nXX2HzXS2gjEkhUOqySMI24z8w57e1FFcdXex1U9rl+GDVFcNZQWUEkxJVvPkA465CBc9B61japp3jGBWVNbtTF5WXzH82D77ST+dFFTFJMJSdjBNvrJuUtry7t7kQLkFlIPQnGRjP3epqp9g1YiW6E1pDHCmfLi34OTjr17+tFFboybdzHv7y/uLl55JUl52AtuXgcDgHFZpkmkXcywj5scKT/ADooreKVjCTdyCVmJwZGAPZQAKYVZcKDRRVEkbsQeSSTTCc8UUVQCZpM0UUgAg/hTM0UUxDHlCEAg0gmDHABoopFBvyO9LuJoooEf//Z"/>
+ <image id="image1PNG" x="240" y="150" width="240" height="150" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAACWCAMAAADXJvXnAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAwBQTFRF///////3///v9//+//bv/Pjm9Pfv7/fm9u/e+O/U7+7m5u/e5uzm8+XT4uXe4t7R7dq+1NjQ5smn0s+9z87IxcrH0cOtx8W9vcbFvcO9tcW9vsC12riPwr6rtb29w7SjtbWwya6LrbWlrbKwta+graylpK2pxqR7wKSIraicpaSfpKWUsZ+Ku51znKWcmqOltZt7pZyUnJycn52MnJyUkpyclJyUsZNznJSUjJyUnZSMsJBplJSUlJSMjZScnJB/jJSUi5SMhJSUo4xpjIyNm4lzjIyEgoyUpYRfhIyMiIx7goyEe4yMmINrhISMhISEiYRzmH9ehIN7e4SMe4SEmnxSe4R7c4SMc4SEc4R7h3xme3uEfntze3t7c3uEc3t7cntza3uEc3tra3t7fnNmc3N7c3NzgnBac3Nrim1La3N7a3Nza3NrY3N7Y3Nzc2trY3Nra2tzcmtaa2trbWtje2dMY2tzY2trYWtiWmtzWmtrb2RSbGNecWNJY2NrY2NjWmNrY2FaWmNjWmNaUmNrUmNhbllCZlpMWlpjWlpacVQzWlpQUlpjUlpaUlpSSlpjUlpKSlpaXlNCSlpSWlJNUlJaUlJSSlJjUlJKSlJaUVJCSlJSSlJKQlJaXUsyQlJSUEpSUkpKQlJKUkpCSkpKSkpCQkpSQkpKTUc6QkpCOkpSQko6OkpKSkJCOkpCQkJKQkJCQkI6OkJKTT4oOkJCOkI6Qj8xMUJKOkIxMUJCQjo6MUI6OjpCOjo6PTopOjoxMTpCMTo6MToxKTpCKTo6KToxOjExMTE6MTExMjEpKTE6KTExKTEpITExLiwhITEpKSkpMicUISkxISkpISkhISkZGSkpISkQGSkhISEhISEZISEQGSEhGSEZGSEQECEhGSEIECEZIRkQGRkhIRkIGRkZGRkQGRkIEBkZEBkQEBkICBkZGRAZEBkAGRAQGRAIEBAZEBAQEBAICBAQDRAACBAIEAgJEAgACAgQCAgICAgAAAgIAAgACAAAAAAIAAAAoYb3nAAAAAlwSFlzAAALEQAACxEBf2RfkQAAPyZJREFUeF61nQ1clWWe949OWVmKr5mpoyjKi2FICJNASiDhGhEETGsyOpuBjO7shJJORIZMkBLMDjJ8SM7SjkDA1DiwgjuzDhJ8djYYyDCpHfFln3wGlD77mR5obQZrH5/f739d133uc8CX3e35K+c+b9j53v/3/3XdJ8fjjz/11FOPU3B0k6e/853vPCuy+TvJTyXjTevXr8fP448nJ+O1zc9+b/v2733vr78HUW/ju/noBvLXlO9TXvCQH9pEvWR/5pVXzKMXtbieUa+of9T+O+r+K1p+pOR1hxtocnKyjVmINxP4aT5NXpHHnwLx0yQGqov3FoBdvJ7AN+bFx74Z8AsvjMvrDvz66woYnJY8/fTThpnAm7+zeTMUnPy4UrACxu8AebOcC61caFfZwy2p18L94Q9dujR6HaNfoyS3449eedFDne42oV588UX1S6JcEQc/vyGG2kQALdTyUAFrsxfbF/unWeOlzeo3RMbhFZXaBXpwmbOnAQq8NnU3e7ShatPEwVL6WDvWz8D6Da3g/hjiePTRx8RGITRTC0CAIfLU02Lq2gqUAcj79QmyeD3US2+1aMXJbkArH9IAu/uf9aldtLx3Y2JNK8q1cAH88FoSw2JJALpntLqIQ+Fj8MKmbXYPXnOOHtfUz2hrNjaNI3hfeGG75pQjtGes2RgkjwRyPVbx6kXjfRpSfXBQuo7yO/Z/R4xY2/IPtTHz/WLLVO+Pf/ITx1oCG7e0aVhZ9lPkFlIDrB65XN5Y/ljvFV4xYQ/d2iLwixYXmN1M0z24ulSrPBFCeNBZUdvNpe2+a1OvG7B2S5tPgtilVuPpHsA0dTFsAsN8bUb916LMm/AaPQifndgVbJSKDLI7sMEloI3YzZz526JereFHjX7FpscIFcw8DbvH6yptmaytHV/jgpVK/b5A031dmXZM3lURlGIPvZ7A7noV7h8DXT4+T4Hrd133bf+kzrw2XtHwo7RnlY2vR+wCFvvWaUuZtY7PClIQxye21xkmZXgCWyp2U69JKMoTjTu6AdO8LXGPbOb9P/nJGyIOCVn2XDNWx3BgFlhSbrhbtI7Tyn81r0FmRWVRjpeK7Ap2+8Qe7msZ8VhgW9pxx3QpV8xBwf4dxQKWgkKVUK6s+qxkYdRZJvU+jZRsq1GstxrgH76olCyP7cQWuq4HVLhxR3MvLFy1go1YbNll0vgHxgPVNYbxXMEVWgHWClbASDcqBpky+lkQewDrfCXa1Xlbq9ilUPqxBbx7926XQRvvtaqgsZ/YozaycoqKOzoCGZO+PrAJUy7tCvDax7QLa0cGtCgZeVU1DrrQekryEuK25lWmoPM2gGnVVp5FvfGs5sVzAN69+wdyu3u3xFJasyn7rptnlWJfM4A6zioTVUHLIy+7HtvOkVGvUbE2aQYse9tg65TEpunGilhVWCICbFKSjtE6Eb3wgitMa1J9cEXisQ7oyrBWoDL5RFIKOI3aqGo35drSs6vOwO+465capk3rstEgEwqatTSsga3awwZs41WVFRMvVe0KU+7Arg5OgK0P7RaarAd23jfeuBVg86tuBm15MIBXPbyWEZjas/FKhpXGATaNmgsmzteTTeHpHsqlUfze97ZbUfn7z28Xr939wu4X6cA2ZimzbAHaFk/HZbaQla5+8oYKWzRqUzSO83saV2UiF+5bb73lWLbswVVrUV9K48eiQhdX0jZooe2SWGfdMYmLb3MBb99OWjdGD2B7ySHA46vXVAywZZLycxP55sDG8D15/47A98395hIwr1r1CLChbGqb+hYHVRqGit3aQA1smkN1VqBgrWECuwi/b0dX8VoUbJtE3ECz4NMFgwImMnT74x8rRV9Xt67ka9Mved9yTJ0+fdZsMC97kNTAVqqWIGypWN0R63aJ7VWaNDjtYwxFzW7J3Yd3i0W7Uu51P7NWjzFJA/x34sm0bEVs83K3u27Jl2eKtAS+Z/Lke6ZOnz2XyDTvVWsfg6YfEy0/o11WZygONSjCbT8ZhKXQbZ8n3/Pbn9u+/XkKnvUARmYyuPsgr44hhgWLEbv5H00aKn7zTehYvWoL2h7Q1m+bYsPACvDdinjW/SBeAuMOXfUIZO1jT6xf/4QYty5CGLNx9+lndF3yjCZOU9a8PV0Dkw+8m9O3Ax3A6dq+TR7GUYBxQ959yLMm377+enFx8WuvK15PYgP8Bv0Y7PI63liszs9PjKqLLRdQuHQEgr5pNDxVZDp1vGTRoiUPUpRDPyby1LdB+N3vfvfZZ7/7XRkFmDGQTcdCrBT8wu6dvJuejhOwU+5CDKwuPbSGieumXuAWF+MZu4JVjH2TmqWoO5Zf2sze466lXM37c80LH9YyffY3IVDxg/RmallBP/XUt6HY737nWeB+5+lvWz2kPYpT2ZqXwOlbQLt5i4DLrTuysWhPYOElsBsxlA1OaIikb775liYnOs17fLHjin5/7gK+Z+pUL6XkWbNnz77vvmXLlgUjeDFkS/x67DEkKtEqWyXUnXBt8D2DlGy58XPPPbf5edovzBhqTU9/7jmoWLRsxHJku//ue+01WrGbuHmwNtc3AEdkHuTWJSpwKzvwLKpckUqQIRK0jIph1gzY9933zWWrIh5RxDGEVj2Ufa4zDvBzKkA9v5N2rGjdkK8DLG47BthSmw1YM9IbxxAbhboVGTouC6gROzA17eVF6NlLgtdGRKyKiIgwWtaVmMVM1SYnpyoNp6Vtpj61Kkm8wwasn9+5k8R79+7dbdcwApaC1WDu8VlHJYZkMWClYarJ0jefcDPfMXHZjZcPHPdQLC1PnQ7bvm9JwIrg4NDQUCJHRcXQsjckJCdsWI8/GzaAO3VzqgZOgwgwkfmzY1xiC/jll4XYBGgL9zrOKAlIRVsdZoXXEEskkpctbhOcxpDqJxx33z158uS7LWL6Myx77qJlASsUNbAjomJi1kZJRbJh/foErWmyKgEx8pCmJrG7Ue+Q06BU/PLLLwusZKTX9isFA6pyfMELWrWVb771zjt1LosWPde9844KYgZTBSi7/IMl6lkLGMyi6btxwJ3p989bBFmydNESyrJliwJWgD0q5glqODktDY6dloZ7m595BqkYlq2JUXFIWtJhK/257Tt27ADwDhLDppVy9+3D8TUSk5m8BzWxOr755sE338TRDgw64JgTIGo2wFaehcFr2rc06Dv6+Gt9dEy9G6IUrKz7btygFJEYBl2rA1173pKlSwNWIIzBvJPJKoKe4hnRsgY2wcoVtgArhg5iAFv6FRVrHXto2DgsiYVLrBgK9ojSBFa6pWfb9Gq0+o9jBXnYAlbMsHD+TJrMu/dMxV2Re6bOmjMXWpfqE9BklQZK9J2GVGUPVemuwEUN7xDgneB1J96/Xxm1m027gjCBoVFiAVXd2oL0WzgTdUw14xvxOLR4ioWHaPhuL6+7J8Oh7yDsxEl3TKJMnDhpwqRJEybgZjIS9X1z585ldQILXxYcEbM+JmZ9wvonNDK1TOZt27alb9PwW7ZsUc9A/uZvdu3a9ZIgKzXnA9cQK7OmKHZCq8fGO60w/eYbPAvqadHwz3/+Duz2Hd5Ymv21lnff9bynKy1ELrBOAit+5GbSbRMnTbptwoTbJntBy5MmSYcB2vvvv58lGfurgIDg4AiU3Ci7ExISqGebkkkKXkG2EYuSKXl5ilfr2FKyC1gxjwG2x6df/vIfNK8LFvf+UVG+O0bwpMNrqoRpiNwC7Y47Jt0BfOqWyp08fdas6VNh4iSeOxfAhhkxbVkwqhPKeig7ScVskG7SooiVnsEtdr1798vKsvO1ig0yM5COXGCtq1Mh2c7neR+81KxNtaQF7lhU6xnHdCYipWDxVfDK8W7CTpg4aSJteZbX5AlKxwQWDYuA+MHgVcjWSFsxMbEJhjktzSBvsiOjnQDwTsYuInsAo/wwyAxUWq4PTFzIGEu+AS1egoZRXlGBQqsOFDrxxAmT7sC5QMCeapyYJm0jVsgRqMwiIqHnWDCDWsmTTz5p1zQSFXtkYdZm7dKyRz6Gd95A5FU3G252t+F2kX8eR9rbHbOmIgUhHsOQKXK8AzcT7pg89W6Y9tSpk+/xmu51D/IT9Kuc2E58P7w5GMUJ/oaEkprMwE0AL8XoOi1N2bXEawCLXUOKtRvvL/6p6Jd5mESHNTGOtNp3zON3fvnLujoo1ygWR8H9R7Hj9vZfK9Tftf9OyXvux392zJmO3HvPVC9oF1Z7D4jFg3F7N9ooKa6BOgtmjV5KRWlPoZIhK1CQhkbQoWNF1qxZB9HcSaJsCdkA3mXFrr0mcv20uLj8p9qFDRyZPV3UTbN80Cy8YsdEFdobiGM2WyRW0PyZi3t333P31OleXozZ0jMCcvZs4rJ5NEGLShZV37+ErrwM8TogYGlAQAhtO5LEa0SIbEELMxMU8pOFLMAlxcU//Wl5uSkv7easmJqbx4DqJzx4f+fG2+0mchocS755HxKrrh8DHlyxbPGSRfPmzp0za/o9d+AMsLLEsGvJN+feBzVPnz3bBGkVrbV1owhdSoGOvxUC+dbq1WvW8GdNkOaOF+yNW7cKsjCLlvORnYpAXC6iiGss4MZGsrqJ5reeM+pVXvu73xnE9z3EPO8IXsKUyqEl7HLVKjQLK1bw8ZK5UPksFFZ4ftUqIC+C+vEU1Hyf0q0NmFqWypupOXglxH/lQw+IBAWFhYVpTcfHx6s4tlWQJRsrYMWrgGvswGOIlb5dItZsohQ0eFPgVctkrqNntGwH1z7MHin4wSX3zZ67bNXDMv5YtSoYzHORkGHms0lMR1Yahs2LzJvHfiMgYGUIeP39Aeu30NvPz4/QEFKT+MmNGzdt3bp1m9g1gPP2FxUVGeC/B64BbmhohIxRsX7iXXV04Yp+bx1YzaQteRicIFyCVQk13Fq7NmJV8Ipl37xP+bWKWwJseOEGc+bMnbNokQ9o/X0oC5WA+oEgYIdZHg3TFuKXNHCZAv570ireBoV7A+B3gaxDlU5BLtrubk+Lft8y6UcedC08PKoWXB4lH88A9a52+axfD2KkWyDPhU0jeCnc++934wXyrJlz5ixYcO+9+EuZCbn33oU+VLTYtwQyaHnr1qxdWS+RGBouK6tw8SqL9uRtbbXr2lVc2FKuFaHG0OIJC/hhYAkY9Eg0FMaC/MSjax+B0h95WPGufwLF1NqI4BWLGL+sEtPwzplzH6L4HPydRURE+alTRO686847p0yZNhMnALqGpgNJHM/wtTUrK+ulvL1i0mXlCFuiYKdW8WGN3KCN+ojmxVFoYcty77iKVt2dmqhTK9fo2PPoeARY2oMfATEEg8rHHnt0/WMgxkl4BM8RGAOemLWrggOWLLIZMZVNfQN2lhbyenlNmXK7yMSJEyfcBiG11zRwL6Sq18CZRccgho4Rtspo1BXapJVha9Ouc7fqVqXb9nbygvjXErAArGU85bo95yATNckfjKFlDxP2sDxGeCiapwDPJSeDOSYiOADhW4ipZNziADM2uKxRMAn08rrz9okGmBW5VOWU2++cAvuGooFM4q3ixgIM5Iqf/exnBtYGbSNuNbzvtpug9WsprX5niN93abQb98f+cax6RP2RwAS8x9WCgz4AGrxcQaUbM1RzQQbIWrew4TlQ6azpuiSjbqdMYaulMSdMcFAM9oQJYPaaudAvTOn4b5ibAEw3LiurhlQ4nU4o21lZKWnKWakKZ8uBqV78gU2LhnVKes9SsdH0h+9/aPmtvfyASSt5VAR7mDQw9SzaxaIxW3w6No2fwKiuoF3WXqJbUesUUa3XlLvgtKjEJ3zjG98QSgfu2AWqvv2uaTMWBgH5yU0gRm4ywGVlpRWMXiIlJaxGkJcZwlzEVutHYGXQ7e3vWenXYvvwww/d6yz9CLtpXQLFCiU1rPeqWVtoGadV5JayZIkBhkXP1IbsNeVO8dqJ4BRGUa4nMK379inToGQEL3Hkl/IKIdAyg9d+gJoOmT2UAq6rMyo2wIpXAY/hBe11eLsdik+J8l/NKxsguJakREI3c3LoKjYKDzJYMzuh1piHOlS8d8qdpAWvxhwH2CF6p5Lv9QtSnpyRlZWTw4RszUA4GjDLETLFRDeho/S7KkZLyHIVHWiJ7Oq8Pm53NzaIK7G245ldecLrAmYgoy2sRym2FtSoP2V8yxIaxPBiiVYMyeK3Wr+eGtYOPXEiiKHk6Ojo+MSNGRmAhm1jGPLy3rz8/DwbMHWsymsdvFzApqQULbvZ73X1C2B1gQc3TNtJudeDvN9+mvuoKeYqD8nTgA5FJcaS1D8AshT9BrQ8a+b0qYhPKkzJLY7apLVp8/lvSAyjkr0hqLWp6G2orzEg2L5DBl6qg6JQ1XDlGraMTMlHtIqP6HgleZhmbeVhdUfl5Q8Ru5SYPO2wbJZ7kdw2axFXFtHkFWubJdYepPCiQwc/iNWJ4JAQNIdgRik9b87UySDW0OP5sPZqvAXxetq0aTPmezMzr5H5iAwIELihYmPScqek0umEkhvEka0qS6Oqg7tRa3oNazdxh2sjodzDgihAv81ba/eZLJXqXZc8PxsMszQVEDTBREavBG4gm6Q0XpT+hhXFmJoZsJGYfR54aM2aWCCzdZSmQs9BXtsn3lxSLsSq6jLAdt73PLz4JsBc+tXb0HhXNnLYca2NLLbdtK6qm1W2CBUdEOC/dB7GJwxdSjyitOshzB0Of7sXa07/h9Y8tHoNamzpl0msJvavcgIEXhg1ak7omNH6N7/5jZtyYc8U1Srp6GUPYh9+ePr0aauW1iv5uArJXJAzZhuW3smitvDISqmI0rMMaTmqJTaQQ0KWL5030+tOZCjKpOsDS1iDZU9BseI1DY2GXxCdGb2jah1lliuaVglZEYuSxyC/9x6hiSyqxijLFsQkhBlih95hKLS8xAzbObi5QfZ1cGuHwTf7EGVNWF33oYKZajcUOwc8IPb3mQPiO6eAeuJNgFURNvG22++CcUsAoy8rZjPKlQoExRfKTWkaBbkV4qFnpWiZ2r1nB1bhize/w9TS2pL07Pfk8gR1YR03sVi7adUmLZforQ6yI9Go+wnOZ6luAIN4wXTQTmFN7QlsLF0HcVWOofK+k+7s7cf2UZCVL7PuRClCXgLXuoYCBB5DLEWI0rBtFkDS97rl7LzbbANWl2PoCzWsi65soOrSO/fzsNnaDJGAfmp9TFQUhnghy30WoApBh3T7GB8WdYogYTN7qc6CT0yZsdAvCEMwNsxKyRKv1cQLNTaBXUOB34yrZB2tQa3HH8L/nrCKOHDBpDJmXliEPbA88OIq0vEoN/qxXGe4fbubdZvtH09xhwBU/HDEWih5pf8Cr9tJNtEEZZOHHbfdfuedd9015S70yjgdAJ54m5SjAEYt4r0SKYpaTmMrRRVr4hJt0samUXkJcbMup00+VoNoGDYhIer5d5vf0ZNBB7VqLqayb/o1V4Fal+EobrPpDmfJbOJxhW7mq7WPIEcBeOHMKbDnMc2D47bJaKcEeNo0IKNjhCFIhMMRkwI0j8zLMGsz9gIxjVrZNOLWL63BD4l/owsQ1SW7iy5Bm7FMVfmGJPbX9zncr6Ry7XI292xXWVH3cn4obsQ6gImOkaVCvrXS32cBQjWrTHseguNOuhNB+S4Kqg6gosuazpGBtmpUIuiY0S8bYhlsFmk3VmOBBgtZA6uBgCeysmEotrKyuHjfK9j4yc/twMZW2dStb+xX26idddjzLH/cLjL7/vct3zaK/ktTk8TEREVycLlwzqw7TcxiPSnl5gQMPyjQ8bSZM6exq7x3AcZeM6FsaBvpicCYECjgl17Sk030zHRkGRBgwGdGfPahpqVhaZbbDW5NZXnxvu1bsGUhjZvlCPxDBSyXBZqLO9U2bjySvc2yy0qdC6NxezDT5o2dPcnw5A0bYhGrQQwlT7ndUrAkIKznsNiAeGG2p2Z8C3wWLFx4L1sPTL4W4kkUImLUEqllzsfCi7Pcip9VmFFILSK2hDCPObVuI/EsFmnq3qRy9+5MT16Pj0benQ7u8ySy0JDRuhRV9hdxn6Awq23POGpic9GdtdduC7dsJadCkhJiEalXPwTkmV66b9LZCJEZoYzeCjgl9y7kVHcBRp0LfTDh9fGW0a7P6jVSaGJAYAM20doaBNVaixSmXz7yzjtHjiBCYYn58GEYM3C3b05NiMGCPTa87tjpePXVV/cRSfNaF/O5XURkqOUKPw/bNk69fTuQwUzi2NjI1atX06xnqbxjCc3WC2rlLJey0AdzbFQqiwhL4TSXZ8B/5epYrMBh8U2MWmlYhAmKOcoa9An0kSOKXY6HoVgt2Au5I31LWip23cjyJYC5h0hbrfulgNhZ5MI2u9jlnTZPxwU6P8DfH8hOUtm/pFUcuRqfe+FMdhLYKYJUi+wDY/aaKaA+GNiL4E3C67885CGu0TzEW/z4Y7EmMpLMUlrTqF3AmHsZ4BqP1RnQOitLivP37MHn3LNvH4B3Yt/UNrX/AsAvisWq64rAu8/sdcVdkRf1VX2u59XJse1/FmPH7jMgAxhnk0YdEwmL9lk4Z/ZUJCfJsyw2vbxmLfDhsoQ/miv/paANWI4Wa968pSEhqyP5B87/0OrVcAnc4hCbIGpmCaLiVgk1TFHEzoNq2MdKWwa7h/ESgbk7jIhYnd2xA0d8rrQtW3bscNj2q5PXLrJZfZ/7pV/YUGbMgSdIW4b8I3pXKf5hAscC2N9n4YJ5Mzn30WmWGWge12KWA1OWWLHCSuA5i4NDIkVQmZIzUq0xx8b+BRbX0+DN7lWms0JP+zAmUPtizFKr04mZWH7+Hu6V2gL32oJAsCU1KSk1NW3Tlm0AVqlHBSQ34FfVxk+1hVtfePKjH8EBtEkoXhXAlXA/OLbuKA3HovigKhciVEvrxEgF78VYZN7i5cvRVX1L2uhgtliL5i4NDkUdziYzNCQUtEBXwLJ7InVTOucCbJ3MUJNjTT7O11ug2DWzBC0pgTWDFWw7QJqKjQdb0pKwKQHA3E7kkKtOGHoBIFu2X9MbIXHXBfwq8bH39fVXX5R3gVq9Hz90Fm7O2bkTG4jTgUwVJ+ETr1wOVfr4YJVppteU29XKi+zYnbPIPyQkEr0V/mKfRMTSgLnBIVGI7dgzwc0TSOQxCQkhoI0U3rSktC3bdu3chq0Ssnyupri4p7tm1UWW42Tsc5bs4RlPS0iFM8SmbtnAICqRFNtr0nEOHNYXceCiFNGT2gdZvFt4cUfLqwJczKAuOt7HH9wDMIkFmirmxqVUtk4wTsQt5tgFkm6lwpjidYcXBn6z4LPUJrqrhEgwRy4NjaJ6o2JiN2xQWyZCYiITaOWiY+oHeyX27t2JFXRIfn5+DfgammrL92PiRauuxJ/98N79W/B2sEamJmzYlBSVlBSbgKyRsGXTtj27duzaX4N+WEqkZDSA5goFHImtSF999bVXX8ef4p+oh8WM6hhF2J2dvbog45oObiqlCfGzom1CBKZZS0GxAObtNX3O4sXz5iwKCA6JiFH9ZExwZGRobKzijNmAQ0RkVGRSbGjI0sjIgBVAToAP682MO9PTAV3irOns7KH0VrSeGervrCmv2VtTs7/Gmb8zNQEOBWuJhesnJWyKiNyUl7dtW15bW2dXV8/AVWuIR2DdD8heaOaZHyCs5+e79lMxOoiK98kND7ABJUrHzz+fnr45LQEuDK3Erl6+fPVyn4U+/iDWMm/OvEWLMctejJjFgUFMaGjMiijaN0BjoOGkDUmpsbEbImNDI6MCIpPwuf8iNmnbttQ0bP/ZC6veuXe/s6XzzMDA8OjIwJmB4aHh0SvDAwMDrfvLa5zl+fm0h9hNeUW1m9J3xW5raapo7B0ZHRwYHuhp6+0fGBhxcKu30rAoeEt6WsJ6TJ4jokKx/yomKiI5ldUTEnfa5u079+7bzzmTXb0KXfZrvEyrfh4uLDu1EHdYf8CJlz+EG/8FC2SuCdalSxcvDQjlOAiUEVFRAA4NxjmKiopNYtGCsxUbEpVU0ZAOxcOiU/c6S9J3lTd29vW0NHZ09gJzFJTDw1dGR4a/Gh0eHMK9gZ7yvbWNO7fFbNm1Ka38zPBAU9/V/sFr5wcG8caR0dFrA70Do6PDw440DfxUqiJOT9sQhXVg7G7B+j/WFxYtxa5hiH9AcGRCWvrOdKidtv0KnFqil9Yw912R+AfPo9pKQx5O3SQFVwDmc9D0ym3bNq1evmkT8+/iRfMWLfUPJjFC8qbU0BVLQ0JxbiOjokJXpCWFhiRtS4qM2VTbUY549Zd/tauia7Cv6W+bWjv7ent6R0aujEKujAxfERkBD0FGrnbk9Q7lx24uamtp6MUbBnv7wApSvIg3jMAmKMqk0dZt0DrenLphfVREaPAKbrsCtdBCuFEHu5JwPUDyZlyMtYdVjLuQeCd8DE62d0fatoqmvE1QdFFpff2hsqKiY11tu/6q5WQeBrk8e4hojGoxIUm7kiJXhCQkIVpzvh1S+7dJsRVttYe2bcl3djQ0Nfyqq+ejodGhvuErQwNDw8NfXQEvQYdHr31FzGtXR4Zw+Groq6GuK9da8xu7hr/A84Oj10aGr10bBu2fcX6GB/48+n9HR/88es2B5kbmzBv0RRukXxsRGroKf3gFQPBKTp5RHPCDApqXBfBygOQ0dYGD2TWprJr5aX/z6f7e1p3OpoqKtpNdJykfnWxrw1LZtv1dfbuSYv+qoqmpqahoV1LSLlTGeQHBCXl7k1BQJUQm5LWdbNuU1HV1cHBocOj8V1dGhoaoRAAOXhn+fPRzmPGVEaVk3L16DZY9+tVXsGzqGU/jNFCfo/959eoXeAseKf3+Gayjfya6A6Mo8EZZEvowcGjUWAsOCMaAavXqb30LRQIG7UuobqRQqCcAroc9wzA5JHa1S5bo23bu31nb29vb01TU1NXXB9J+I3LP9bC//0xvT09f/+BgV2tX/+DAwODgQP+ZM/3nB5VAmRTAAQ8kgvmFWLO7XFUP9WHs6/LMF1/wLIg4UlPRv7p41+K7eWQlJZhrCkiULPdAzIJI1Iy6f/Hi5StgfXgVCWMTY/+uvQhV21DtVjR1nunv7T3T39fVB76Pzp61iM+KDJ4/399/HlEVfP39iCgj/YhBggjkQUYYu5D3iy+grFFzvA7SzZ7mP6GAsXAiE3VoTC0MyuUrSBCYrGPrZHAA6nukkBDUgiErA/x9lvs89NDykJAViLJ4/lvIdmnpFWeGzvSfgbb6B0YQGvjBB/HoQv+FCwpTsY4rgB3BbwwplYLPdhAFK14oyfrMN4O74evKhwkt4FS1mqqjVopB7ApY6oOYiu1m3G+GUhHZxWfxUv/FISsQYpYGRG7CaDGvaXAEeiMljRMfE3rEIzJeDxj6NDIE4MFh6BawitcSF+//CNL+y67Vww1q7UTdsDZkHYRad6X/Uh9uo1zOoQ3qxOU+8xYvmhuF6igkJKkM8air7wK12d9/4Wz/WXxyfHRojfh83mDhJZtohZJM3BXnyBNWe/DXpFiL2ZGmS8un1FIRFk6g5Jj1G55IhopjMIBEW0pbXoLaAX3AzFnoBnzmzQqJ2LQfsbbt5EcffQS0jy78K9wV9wkvBIbU46if1zEJ77MFJ2POYtQqXo0wC4lc72hIxoln4/4eVh5UNa2/8g67saJQxEeh10iIjYILoxGXLhXRCvOnmRg1+nMSsaul6e2mfzl58T+gwwv9TDyg7YcBw6pBAzceotXaLFf0ewl5BgIiHvAeIVc6pv8qSvNQFxlfmzlL0MI6AsYUf/l0snzH3+MwbMbsWBo1itsI1AerHwoB9UP+rP9nzlw408d/UcimPU21b3cNfnbp7NlLg4CFMQssoAfO958fglHzZxzR/jmiEg9OiJiyArVwLeLr6e2/fw4cHKujqMQiKCaZ65NT01DIspmMQhmbxiIoYHkIFCzE/n4L7+X4LeltRqjBwc8+u2SPShKg4MwIWKLBMbh0bo+8I9p143UFauG/Htot5d9xftmx/Qfbf7CZvFs2I0MlJ6cDOCIWPXkIerTI0BWYwaDOgKJlj7vPwpV5qBO0fHbp4kVRrV0EeAjAY3ntMVhMW5v3eMRG3187cCrGIOtTE5LX79iditQEQ+awgls20LcuXoHGJiQydlMJKc+ePVFaeOLSn0YuUQtDQ59+NnjRKixszIxT4wKPp2G3oGW3bH3/v2+84/+mY0NqctSG2PWxUTt2x6JXQHpF0bxoXshSdDRLN+TtaegavDoyMDg6fPVPf/rTZxcv/ulPg/0jV6+IJf5x8GK/h4b7z164oIHHqpg69zRp49M2D3bD/tqBQ4MjApLYqsUmBaNaTitaiZ3tS2PzUFv8RarzwkhZU//IFZYFKO4gV8+OXEWHoj4mgD0NWrItiA0XH/5Ri9i4ecE9RLm82NOlv3Zgf1yZsQMmjI4Nk4ilRZ2LZi2ak9TWFRy5bdeOkp5+lShHv8QfVAcoHK+O/JFP8HkCo1wWYV8gQUu5ruWuI8N//KM8gbfzF61SyiMoW8g6ht1qHvbMz5552fN1Bxx2T1MewlNkLHfgFDUtD4iNLEKj0z8ydP7CyNXBP0p//X+GP/+cHeW1/7z6xchVPGGZtNUd8A6qyUufXhJgV4QSYCVjDdq98rBKaX06rLrja1O0A/PBhpNNGLgl7d1VVJI3NHhx8OLISD9Lwwufjgzpj/hnCIihWbbXcjQ+7A58cfDTkU8Rpe05VYDRILEHRNp1KVmZr5wEPutRdKBvuLU0fOPW0ONUOdLS9zb2ojfFp5GyR38AW7ErHwjA8pvAVR9wdIQcUmug2tACBQ99qpINkRGqGZjRU0C0jkdGhj4V9QveZyil5Y7+d1127vE5r49+Fb0w/hi5nin8pxbHGRmJuUwNVSvmCmMFPTTlC+oardoX+LCDF5GV3HDPXmS1qLKr0hcshYHtInD5o/3bVUQqQv7D6h/lbI78t27CFqrcue7vWcAYEHFywr/6LI4F/gKKVecEH0QBI4IB2GbOVsNrqya+AMlFnJWLYL0E8IvwboRxEmmbt8yY/zI+ijkT+C9quXXyG7zT0OLoULqEewrvGNghzHzhsQCmhhUv3Fj0QoO25WGjQCQhyzOGYQUig5egaADjHJ1nRDNtghXbcA45xrF8/2sB1f8IeTHnEnGA8XNt0jZTVg3N5csINLB5IOOvGjwwemngz6hho1lXu8usCwuVE/nvAxf/oIj/QGDc4FfOi47dW31Omkf+4z/+/wCTFZ9dAYsxfz50Rv/3MX7QUYkHmOcnYMa9y3hebP+KDl/8zHRPGeIwpGsFX2CdgbNzZfTPSGb/PnDh0h9QccOu6cl8P+MXBqvWf0dNHNHvKtgL4v6YYWmTNu58s774Fl4H7rVrAIaKYcm4cTNoq0XHS/oc4C1XwHuFvyDmhwjcr+yasw1VU6KwGv4jR/0w/uH/c3lg8NIleC5yHcxa/FkCtmdQhPXg/OGtTGnDHMO63vFfCGA384NrAL48/PnQAKuKUdRSVKGWyxBCXzZOTky853MKQ6n46UA/hlns/AmsyyxJbowJnw/jnyAFkVGR8BZaRgRDRrMhqyWB4UH8A/9LDUww6LBe//pmPF+OfgXglu7u1u7hL6m80S+/pJLpv59/LrhDQ5eVxV9WT0LArZHBPDTAUaUSPVE+j9UcvBkf+MoVpuN+WCktnqfkLMxBMhSIlUnr9Q/a9MiwNNcX4OBcWYAC+F+7tdLD0uyX18xdsNiFj7788quvvnLUNTc669o72zs6Ort7Tved6YPgcO7cOXx0yvkBxi4XscKmCqS+GDDAGhs90tCnKD5GsGQAI/8IE5Gz1C2NgDXnxT/QmS99ZmI6qy8ueME/LnyERYp+LKjAW0TDPMs0NMu9bGahp0N8RvkjLVSw9B8kOZgiPqn6vOotGPFgORRfMJGPNXRsHsgvLsbVBriXj20S6tISbBLBPnTsBuJGqJaWFrObsaMd+/7aOjo7tHRBZMUW6wkfSfn10b9i1PXRqVMnT546eaLrFFddTpw4cRJPdOEun4f09vbJST5zBuV729tvN7V1YNFXnlBPn+GPu5yjOvCUHJX8b+ueuaOVdV4yjdKZiAOYZOWegX179+zVy+D6K1RKKisBL5dZcAvFwYP8MdtHZOOMk9tLnNgWV1tbi/0zuPM2hplNb9cfq8ciGhbSSksLC0tzc0tzs7Jyc3NwzC2tglTjZQgHn20dHW0iv3r70KG3m1o61Fq33tKOex988AH28GuRx66H1r1zcu/3PNBILeGZsZ8cR/GePbKzIV+4IFAtbqB0HksOVoIQFwIeNsIdQ7yvtkfVVCrgppaWpoZa3q+orT1UlJeTU5iTlZ0RH78uOjoMV4pji6y3Ny4Z93sA2yixzx+XKmXlFBaWVRw6VIsz1NjQ0NTUcuxtPmhphXd19qjLbsitkG0iaOaxB/vHfX2/dxOb6s9Dzjn27+Purd17sM4ryPr6GXMdDS6Mg0oBrRR78CAvg8QlJk5s/8L2qJqa6lps6oUhdnd1tDYBeW9ZBVizsrZuTMxIjA7yvneGiLc3LtfxxWVK4UFh0bjQMgMXpOGsFBaVHIJtQKobYRe1tW9jDzgcp7W9u1NfaaTJDLTRtzkabXdCu+d+f/r9Hv2Exa2J8Sp5zznMJr3Kg9QnVYsfYQcrbg8S2CUHjabr6vQFvtzlCQWLhrGzBtcRvpSTk5ORnQgJD/T2DfSdPx/E02bMmD/f19c3LCiIl6NtzC0oKCwE8d9WkBgbobHdncD4p1qh4w5GUUi3u3LHPDr9gb46+OOP/+3y5X87Z2n3448/lvuezg0f5kYOXAoFuyZr/kFnZX5+SR2BaeAleIkiGxkPI4SJMcs3quCJmkpsaaU9NzXAi50V5WXVpYU5ObnZGVWZcXHRYb7ewMS1WMLq7esbHh4enZiZnZ1dUFAqUl16iAI/qKhpwGy/6W2cO2qYvObKlHGgLZMG2Mc0a819+n3t8Z6wtGcxaTjwnvy6OuxfAx93sPAysLqWdsBgD59cLwQjrsFXxTRgp3Xl4SOHK/GNBHWHGyrxPkDjhvsAaxtqxH9rD4EX9gz3TYxLjPP2DYeCKYEp4aQODAMvjB2XG2ZkIZzVg7a6vqm+Wn4ZMayVuIhjkieVvG8gLEpbGHOLaBr+NJQrGh4Tu2HSxZUlEqUkXgGWnLxCqBGBpAFmi7gkmxnxkrrGU+1ZbT588CBOQUMLshbc2UlFN9VWFOW9VFqalZGbszE3MyP7wIGUlJRw38A4/PgGBuLWOzyaF1hGr4tXwIXV1HJ9fXU1Y/s/IdMhaDFuQ6hhK1h3u0UqO6U9ZBvg07//PSL2+MD7iisBmr9PuSqUB7U5hZrRqbKyEcBUpexH1lt0DztxgRgvEwMp2Buc5QBuqK2p+NkvjlWIpRbkZmQkZiYGBYZ7zw+Mg137hoeFhc8PnO8dGJSSmR2fkZuRzZgFFdfXH1OiclMTkzuzu/B+oK+v0pnIM1R7pic78Pi8CFosK3hdAD47LBVXopeUy4ZkAlPZkn7grFAw9yKzDuFJgRM7efnjkZaWZnw1Q0NTW1dXW21RXjUgSpGSsjPgrHFxYSkpCFze3nHe86FlKDwuMTMzMzG7CkELqq2GhpmSqV9kZOgWfxGrJGIJsJu42e84ydgAq9A1jkGfPw8flrJiH/EaGiqxKxX797BNU12D73QW80au7QTvEbiy83BDM3QL7cLEcVddgYAgXVHxM3xmRK2crNycjMR4P34pDQI0eH19Z+BPYHggw3RYYiIyNDVcimv+tYbbRMP/0tnZZWo3Rfw/AB6X97yDyqo7UudETjkIAhBzu3FJOWsr7k8tASrKi7pftx+HRR+urEWwovP+FldRwCKcFU6EM9ScdOJf/Gz/LkStwsLc3Ox1SMJ+APX2nT/DNzww0HsGjNs70NvbLygxsSA7Y2t2ThZsobQMPxWHKip+BV54bxu0S0V3/FaCVs8HuBF7Fl3TpPUpGPcIDeN5N/1qPZ/nkWHaIZUUwk4dMOnGkn8BakJ0o0SuujoGbxg1HJbvgjWrq9SPwMTxBlg5q6zq2vp6cBQibGXHR4eFJ4bN90VK8g4MnOEbBwf2jguLTkyMjs7ILS2oKhAHrmaUNkat7VpHrQ5qWOK04bwFkzaJ2F2/LDmE97yDe8hRb6gojZ1mJdiayi3Wsj0X8M11CFoAZpw6cqSl3Xg8Xb65QeUomIOzxMkwXUunhBcX5OYmZieGBXqLehGnM+MyUYHMCAz384uGRWdszICScyTAceuaDVmSEtSLHwK7Mf53gaXG0sByPQRqaRZXJagx9jsbasp5N3+/04kNudiZXFxewxwMBcsOexzQN3W041SI38ME6mrKGypqGyuKyvLKELUyMnI3xieGBUG3LCt9A+fPmDZtflyKr+9837jExBSoPwydRBaAC6nfpmP1hyRu/RMtuqMTbRerLPSrMFCJzLgc1pjyeJ2Deo01iBQhSpQxk9TAst91HCw+iOLJyQ8vgsvOoURsTEWsQvSqRG1dgifl8ntm3BZpE48fxyXIHYhYRxpg2C0drKOh3tpfoNDKytm4ZiNKi+gwpN5wmDT/hgMd1QdSMmJWdPbRo0ercnPow4XoqyqwS6+CJSaIuwDaJZFLhWkt44TkcXKSBiaqAZZO0tg3TZotbgvzq1P1By3NDbj2vMHZgDgk7snCAxd3qeISeLhtRlNMB+Y39eH8NLS0t7Y0tdSWs1JCoVVamJFbkJgYFpaZmZIZDd+d4R0dGBgYFgjmuDA8V3W0oKAgO6e0/ujRE/Unz/Z3nUCDjKzW1vpPaEMkLbGcFmB68C3Qav1KAS14p09bqsUQQw8z0BM7VAV1+PDxZsBAfUyyTqSd8po67DZHvcnspFiZpZGWKgF8vJnfQECfRhSTzNzUUVtU2wQXVh6cnZ17ALl3frjvDF5kiOQEbARpWDmah/iMjfjWkizUoFtzCotKDyE9MQA0NjWi0aQLtxtgtsW3BCz2bKpJqbM0sDT+mNvIGADAEnCpLqQa3qisW1PD73uCH1O7ChgBGp1SHd4Ciz5S13y8HaenvQO3Lah7O5o6Git+UVtUBIsurYLBolsK9A2Pi0sJhCnP9/MNjA4P9w6MjoNro2GKz5DmgYUlslgZAnxTvQA3qJhlB74lXuXARr0ANlYMc2bEMlaNwgPX+LDb12ONfa9Aq7zqvhbVUwN+oFLmZERstg51RzjyQQFSqfriugYMQaR/qObMo2J/XhmAC7Lj41MSs1MC41LiwsLRI2Vmh/uFB4Z5B4aHBQZ5hxXkJuauk344JweJrBpfO9TUCYuGTbf8FqVHZ0d7u8nDpti6bv61Ggb3ftDUWX0a2MrDUmlV1qEXoCA4C11JiSgaps1rSKDxSsQrpGzkbCZeEYna8h05sGrA1qB3gIa35uSgkEKDEA6doqxkJzxtGq6evQsuzEyMfJWBajojoxABbivtGcBt0i01Yhc4IlanSkzj1JZjvdmEZtP/2oKVcWL68DmZcdGH0eygdkLVAVA0ECib8PGRZ5BvnHWtzZU18r0KdbTqBpgxbJim3Nzc3dF+HJ7MPMxUXdNSUdtUsb+sOicj4wG/+PjoIAStQERn5qVp07zDUqLROsyHYUcHhWXmblyTHb9uKyYjiHCFpWVlyErH2o4xL3EuqALXLfGKKeucdJ12wT0vOWCdYqsIRfBi6kz1v9Ag0jE9XF3ihszEk3AYrMeRg42aGbFbGtBr7M1nkD5UVpqF76ZggM5k1wCBhjHfQesgbTEmAn7zo8MysquOVpWWolE6wb/V9SfYOuCHIzzBbUfZIdn0ZiH6YxWf3HoFmw/bcZmTHQy9knLFaC1xQuuqMWajhFaCFRV/mllztRyHlnkS2tsZ4ivrGls6W9u6jhUV1WMmWYpK+t7EuDB2C94zfKO9p+ELHGZMwzAANWZgWHTm0QOnjh49dTQro7Qa8y8E6rw8JGLMijjfEWtWnf/NWHWBMRZ4/L5BzbSYgNEs7UYhfZDDHDFnHNkviQBaNUuYCbCPhPHDGo4foX03o9egTQC4Jn9vEUY1TfXUHEJ0bmZieDjrZ+n/MeaZMW0+iktfdIyJ2dEHkIYz1q3LQLVVWHqMpYc0iE24BBojrVY93vkAA6ubJiVtyON2gxa4HvBwxCMzHQIiJrGcxpVeaInl4kV2xnRS9A/w0xrEJ9RfTF7MQ6gsZXQJYrxcU1HkrK2ordi2+skns7auyShYh9YwDHUW53e+0XEpmXFoDNkqZmYeQB8VvTE3G1E6K4uFForR6mOc8TRhPIaCR7Qss50P8B0rplCUsMtJhowzdEt0vb7XrmIFK9UHKy0WS/wyKnR4zMLFlTWNzfxGELlGFffpvByASPcgRq9iNDN2A5R8pJ0fqaejtrWpKK+svqk0a2NOKeYZ+N6ouOwDmXGBKSkos+JSDmSmpKCgPICxQHRYGPJwbkFp1pMIXLzqBdEddUcT5jtwYsuk3RMwVWih2oHHsV/bU1aRpYkdTEVcUniF7S/aJl7Lx6JjP7/SCYJ6UzrFCsRrxjT9zWUt4EfEZnUJBWO8U40PXA1frC0t3bout2DdyqAgP3wNSSAG8KiufH2DcDMfSvbGnaCw7I2rN+YUlB49cepfT508dfbiZ3/qxbpLV0dHV3cPLhIx/e+4R2rVlXxMvnU/ugK2XGAhS2SK2MFBO78YVTqfluPNtG5evMighRKagioTIZvlBVWLaovUaB1YSjN4l5dUwh7zdhVV5L2Ul1WYk5sbH5ZYVXUgJcjbjz0h0tIMNBAI1tFBQd5Bfhh2wcnNpBY+3IVQXY+JR2tbTy+WlnoI7CFqKKdsWTR9Y726XjUGrag1MCAPSjpmpSyUOmIxgvFEwNhxAtD11sgoS5WVR+jax9EcOp1wc4RZtDvV9cjDBbnrUC8nZqZwpIN8BBUzGQN5Gpk5tgyKD1qzMZcjbPwtK8orqq9FVqptpEkjJ6mFJZtJu+ZT/1VgV/WhgfG5aakNzZKI6pppwJha4lBejBLL6Wzu7GzGSAPlB6Y4rawG8F//AHNjfCRwo0yBfTS1bUMSbSp6KQuTjLDs3Gg/b+Qgtv9xcXEYXWZmhs8PwhQTagavXxD6w6qM0owMRPTC6sKi+op6uATSeUObRKzO7l5VUn74volZur2VNbPxxnNGp57RWhm0mLQMARwy1IE/thxB+EURAlZqsmZfiUy7GpCKmjs6WxCziOwspz0jHzUwjsKHG9q5ytIIWtTC9UWFhQVBmZlhGFuFoe4IPBAXjrk02kGmXcwrEzMPVB04cCA7MR6lR3ZB9saMwnqqGENaWTvt6T0jK4e9p8/0KaoxDb2r/bvOYNLD1m3AsOiByw7MpUnqZAWFUtHZ2iKjdoxsUDCqL+5CocGhAImRingWOMuS0R37Ky6xICOh6KgvO1RalXu0KhNmm4nWH86bwuoKo51sgLL6Olp1oOoU5eip3I0FBUdPHTuG1ZbqtjbwcqFYFuRxzVrveGuiN9Ls9XzaAJ/TDaJDl8ZCJKSsLFBXtzTW1DS2NDLzIqY1chyL/AsR+MNO0B5nvdXYyFW02tqTbce6UCIWZmOUUZXpHZQZzlWHwOwDGOlkh6NL8p6BiBUuPhzk90D0QnRUGQ9gOI2F5EOF9VxRa+ISOxXM6lKZMutkWRUUS/4fA1PD0KWM8AQVOQgTrfLKhpYOBC9nc3sr41UzgkhHJ/ZDYKqDNSfdPstXELa01HHFgXKoouglGGjGOqwchfkFFSDfIm6hyogOCo/OPpAdGI3aer53IgqtggPsmBMTM4IwnS7FeLqsOq8ea66yiQB7AriCbZvXScWhfzwUefNzYDSs5gCYadVKYj3ScBgTDck6qBObsa50BD6KvrQVY/fWjm4kijN9Pe1waDxHo0dygsoBDLW0dfV0dZXUVuTt2pWzMf6BjblrHgiK37oOPaD3jLDAMD+stMyY4cUF4vnhmeHeSNBBfuiLE2UOUIQxAMbx1QhaLWyVWE7DjhgdrVCtaVWtpZFv8fiJTsMDn6j9IpcdHccZqY53qIqCi7Oou1rhq7RnxOo6zicbW7vbW1FdYtpViTPQ8cG586JuNo4NtQ2tnW1N1SfaurCZ41jO0VMnUE8fpZdCjUcLDmQm+mEakIiKOjwlDmVWRiJWWw5A5xkFR6uqCg+htsT60smuti5clsp9Irw8VXVK58wUUpBvHJ71iZCNHJ988ol6+An31elWGFuSCCzLCRhPQl2HOd1CvSxTLA5fm7vPnDvdA4eCatEZ9Z67fPk8MNkPH5fFtfb2zlY0hw2NFXlNx4oOoc9Dy1dfWliVlYG5c1VGxjr4rd/8+UFB4YlxKSkYY94b5IcJfWLYuuyjD+RWYa6VtZUrakVFXawtsf7IzqG3DzNRrrLQg3Ve4liOg5ub+bHaujKggF24AwhayqR///u+07/FF6C2IzU1QNNQXEc348Ppc93tHTKglAUewPKfOI2BooyykD46O3tP98K1EVt7O/n10FhFy6nP2bpxzZO5pRvj4/28sRgcl3kgPHAammJYtN+9C6PXPRC0DhtbskurCgsKc+M3rvPfWl3GNguJjVdX45/FyLLn9Lm+08hOvb2duntQW1OuK1qj584x20ratbcMGHWoBgLA3NWA2TQmAMc/6D59+fNP+ro5iaxsroPBtiN6ocJg4cMeoQcvtXPixPKjt7uTQbsTKseqbm15UZlsz6kqLD1ayE0rGZnZLDe8vcPC0TeEYT0cX0UblFG1zm8NBnhYKsXSUn3p0SfXVWMDU9uv2Pw3YebR2NIBUEyizkDN3DN2GqD8uTGwdSZU1ewSs2FJ2/VlpCUskmE4d7y5/bfHj2OUwdXB9uMtdZxtIAbzfxMj87ojSNOoTBpaYdPIT8RE8GpEAEfp0Vhbi+lO4dasjHVPFqIjrjq6EfknLIz9Aia1GFweQGSmX586dQJbmDKeXL2xsOvUicKsevjwoYqyWpSnCNMnu3p6z+FiYpiT3qZl7cm6oYJdmtfAFrUycWDrowNroJRmbGY4/lt4DBMtFhMrVV6WhXAsEhKb29PwEh/ze9rg7vDs1vaWRn5xGTp/TC/wZfeFOVufzCgogIYT41BrcVdLeFjmAdRahD31hxOn/sCyoxQ3Z9EonTpxFlvz+nE5+fnzfX3959VOQJgyj4AVxULLN+oVJEThRgQmrdoEE6tce9LUxjRMmlFiHT/+2+4OKBhaRG2NZ9phqVK/m40lzawyjrd3QK88F2yccC5au1FXckbRWvtPtSfq608A4Gw9Q1ZiPDbxhGdCsVVV2PtwICUxAyXWiaNHS0txm0XgU8cKj57IOtbVBc4z0GpfD2osJEOsKfUwbsj+PMaPG+IyNkk81sAAvSzx2E2x1hOYWiKnVh58FU58EBrswLqv9BJ4jKKjo7sJpwHoHcdBzgl5N4NWS3MjsxjG5p3dSCZ9uOq/p7/2GMZTVbXVhaVVpVhZCEvJzYyePyOc/W/4/Bl+M+7l/8Zkzeo1G0u3bl1TuAurDuv8MwrLuo4dehtdP054SwsiFoIDNHumD0dxYfQQwuuZd2ERIub5TzQS9hpyGyx3+3LTL/Z/q4swzOv/D3mjupvCJFLWAAAAAElFTkSuQmCC"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-05-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-05-b-isvalid.html
new file mode 100644
index 0000000000..6d810c721f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-05-b-isvalid.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-05-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-05-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-05-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <image id="imageSVG" x="0" y="0" width="240" height="150" xlink:href="../images/rects.svg"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-06-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-06-t-isvalid.html
new file mode 100644
index 0000000000..0d7a38a429
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-06-t-isvalid.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-06-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-06-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="9">
+ <desc>Example PreserveAspectRatio - demonstrate available options</desc>
+ <text x="10" y="30">SVG to fit</text>
+ <g transform="translate(20,40)">
+ <image xlink:href="../images/smiley.png" width="50" height="50"/>
+ </g>
+ <text x="10" y="110">Viewport 1</text>
+ <g transform="translate(10,120)">
+ <rect x=".5" y=".5" width="49" height="29" fill="none" stroke="blue"/>
+ </g>
+ <text x="10" y="180">Viewport 2</text>
+ <g transform="translate(20,190)">
+ <rect x=".5" y=".5" width="29" height="59" fill="none" stroke="blue"/>
+ </g>
+ <g id="meet-group-1" transform="translate(100, 50)">
+ <text x="0" y="-20">---------- meet ----------</text>
+ <g transform="translate(30,0)">
+ <text y="-5">xMid*</text>
+ <rect x=".5" y=".5" width="49" height="29" fill="none" stroke="blue"/>
+ <image xlink:href="../images/smiley.png" preserveAspectRatio="xMidYMid meet" width="50" height="30"/>
+ </g>
+ </g>
+ <g id="meet-group-2" transform="translate(230, 50)">
+ <text x="0" y="-20">---------- meet ----------</text>
+ <g transform="translate(30, 0)">
+ <text y="-5">*YMid</text>
+ <rect x=".5" y=".5" width="29" height="59" fill="none" stroke="blue"/>
+ <image xlink:href="../images/smiley.png" preserveAspectRatio="xMidYMid meet" width="30" height="60"/>
+ </g>
+ </g>
+ <g id="meet-group-3" transform="translate(350, 50)">
+ <text x="0" y="-20">---------- meet ----------</text>
+ <g transform="translate(30, 0)">
+ <text y="-5">*none</text>
+ <rect x=".5" y=".5" width="29" height="59" fill="none" stroke="blue"/>
+ <image xlink:href="../images/smiley.png" preserveAspectRatio="none" width="30" height="60"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-07-t-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-07-t-novalid.html
new file mode 100644
index 0000000000..abb9fb4229
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-07-t-novalid.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-07-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-07-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(10,0)">
+ <!-- Default, base is the document URI -->
+ <g transform="translate(40, 100)">
+ <text x="50" y="-30" text-anchor="middle" font-size="24">no</text>
+ <text x="50" text-anchor="middle" font-size="24">xml:base</text>
+ <image xlink:href="../images/smiley.png" x="0" y="20" width="100" height="100"/>
+ </g>
+
+ <!-- xml:base on image -->
+ <g transform="translate(180, 100)">
+ <text x="50" y="-30" text-anchor="middle" font-size="24">xml:base</text>
+ <text x="50" text-anchor="middle" font-size="24">on image</text>
+ <image xml:base="../images/" xlink:href="smiley.png" x="0" y="20" width="100" height="100"/>
+ </g>
+
+ <!-- xml:base on group -->
+ <g transform="translate(320, 100)" xml:base="../images/">
+ <text x="50" y="-30" text-anchor="middle" font-size="24">xml:base</text>
+ <text x="50" text-anchor="middle" font-size="24">on parent</text>
+ <image xlink:href="smiley.png" x="0" y="20" width="100" height="100"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-08-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-08-t-isvalid.html
new file mode 100644
index 0000000000..bd31719493
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-08-t-isvalid.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-08-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-08-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-08-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="0" y="50" width="160" height="170" fill="#000"/>
+ <rect x="160" y="50" width="160" height="170" fill="#920"/>
+ <rect x="320" y="50" width="160" height="170" fill="#029"/>
+ <image xlink:href="../images/rgbalpha.png" x="0" y="60" width="162" height="150"/>
+ <image xlink:href="../images/rgbalpha.png" x="160" y="60" width="162" height="150"/>
+ <image xlink:href="../images/rgbalpha.png" x="320" y="60" width="162" height="150"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-09-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-09-t-isvalid.html
new file mode 100644
index 0000000000..61b5717c9f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-09-t-isvalid.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-09-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-09-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-09-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="150" y="50" width="162" height="162" fill="#af4"/>
+ <rect x="310" y="50" width="162" height="162" fill="#fa6"/>
+ <image xlink:href="../images/stefan_252_tRNS_opti.png" x="10" y="60" width="162" height="150"/>
+ <image xlink:href="../images/stefan_252_tRNS_opti.png" x="160" y="60" width="162" height="150"/>
+ <image xlink:href="../images/stefan_252_tRNS_opti.png" x="320" y="60" width="162" height="150"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-10-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-10-t-isvalid.html
new file mode 100644
index 0000000000..59d76cead8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-10-t-isvalid.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-10-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-10-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-10-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <rect x="0" y="50" width="160" height="170" fill="#000"/>
+ <rect x="160" y="50" width="160" height="170" fill="#920"/>
+ <rect x="320" y="50" width="160" height="170" fill="#029"/>
+ <image xlink:href="../images/galpha.png" x="0" y="60" width="162" height="150"/>
+ <image xlink:href="../images/galpha.png" x="160" y="60" width="162" height="150"/>
+ <image xlink:href="../images/galpha.png" x="320" y="60" width="162" height="150"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-11-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-11-b-isvalid.html
new file mode 100644
index 0000000000..baba6dface
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-11-b-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-11-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-11-b-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-11-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script type="application/ecmascript">
+ function makeGreen(evt, expectedId)
+ {
+ if (evt.target.id == expectedId)
+ {
+ evt.target.href.baseVal = "../images/green1x1.png";
+ }
+ }
+ </script>
+ <image id="imageSVG1" x="180" y="50" width="120" height="120" xlink:href="../images/struct-image-11-b-1.svg" onclick="makeGreen(evt, 'imageSVG1')"/>
+ <image id="imageSVG2" x="60" y="170" width="120" height="120" xlink:href="../images/struct-image-11-b-2.svg" onclick="makeGreen(evt, 'imageSVG2')"/>
+ <image id="imageSVG3" x="300" y="170" width="120" height="120" xlink:href="../images/blue1x1.png" onclick="makeGreen(evt, 'imageSVG3')"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-12-b-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-12-b-novalid.html
new file mode 100644
index 0000000000..c9201db7ce
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-12-b-novalid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-12-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-12-b-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-12-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-root-circle" viewBox="0 0 450 450" width="450" height="450">
+ <circle cx="225" cy="225" r="200" fill="blue" fill-opacity="0.2"/>
+ </svg>
+ </defs>
+
+ <!-- The following image leads to a cycle, what should be displayed here? -->
+ <image id="imageSVG" x="60" y="50" width="240" height="240" xlink:href="../images/struct-image-12-b-cycle.svg"/>
+
+ <!-- The following image should not be shown because it leads to a cycle -->
+ <image id="imageSVG" x="60" y="50" width="240" height="240" xlink:href="struct-image-12-b.svg"/>
+
+ <!-- The following image should not be shown because image elements can't reference elements in an svg file -->
+ <image id="imageSVG" x="60" y="50" width="240" height="240" xlink:href="#svg-root-circle"/>
+
+ <rect x="300" y="170" width="120" height="120" fill="blue"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-13-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-13-f-isvalid.html
new file mode 100644
index 0000000000..fb87740daf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-13-f-isvalid.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-13-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-13-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-13-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <!-- something to show transparency -->
+ <rect x="16" y="32" width="320" height="8" fill="#3C3"/>
+ <rect x="16" y="48" width="320" height="8" fill="#9F9"/>
+
+ <!-- 1 bit black and white -->
+ <image xlink:href="../images/PngSuite/basn0g01.png" x="16" y="32" width="32" height="32"/>
+
+ <!-- 2 bit greyscale -->
+ <image xlink:href="../images/PngSuite/basn0g02.png" x="64" y="32" width="32" height="32"/>
+
+ <!-- 4 bit greyscale -->
+ <image xlink:href="../images/PngSuite/basn0g04.png" x="112" y="32" width="32" height="32"/>
+
+ <!-- 8 bit greyscale -->
+ <image xlink:href="../images/PngSuite/basn0g08.png" x="160" y="32" width="32" height="32"/>
+
+ <!-- 16 bit greyscale -->
+ <image xlink:href="../images/PngSuite/basn0g16.png" x="208" y="32" width="32" height="32"/>
+
+ <!-- 8 bit greyscale plus alpha -->
+ <image xlink:href="../images/PngSuite/basn4a08.png" x="256" y="32" width="32" height="32"/>
+
+ <!-- 16 bit greyscale plus alpha -->
+ <image xlink:href="../images/PngSuite/basn4a16.png" x="304" y="32" width="32" height="32"/>
+
+ <text x="16" y="100" font-size="16" fill="#3C3">Greyscale, various bit depths, two with alpha</text>
+
+ <!-- something to show transparency -->
+ <rect x="16" y="132" width="368" height="8" fill="#9F9"/>
+ <rect x="16" y="148" width="368" height="8" fill="#3C3"/>
+
+ <!-- 8 bits RGB -->
+ <image xlink:href="../images/PngSuite/basn2c08.png" x="16" y="132" width="32" height="32"/>
+
+ <!-- 16 bits RGB -->
+ <image xlink:href="../images/PngSuite/basn2c16.png" x="64" y="132" width="32" height="32"/>
+
+ <!-- 1 bit indexed -->
+ <image xlink:href="../images/PngSuite/basn3p01.png" x="112" y="132" width="32" height="32"/>
+
+ <!-- 2 bit indexed -->
+ <image xlink:href="../images/PngSuite/basn3p02.png" x="160" y="132" width="32" height="32"/>
+
+ <!-- 4 bit indexed -->
+ <image xlink:href="../images/PngSuite/basn3p04.png" x="208" y="132" width="32" height="32"/>
+
+ <!-- 8 bit indexed -->
+ <image xlink:href="../images/PngSuite/basn3p08.png" x="256" y="132" width="32" height="32"/>
+
+ <!-- 8 bits RGB plus alpha -->
+ <image xlink:href="../images/PngSuite/basn6a08.png" x="304" y="132" width="32" height="32"/>
+
+ <!-- 16 bits RGB plus alpha -->
+ <image xlink:href="../images/PngSuite/basn6a16.png" x="352" y="132" width="32" height="32"/>
+
+ <text x="16" y="200" font-size="16" fill="#3C3">Truecolor and indexed, various bit depths, two with alpha</text>
+
+ <text x="16" y="260" font-size="24" fill="#3C3">Non-interlaced images</text>
+
+ <!--
+ <image xlink:href="../images/PngSuite/" x="" y="" width="32" height="32"/>
+ -->
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-14-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-14-f-isvalid.html
new file mode 100644
index 0000000000..ee6ef116c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-14-f-isvalid.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-14-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-14-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-14-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <!-- something to show transparency -->
+ <rect x="16" y="32" width="320" height="8" fill="#3C3"/>
+ <rect x="16" y="48" width="320" height="8" fill="#9F9"/>
+
+ <!-- 1 bit black and white -->
+ <image xlink:href="../images/PngSuite/basi0g01.png" x="16" y="32" width="32" height="32"/>
+
+ <!-- 2 bit greyscale -->
+ <image xlink:href="../images/PngSuite/basi0g02.png" x="64" y="32" width="32" height="32"/>
+
+ <!-- 4 bit greyscale -->
+ <image xlink:href="../images/PngSuite/basi0g04.png" x="112" y="32" width="32" height="32"/>
+
+ <!-- 8 bit greyscale -->
+ <image xlink:href="../images/PngSuite/basi0g08.png" x="160" y="32" width="32" height="32"/>
+
+ <!-- 16 bit greyscale -->
+ <image xlink:href="../images/PngSuite/basi0g16.png" x="208" y="32" width="32" height="32"/>
+
+ <!-- 8 bit greyscale plus alpha -->
+ <image xlink:href="../images/PngSuite/basi4a08.png" x="256" y="32" width="32" height="32"/>
+
+ <!-- 16 bit greyscale plus alpha -->
+ <image xlink:href="../images/PngSuite/basi4a16.png" x="304" y="32" width="32" height="32"/>
+
+ <text x="16" y="100" font-size="16" fill="#3C3">Greyscale, various bit depths, two with alpha</text>
+
+ <!-- something to show transparency -->
+ <rect x="16" y="132" width="368" height="8" fill="#9F9"/>
+ <rect x="16" y="148" width="368" height="8" fill="#3C3"/>
+
+ <!-- 8 bits RGB -->
+ <image xlink:href="../images/PngSuite/basi2c08.png" x="16" y="132" width="32" height="32"/>
+
+ <!-- 16 bits RGB -->
+ <image xlink:href="../images/PngSuite/basi2c16.png" x="64" y="132" width="32" height="32"/>
+
+ <!-- 1 bit indexed -->
+ <image xlink:href="../images/PngSuite/basi3p01.png" x="112" y="132" width="32" height="32"/>
+
+ <!-- 2 bit indexed -->
+ <image xlink:href="../images/PngSuite/basi3p02.png" x="160" y="132" width="32" height="32"/>
+
+ <!-- 4 bit indexed -->
+ <image xlink:href="../images/PngSuite/basi3p04.png" x="208" y="132" width="32" height="32"/>
+
+ <!-- 8 bit indexed -->
+ <image xlink:href="../images/PngSuite/basi3p08.png" x="256" y="132" width="32" height="32"/>
+
+ <!-- 8 bits RGB plus alpha -->
+ <image xlink:href="../images/PngSuite/basi6a08.png" x="304" y="132" width="32" height="32"/>
+
+ <!-- 16 bits RGB plus alpha -->
+ <image xlink:href="../images/PngSuite/basi6a16.png" x="352" y="132" width="32" height="32"/>
+
+ <text x="16" y="200" font-size="16" fill="#3C3">Truecolor and indexed, various bit depths, two with alpha</text>
+
+ <text x="16" y="260" font-size="24" fill="#3C3">Interlaced images</text>
+
+ <!--
+ <image xlink:href="../images/PngSuite/" x="" y="" width="32" height="32"/>
+ -->
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-15-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-15-f-isvalid.html
new file mode 100644
index 0000000000..29b21469db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-15-f-isvalid.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-15-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-15-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-15-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <!-- something to show transparency -->
+ <rect x="16" y="32" width="368" height="8" fill="#3C3"/>
+ <rect x="16" y="48" width="368" height="8" fill="#9F9"/>
+
+ <!-- 8 bit grayscale, alpha, no background chunk, interlaced -->
+ <image xlink:href="../images/PngSuite/bgai4a08.png" x="16" y="32" width="32" height="32"/>
+
+ <!-- 16 bit grayscale, alpha, no background chunk, interlaced -->
+ <image xlink:href="../images/PngSuite/bgai4a16.png" x="64" y="32" width="32" height="32"/>
+
+ <!-- 8 bits rgb color, alpha, no background chunk -->
+ <image xlink:href="../images/PngSuite/bgan6a08.png" x="112" y="32" width="32" height="32"/>
+
+ <!-- 16 bits rgb color, alpha, no background chunk -->
+ <image xlink:href="../images/PngSuite/bgan6a16.png" x="160" y="32" width="32" height="32"/>
+
+ <!-- 8 bit grayscale, alpha, black background chunk -->
+ <image xlink:href="../images/PngSuite/bgbn4a08.png" x="208" y="32" width="32" height="32"/>
+
+ <!-- 16 bit grayscale, alpha, gray background chunk -->
+ <image xlink:href="../images/PngSuite/bggn4a16.png" x="256" y="32" width="32" height="32"/>
+
+ <!-- 8 bits rgb color, alpha, white background chunk -->
+ <image xlink:href="../images/PngSuite/bgwn6a08.png" x="304" y="32" width="32" height="32"/>
+
+ <!-- 16 bits rgb color, alpha, yellow background chunk -->
+ <image xlink:href="../images/PngSuite/bgyn6a16.png" x="352" y="32" width="32" height="32"/>
+
+ <text x="16" y="100" font-size="16" fill="#3C3">Background color, with alpha</text>
+
+ <!-- something to show transparency -->
+ <rect x="16" y="132" width="464" height="8" fill="#9F9"/>
+ <rect x="16" y="148" width="464" height="8" fill="#3C3"/>
+
+ <!-- transparent, black background chunk -->
+ <image xlink:href="../images/PngSuite/tbbn1g04.png" x="16" y="132" width="32" height="32"/>
+
+ <!-- transparent, blue background chunk -->
+ <image xlink:href="../images/PngSuite/tbbn2c16.png" x="64" y="132" width="32" height="32"/>
+
+ <!-- transparent, black background chunk -->
+ <image xlink:href="../images/PngSuite/tbbn3p08.png" x="112" y="132" width="32" height="32"/>
+
+ <!-- transparent, green background chunk -->
+ <image xlink:href="../images/PngSuite/tbgn2c16.png" x="160" y="132" width="32" height="32"/>
+
+ <!-- transparent, light-gray background chunk -->
+ <image xlink:href="../images/PngSuite/tbgn3p08.png" x="208" y="132" width="32" height="32"/>
+
+ <!-- transparent, red background chunk -->
+ <image xlink:href="../images/PngSuite/tbrn2c08.png" x="256" y="132" width="32" height="32"/>
+
+ <!-- transparent, white background chunk -->
+ <image xlink:href="../images/PngSuite/tbwn1g16.png" x="304" y="132" width="32" height="32"/>
+
+ <!-- transparent, white background chunk -->
+ <image xlink:href="../images/PngSuite/tbwn3p08.png" x="352" y="132" width="32" height="32"/>
+
+ <!-- transparent, yellow background chunk -->
+ <image xlink:href="../images/PngSuite/tbyn3p08.png" x="400" y="132" width="32" height="32"/>
+
+ <!-- transparent, but no background chunk -->
+ <image xlink:href="../images/PngSuite/tp1n3p08.png" x="448" y="132" width="32" height="32"/>
+
+ <text x="16" y="200" font-size="16" fill="#3C3">Background color, with transparency</text>
+
+ <text x="16" y="260" font-size="24" fill="#3C3">Handling bKGd and tRNs</text>
+
+ <!--
+ <image xlink:href="../images/PngSuite/" x="" y="" width="32" height="32"/>
+ -->
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-16-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-16-f-isvalid.html
new file mode 100644
index 0000000000..f80990ee5b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-16-f-isvalid.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-16-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-16-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-16-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect width="100%" height="100%" fill="red"/>
+ <image xlink:href="../images/level1.svg" width="100%" height="100%"/>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-17-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-17-b-isvalid.html
new file mode 100644
index 0000000000..cd70a27a11
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-17-b-isvalid.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-17-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-17-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-17-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="10" y="24" font-size="16" >Test that SVG images in &lt;image> are not scripted or animated</text>
+ <image xlink:href="../images/struct-image-17-b-1.svg" x="10" y="50" width="100" height="100"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-18-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-18-f-isvalid.html
new file mode 100644
index 0000000000..8f7d163ce6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-18-f-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-18-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-18-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-18-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(4) translate(-10 -20)">
+ <path d="M55 75A 20 20 0 0 1 75 55l0 20" fill="red"/>
+ <image xlink:href="../images/50x50greencircle.svg" width="25" height="25" x="50" y="50"/>
+ <path d="M55 75A 20 20 0 0 1 75 55l0 20Z" fill="none" stroke="black" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-19-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-19-f-isvalid.html
new file mode 100644
index 0000000000..c6ff4c82c4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-image-19-f-isvalid.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-image-19-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-image-19-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-image-19-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="scale(4) translate(-25 -25)">
+ <circle cx="62.5" cy="62.5" r="10" fill="red"/>
+ <circle cx="100" cy="75" r="20" fill="red"/>
+ <image xlink:href="../images/50x50-viewbox-greencircle.svg" width="25" height="25" x="50" y="50"/>
+ <image xlink:href="../images/50x50-viewbox-greencircle.svg" width="50" height="50" x="75" y="50"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-svg-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-svg-01-f-isvalid.html
new file mode 100644
index 0000000000..db9226a9db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-svg-01-f-isvalid.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-svg-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-svg-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-svg-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <svg id="testSVG" />
+
+ <text x="20" y="40">Initial value of the 'svg' tag's 'width' attribute: </text>
+ <text x="20" y="60" id="widthResult" />
+
+ <text x="20" y="100">Initial value of the 'svg' tag's 'height' attribute: </text>
+ <text x="20" y="120" id="heightResult" />
+
+ <text x="20" y="160">Initial value of the 'svg' tag's 'x' attribute: </text>
+ <text x="20" y="180" id="xResult" />
+
+ <text x="20" y="220">Initial value of the 'svg' tag's 'y' attribute: </text>
+ <text x="20" y="240" id="yResult" />
+
+ <text id="failText" x="350" y="350" font-size="50" fill="red">FAIL</text>
+
+ <script><![CDATA[
+ try
+ {
+ var testSVG = document.getElementById("testSVG");
+ var pass = true;
+
+ var initialWidth = testSVG.width.baseVal.valueAsString;
+ document.getElementById("widthResult").appendChild(document.createTextNode(initialWidth));
+
+ if("100%" != initialWidth)
+ {
+ pass = false;
+ }
+
+ var initialHeight = testSVG.height.baseVal.valueAsString;
+ document.getElementById("heightResult").appendChild(document.createTextNode(initialHeight));
+
+ if("100%" != initialHeight)
+ {
+ pass = false;
+ }
+
+ var initialX = testSVG.x.baseVal.valueAsString;
+ document.getElementById("xResult").appendChild(document.createTextNode(initialX ));
+
+ if("0" != initialX )
+ {
+ pass = false;
+ }
+
+ var initialY = testSVG.y.baseVal.valueAsString;
+ document.getElementById("yResult").appendChild(document.createTextNode(initialY));
+
+ if("0" != initialY )
+ {
+ pass = false;
+ }
+
+ if(pass)
+ {
+ document.getElementById("failText").setAttribute("display", "none");
+ }
+ }
+ catch(ex)
+ {
+ //alert('ERROR: ' + ex.message);
+ }]]>
+ </script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-svg-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-svg-02-f-isvalid.html
new file mode 100644
index 0000000000..27753f5d35
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-svg-02-f-isvalid.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-svg-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-svg-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-svg-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script type="text/ecmascript" xlink:href="../resources/testharness.js"/>
+
+ <!-- The testroot is here only to get a predictable 480x360 viewport -->
+ <svg id="testroot" width="480" height="360">
+ <svg id="testSVG1" />
+ <svg id="testSVG2" />
+ <svg id="subSVG" width="300" height="175"/>
+ </svg>
+
+ <g id="testoutput"/>
+
+ <!-- Cover the whole testframe with a simple visual result -->
+ <rect id="status" width="100%" height="100%" fill="none"/>
+
+ <script><![CDATA[
+ var passes = 0;
+ var ypos = 50;
+
+ function verify(str, result)
+ {
+ var g = document.createElementNS("http://www.w3.org/2000/svg", "g");
+ var r = document.createElementNS("http://www.w3.org/2000/svg", "rect");
+ var t = document.createElementNS("http://www.w3.org/2000/svg", "text");
+ var tc = document.createTextNode(str);
+ t.appendChild(tc);
+ t.setAttribute("class", "result");
+ t.setAttribute("font-family", "monospace");
+ t.setAttribute("font-size", "9px");
+ t.setAttribute("fill", "black");
+ t.setAttribute("x", "10");
+ t.setAttribute("y", "7");
+ r.setAttribute("y", "1");
+ r.setAttribute("width", "5");
+ r.setAttribute("height", "5");
+ g.setAttribute("class", result ? "passed" : "failed");
+ g.setAttribute("fill", result ? "lime" : "red");
+ g.appendChild(r);
+ g.appendChild(t);
+ g.setAttribute("transform", "translate(10 " + ypos + ")");
+ ypos += 10;
+ document.getElementById("testoutput").appendChild(g);
+
+ if (result)
+ passes++;
+ }
+
+ try
+ {
+ var testSVG = document.getElementById("testSVG1");
+ var subSVG = document.getElementById("subSVG");
+ var status = document.getElementById("status");
+
+ var base = testSVG.width.baseVal;
+
+ verify("value: " + base.value, base.value == 480);
+ test(function() {assert_equals(base.value, 480)}, "Assert that the width baseVal is 100% computed to user units.");
+
+ verify("valueInSpecifiedUnits: " + base.valueInSpecifiedUnits, base.valueInSpecifiedUnits == 100);
+ test(function() {assert_equals(base.value, 100)}, "Assert that the default width baseVal is 100.");
+
+ // set the value in user units and then read it back
+ base.value = 240;
+ verify("value: " + base.value, base.value == 240);
+ test(function() {assert_equals(base.value, 240)}, "Assert that the width baseVal is 240 after setting it.");
+ verify("valueInSpecifiedUnits: " + base.valueInSpecifiedUnits, base.valueInSpecifiedUnits == 50);
+ test(function() {assert_equals(base.valueInSpecifiedUnits, 50)}, "Assert that the value in specified units is now 50.");
+
+ // move the svg to be child of another viewport and read values again
+ subSVG.appendChild(testSVG);
+ verify("value: " + base.value, base.value == 150);
+ test(function() {assert_equals(base.value, 150)}, "Assert that the value changes to 150 after being moved to a new viewport.");
+ verify("valueInSpecifiedUnits: " + base.valueInSpecifiedUnits, base.valueInSpecifiedUnits == 50);
+ test(function() {assert_equals(base.valueInSpecifiedUnits, 50)}, "Assert that the value in specified units is still 50 after being moved to a new viewport.");
+
+ // move an svg that hasn't been modified to another viewport and read values
+ testSVG = document.getElementById("testSVG2");
+ subSVG.appendChild(testSVG);
+ base = testSVG.width.baseVal;
+ verify("value: " + base.value, base.value == 300);
+ test(function() {assert_equals(base.value, 300)}, "Assert that the width baseVal is 300 user units after being moved to a new viewport.");
+ }
+ catch(ex)
+ {
+ }
+
+ status.setAttribute("fill", passes == 7 ? "lime" : "red");
+ test(function() {assert_equals(passes,7)}, "Assert that all subtests passed.");
+ ]]></script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-svg-03-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-svg-03-f-isvalid.html
new file mode 100644
index 0000000000..edb9af23d6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-svg-03-f-isvalid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-svg-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-svg-03-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-svg-03-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect x="0.5" y="0.5" width="99" height="99" fill="red"/>
+ <svg width="100" height="100" viewBox="0 0 50 50">
+ <rect width="50" height="50" fill="lime"/>
+ </svg>
+
+ <g transform="translate(120 0)">
+ <rect x="0.5" y="0.5" width="99" height="99" fill="red"/>
+ <svg width="100" height="100" viewBox="0 0 50 50">
+ <svg width="50" height="50" viewBox="0 0 200 200">
+ <rect width="200" height="200" fill="lime"/>
+ </svg>
+ </svg>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-symbol-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-symbol-01-b-isvalid.html
new file mode 100644
index 0000000000..e52bc5632f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-symbol-01-b-isvalid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-symbol-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-symbol-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-symbol-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <symbol id="imageRef1" viewBox="0 0 1000 1000" preserveAspectRatio="none">
+ <image id="image1" x="0" y="0" width="1000" height="1000" xlink:href="../images/struct-symbol-01.png"/>
+ </symbol>
+ <symbol id="largeRect">
+ <rect x="0" y="0" width="1000" height="1000" fill="red"/>
+ </symbol>
+ <symbol id="drawRects" viewBox="0 0 1000 1000" preserveAspectRatio="none">
+ <rect x="0" y="0" width="500" height="500" fill="yellow"/>
+ <rect x="500" y="0" width="500" height="500" fill="blue"/>
+ <rect x="0" y="500" width="500" height="500" fill="blue"/>
+ <rect x="500" y="500" width="500" height="500" fill="yellow"/>
+ </symbol>
+ <g id="useNdraw">
+ <use id="upperLeft" x="0" y="0" width="240" height="150" xlink:href="#imageRef1"/>
+ <use id="lowerRight" x="240" y="150" width="240" height="150" xlink:href="#drawRects"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-01-t-isvalid.html
new file mode 100644
index 0000000000..da3389e6de
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-01-t-isvalid.html
@@ -0,0 +1,99 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-use-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-use-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-use-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font-face font-family="FreeSerif" unicode-range="U+0020-U+00FF">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/FreeSerifBoldItalic.svg#FreeSerifBoldItalic"/>
+ </font-face-src>
+ </font-face>
+ <g fill="red" stroke="yellow" stroke-width="3">
+ <rect id="usedRect" width="20" height="20"/>
+ <circle id="usedCircle" cx="10" cy="10" r="10"/>
+ <ellipse id="usedEllipse" cx="10" cy="10" rx="10" ry="10"/>
+ <line id="usedLine" x1="0" y1="10" x2="20" y2="10"/>
+ <path id="usedPath" d="M 0 0 L 20 0 L 20 20 L 0 20 Z"/>
+ <polygon id="usedPolygon" points="0,0 20,0 20,20 0,20 0 0"/>
+ <polyline id="usedPolyline" points="0,0 20,0 20,20"/>
+ <g id="usedG">
+ <rect width="10" height="20"/>
+ <rect x="10" width="10" height="20" fill="rgb(0,128,0)"/>
+ </g>
+ <use id="usedUse" xlink:href="#usedRect"/>
+ <image id="usedImage" xlink:href="../images/20x20.png" width="20" height="20"/>
+ <text id="usedText">Text</text>
+ </g>
+ </defs>
+
+
+ <g>
+ <g id="labels" transform="translate(130, 40)" font-size="20" text-anchor="end">
+ <text>&lt;rect&gt;</text>
+ <text y="30">&lt;circle&gt;</text>
+ <text y="60">&lt;ellipse&gt;</text>
+ <text y="90">&lt;line&gt;</text>
+ <text y="120">&lt;polyline&gt;</text>
+ <text y="150">&lt;polygon&gt;</text>
+ <text y="180">&lt;path&gt;</text>
+ <text y="210">&lt;image&gt;</text>
+ <text y="240">&lt;text&gt;</text>
+ </g>
+ <g id="labelsColumn2" transform="translate(310, 40)" font-size="20" text-anchor="end">
+ <text>&lt;g&gt;</text>
+ <text y="30">&lt;use&gt;</text>
+ </g>
+ </g>
+ <g transform="translate(150, 25)">
+ <use xlink:href="#usedRect" fill="#0F0"/>
+ <use y="30" xlink:href="#usedCircle" fill="#0F0"/>
+ <use y="60" xlink:href="#usedEllipse" fill="#0F0"/>
+ <use y="90" xlink:href="#usedLine" stroke="#0F0" stroke-width="2"/>
+ <use y="120" xlink:href="#usedPolyline" stroke="#0F0" stroke-width="2" fill="none"/>
+ <use y="150" xlink:href="#usedPolygon" fill="#0F0"/>
+ <use y="180" xlink:href="#usedPath" fill="#0F0"/>
+ <use y="210" xlink:href="#usedImage" fill="#FF0"/>
+ <use y="260" xlink:href="#usedText" fill="#0F0" font-weight="bold" font-size="25" font-style="italic" font-family="FreeSerif,serif"/>
+ <use x="180" y="0" xlink:href="#usedG" fill="#0F0"/>
+ <use x="180" y="30" xlink:href="#usedUse" fill="#0c0"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-03-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-03-t-isvalid.html
new file mode 100644
index 0000000000..2f917b3309
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-03-t-isvalid.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-use-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-use-03-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-use-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect id="usedRect" width="100" height="100" fill="cyan" stroke="blue" stroke-width="20"/>
+ </defs>
+
+ <text x="120" y="60" text-anchor="middle">Reference</text>
+
+ <text x="360" y="60" text-anchor="middle">&lt;use&gt;</text>
+
+ <!-- This group is constructed as described in section 5.6 of the -->
+ <!-- SVG 1.1 Specification. -->
+ <g id="reference" transform="rotate(45,120,170) translate(70,120)">
+ <rect width="100" height="100" fill="cyan" stroke="blue" stroke-width="20"/>
+ </g>
+
+ <g transform="translate(240, 0)">
+ <use xlink:href="#usedRect" x="70" y="120" transform="rotate(45,120,170)"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-04-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-04-b-isvalid.html
new file mode 100644
index 0000000000..a3c60058cd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-04-b-isvalid.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-use-04-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-use-04-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-use-04-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g id="ExtContent">
+ <use xlink:href="../images/svgRef4.svg#alpha"/>
+ <use xlink:href="../images/svgRef4.svg#beta"/>
+ <use xlink:href="../images/svgRef4.svg#gamma"/>
+ <use xlink:href="../images/svgRef4.svg#delta"/>
+
+ <use xlink:href="../images/svgRef4.svg#testContent" x="-5" y="5" fill-opacity="0.5"/>
+ </g>
+
+ <text font-size="20" x="240" y="30" text-anchor="middle">External references on &lt;use&gt;</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-05-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-05-b-isvalid.html
new file mode 100644
index 0000000000..e5ade488fc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-05-b-isvalid.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-use-05-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-use-05-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-use-05-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g color="forestgreen">
+ <defs>
+ <linearGradient id="linearGrad1" gradientUnits="objectBoundingBox" y1="0" x1="0" y2="1" x2="1">
+ <stop offset="000%" stop-color="royalblue"/>
+ <stop offset="033%" stop-color="white"/>
+ <stop offset="050%" stop-color="darkblue"/>
+ <stop offset="066%" stop-color="white"/>
+ <stop offset="100%" stop-color="royalblue"/>
+ </linearGradient>
+
+ <radialGradient id="radialGrad1" gradientUnits="objectBoundingBox" cx="0.5" cy="0.5" r="0.5" fx="0.15" fy="0.15">
+ <stop offset="000%" stop-color="royalblue"/>
+ <stop offset="033%" stop-color="white"/>
+ <stop offset="050%" stop-color="darkblue"/>
+ <stop offset="066%" stop-color="white"/>
+ <stop offset="100%" stop-color="royalblue"/>
+ </radialGradient>
+ </defs>
+
+ <use xlink:href="../images/svgRef1.svg#rect1" fill="url(#linearGrad1)"/>
+ <use xlink:href="../images/svgRef1.svg#rect2" fill="currentColor"/>
+ <use xlink:href="../images/svgRef1.svg#rect3"/>
+ <use xlink:href="../images/svgRef1.svg#rect4"/>
+
+ <text font-size="24" x="240" y="35" text-anchor="middle">External references and computed values</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-06-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-06-b-isvalid.html
new file mode 100644
index 0000000000..613ed6fcfb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-06-b-isvalid.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-use-06-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-use-06-b-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-use-06-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <!-- if external use isn't implemented, show red rects -->
+ <rect x="40.5" y="120" width="119" height="119" fill="red"/>
+ <rect x="180.5" y="120" width="119" height="119" fill="red"/>
+
+ <use id="use-elm1" x="40" y="120" width="122" height="122" xlink:href="../images/struct-use-06-b-1.svg#rect1"/>
+ <use id="use-elm2" x="180" y="120" width="122" height="122" xlink:href="../images/struct-use-06-b-1.svg#svg-root"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-07-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-07-b-isvalid.html
new file mode 100644
index 0000000000..84d9a1cd54
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-07-b-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-use-07-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-use-07-b-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-use-07-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <svg xmlns:xlink="http://www.w3.org/1999/xlink" id="svg-sub-root" viewBox="0 0 450 450" width="450" height="450">
+ <g id="drawRects">
+ <rect x="225" y="0" width="220" height="220" style="fill:magenta" onclick="evt.currentTarget.correspondingElement.style.fill='blue';"/>
+ <rect x="0" y="225" width="220" height="220" style="fill:#f0f" onclick="evt.currentTarget.correspondingElement.style.setProperty('fill','blue',null);"/>
+ <rect x="225" y="225" width="220" height="220" fill="#f0f" onclick="evt.currentTarget.correspondingElement.style.setProperty('fill','blue',null);"/>
+ </g>
+ </svg>
+ </defs>
+
+ <use id="use-elm" x="60" y="50" width="240" height="240" xlink:href="#svg-sub-root"/>
+ <rect x="300" y="170" width="118" height="118" fill="magenta" onclick="evt.target.setAttribute('fill','blue')"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-08-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-08-b-isvalid.html
new file mode 100644
index 0000000000..0e42e2b1b7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-08-b-isvalid.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-use-08-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-use-08-b-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-use-08-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g transform="translate(60,50)">
+ <use id="use-elm-1" width="120" height="120" xlink:href="../images/struct-use-08-b-cycles.svg#svg-root"/>
+ <rect width="120" height="120" fill="none" stroke="black"/>
+ <text x="60" y="140" text-anchor="middle" font-size="14">'use' referencing 'svg' element</text>
+ </g>
+
+ <g transform="translate(300,50)">
+ <use id="use-elm-2" width="120" height="120" xlink:href="../images/struct-use-08-b-cycles.svg#image"/>
+ <rect width="120" height="120" fill="none" stroke="black"/>
+ <text x="60" y="140" text-anchor="middle" font-size="14">'use' referencing 'image' element</text>
+ </g>
+
+ <text x="240" y="260" text-anchor="middle" fill="green">This text should be visible.</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-09-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-09-b-isvalid.html
new file mode 100644
index 0000000000..70b079a1c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-09-b-isvalid.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-use-09-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-use-09-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-use-09-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- put all of the actual test here -->
+ <defs>
+ <symbol id="rect1" overflow="visible">
+ <rect x="-50" y="-50" width="100" height="100" fill="none" stroke="slateblue" stroke-width="5"/>
+ </symbol>
+ <symbol id="rect2" overflow="visible">
+ <use xlink:href="#rect1"/>
+ <rect x="-60" y="-60" width="120" height="120" fill="none" stroke="purple" stroke-width="5"/>
+ </symbol>
+ <symbol id="rect3" overflow="visible">
+ <use xlink:href="#rect2"/>
+ <rect x="-70" y="-70" width="140" height="140" fill="none" stroke="orange" stroke-width="5"/>
+ </symbol>
+ <symbol id="rect4" overflow="visible">
+ <use xlink:href="#rect3"/>
+ <rect x="-80" y="-80" width="160" height="160" fill="none" stroke="gold" stroke-width="5"/>
+ </symbol>
+ <symbol id="rects" overflow="visible">
+ <use xlink:href="#rect4"/>
+ <rect x="-90" y="-90" width="180" height="180" fill="none" stroke="black" stroke-width="5"/>
+ </symbol>
+ </defs>
+ <use x="240" y="180" xlink:href="#rects"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-10-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-10-f-isvalid.html
new file mode 100644
index 0000000000..f477b90a18
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-10-f-isvalid.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-use-10-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-use-10-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-use-10-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <style>
+
+ /* low specificity */
+ defs &gt; rect {
+ fill:red;
+ }
+
+ /* applies because of higher specificity */
+ .testclass1 {
+ fill:green;
+ }
+
+ /* does not apply because selectors don't apply to the (conceptually) cloned subtree */
+ #testid1 .testclass1 {
+ fill: red;
+ }
+
+ /* does not apply because of case sensitivity of class value */
+ g .testClass1 {
+ fill:red;
+ }
+
+ /* does not apply because of lower specificity */
+ #g1 .testclass2
+ {
+ fill: red
+ }
+
+ /* does not apply to the used rect, because there is no inheritance from the original tree into the used subtree */
+ g#g1 {
+ visibility: hidden
+ }
+
+ /* applies because of higher specificity */
+ #testid2 {
+ stroke:darkgreen;
+ }
+
+ /* no effect for the used rect, can be referenced anyway into the used subtree */
+ g#g2 {
+ display: none;
+ }
+
+ /* applies directly to the original (referenced) rect element */
+ .testclass3 &gt; rect {
+ fill: green;
+ stroke:darkgreen;
+ }
+
+ /* does not apply to the used rect, because there is no direct access with selectors into the used subtree */
+ #testid3 rect {
+ stroke:red;
+ }
+ #testid3 rect#testrect3 {
+ fill:red;
+ }
+ </style>
+
+ <defs>
+ <rect id="testrect1" class="testclass1" width="100" height="100"/>
+ <g id="g1" style="fill:red">
+ <rect id="testrect2" class="testclass2" width="100" height="100" style="fill:green"/>
+ </g>
+ <g id="g2" class="class testclass3 g">
+ <rect id="testrect3" width="100" height="100" stroke="red"/>
+ </g>
+ </defs>
+
+ <text x="50%" y="3em" style="text-anchor:middle; fill:black">CSS selectors and use element</text>
+
+ <circle class="indicator" cx="240" cy="150" r="25" fill="red"/>
+ <circle class="indicator" cx="390" cy="150" r="25" fill="red"/>
+
+ <use id="testid1" xlink:href="#testrect1" x="40" y="100" style="stroke:darkgreen" stroke-width="10"/>
+ <use id="testid2" xlink:href="#testrect2" x="190" y="100" stroke="red" stroke-width="10"/>
+ <use id="testid3" xlink:href="#testrect3" x="340" y="100" style="stroke:red" stroke-width="10"/>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-11-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-11-f-novalid.html
new file mode 100644
index 0000000000..4123aa95a3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-11-f-novalid.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-use-11-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-use-11-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-use-11-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <style><![CDATA[
+ #testId.test1
+ {
+ fill: blue;
+ }
+ *.test2
+ {
+ fill: blue;
+ }
+ circle.test3
+ {
+ fill: blue;
+ }
+ .descendant circle.test4
+ {
+ fill: blue;
+ }
+ .child > circle.test5
+ {
+ fill: blue;
+ }
+ .test6:first-child
+ {
+ fill: blue;
+ }
+ .sibling + circle.test7
+ {
+ fill: blue;
+ }
+ circle[cx].test8
+ {
+ fill: blue;
+ }
+ circle[cx="50"].test9
+ {
+ fill: blue;
+ }
+ circle[foo~="warning1"].test10
+ {
+ fill: blue;
+ }
+ circle[lang|="en"].test11
+ {
+ fill: blue;
+ }
+ .test12 {
+ fill: blue
+ }
+ .twochildren:first-child
+ {
+ fill: black;
+ }]]>
+ </style>
+ <defs>
+ <circle cx="50" cy="50" r="48" id="testId" class="test1" />
+ <circle cx="50" cy="50" r="48" id="testClass" class="test2" />
+ <circle cx="50" cy="50" r="48" id="testType" class="test3" />
+ <g class="descendant">
+ <circle cx="50" cy="50" r="48" id="testDescendant" class="test4" />
+ </g>
+ <g class="child">
+ <circle cx="50" cy="50" r="48" id="testChild" class="test5" />
+ </g>
+ <g>
+ <circle cx="50" cy="50" r="48" id="testFirstChild" class="test6" />
+ </g>
+ <g class="sibling"></g>
+ <circle cx="50" cy="50" r="48" id="testSibling" class="test7" />
+ <circle cx="50" cy="50" r="48" id="testAttribute" class="test8" />
+ <circle cx="50" cy="50" r="48" id="testAttributeWithValue" class="test9" />
+ <circle cx="50" cy="50" r="48" id="testAttributeWithSpaceSeparatedValueList" class="test10" foo="warning1 warning2" />
+ <circle cx="50" cy="50" r="48" id="testAttributeWithHyphenSeparatedValueList" class="test11" lang="en-us" />
+ <g class="twochildren">
+ <circle cx="50" cy="50" r="48" id="notFirstChild" display="none" />
+ <circle cx="50" cy="50" r="48" id="testFirstChild2" class="test12" />
+ </g>
+ </defs>
+ <use xlink:href="#testId" x="0" y="0" />
+ <use xlink:href="#testClass" x="96" y="0" />
+ <use xlink:href="#testType" x="192" y="0" />
+ <use xlink:href="#testDescendant" x="288" y="0" />
+ <use xlink:href="#testChild" x="0" y="100" />
+ <use xlink:href="#testFirstChild" x="96" y="100" />
+ <use xlink:href="#testSibling" x="192" y="100" />
+ <use xlink:href="#testAttribute" x="288" y="100" />
+ <use xlink:href="#testAttributeWithValue" x="0" y="200" />
+ <use xlink:href="#testAttributeWithSpaceSeparatedValueList" x="96" y="200" />
+ <use xlink:href="#testAttributeWithHyphenSeparatedValueList" x="192" y="200" />
+ <use xlink:href="#testFirstChild2" x="288" y="200" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-12-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-12-f-novalid.html
new file mode 100644
index 0000000000..bddac061e4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-12-f-novalid.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-use-12-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-use-12-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-use-12-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <use xlink:href="#useShortCycle2" x="20" y="20" id="useShortCycle1" />
+ <use xlink:href="#useShortCycle1" x="20" y="20" id="useShortCycle2" />
+ <use xlink:href="#useLongCycle40" x="20" y="20" id="useLongCycle1" />
+ <use xlink:href="#useLongCycle1" x="20" y="20" id="useLongCycle2" />
+ <use xlink:href="#useLongCycle2" x="20" y="20" id="useLongCycle3" />
+ <use xlink:href="#useLongCycle3" x="20" y="20" id="useLongCycle4" />
+ <use xlink:href="#useLongCycle4" x="20" y="20" id="useLongCycle5" />
+ <use xlink:href="#useLongCycle5" x="20" y="20" id="useLongCycle6" />
+ <use xlink:href="#useLongCycle6" x="20" y="20" id="useLongCycle7" />
+ <use xlink:href="#useLongCycle7" x="20" y="20" id="useLongCycle8" />
+ <use xlink:href="#useLongCycle8" x="20" y="20" id="useLongCycle9" />
+ <use xlink:href="#useLongCycle9" x="20" y="20" id="useLongCycle10" />
+ <use xlink:href="#useLongCycle10" x="20" y="20" id="useLongCycle11" />
+ <use xlink:href="#useLongCycle1" x="20" y="20" id="useLongCycle12" />
+ <use id="useNested1" xlink:href="#useNested2">
+ <use id="useNested2" xlink:href="#useNested1" />
+ </use>
+ <g id="useNestedGroup1" xlink:href="#useNestedGroup2">
+ <use id="useNestedGroup2" xlink:href="#useNestedGroup1" />
+ </g>
+ <g id="useIndirectNestedGroup1">
+ <use xlink:href="#useIndirectNestedGroupElem2" id="useIndirectNestedGroupElem1" />
+ </g>
+ <use xlink:href="#useIndirectNestedGroup1" id="useIndirectNestedGroupElem2" />
+ <g id="useMultipleIndirectNestedGroup1">
+ <g id="useMultipleIndirectNestedGroup2">
+ <use xlink:href="#useMultipleIndirectNestedGroupElement2" id="useMultipleIndirectNestedGroupElement1" />
+ </g>
+ <use xlink:href="#useMultipleIndirectNestedGroupElement3" id="useMultipleIndirectNestedGroupElement4" />
+ </g>
+ <use xlink:href="#useMultipleIndirectNestedGroup1" id="useMultipleIndirectNestedGroupElement2" />
+ <use xlink:href="#useMultipleIndirectNestedGroup2" id="useMultipleIndirectNestedGroupElement3" />
+ <use xlink:href="#useMultipleIndirectNestedGroupElement1" id="useMultipleIndirectNestedGroupElement4" />
+ <use xlink:href="#useMultipleIndirectNestedGroupElement2" />
+ <use xlink:href="#useMultipleIndirectNestedGroupElement3" />
+
+ <!-- if we get here, the above circular usr references did not block rendering -->
+ <rect width="96" height="96" fill="green" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-13-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-13-f-isvalid.html
new file mode 100644
index 0000000000..7bd9b978ce
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-13-f-isvalid.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-use-13-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-use-13-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-use-13-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <g id="testG">
+ <rect width="96" height="96" id="testRect1"/>
+ <rect x="96" width="96" height="96" fill="red" id="testRect2"/>
+ </g>
+ </defs>
+ <use xlink:href="#testG"/>
+ <script>
+ try
+ {
+ var testG = document.getElementById("testG");
+ var testRect1 = document.getElementById("testRect1");
+ var testRect2 = document.getElementById("testRect2");
+
+ testRect1.setAttribute("fill", "lime");
+ testG.removeChild(testRect2);
+ }
+ catch(ex)
+ {
+ //alert('ERROR: ' + ex.message);
+ }
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-14-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-14-f-isvalid.html
new file mode 100644
index 0000000000..1b634d40b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-14-f-isvalid.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-use-14-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-use-14-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-use-14-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <g id="test">
+ <rect width="100" height="100" fill="green" />
+ </g>
+ </defs>
+ <rect width="100" height="100" fill="red"/>
+ <use xlink:href="#pass" />
+ <script><![CDATA[
+ try
+ {
+ var test = document.getElementById("test");
+ var rect = test.firstChild.nextSibling;
+
+ rect.setAttribute("id", "pass");
+ }
+ catch(ex)
+ {
+ alert("ERROR: " + ex.message);
+ }]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-15-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-15-f-isvalid.html
new file mode 100644
index 0000000000..afcef4d179
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/struct-use-15-f-isvalid.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>struct-use-15-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: struct-use-15-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: struct-use-15-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <g id="testG">
+ <rect width="96" height="96" id="testRect1" />
+ <rect x="96" width="96" height="96" fill="red" id="testRect2" />
+ </g>
+ <use xlink:href="#testG" id="testUse1" />
+ </defs>
+ <use xlink:href="#testUse1" />
+ <script><![CDATA[
+ try
+ {
+ var testG = document.getElementById("testG");
+ var testRect1 = document.getElementById("testRect1");
+ var testRect2 = document.getElementById("testRect2");
+
+ testRect1.setAttribute("fill", "green");
+ testG.removeChild(testRect2);
+ }
+ catch(ex)
+ {
+ alert("ERROR: " + ex.message);
+ }]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-class-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-class-01-f-isvalid.html
new file mode 100644
index 0000000000..e680f21e10
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-class-01-f-isvalid.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-class-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-class-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-class-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <style><![CDATA[
+ .testClass
+ {
+ fill: blue;
+ }
+ .testClass2
+ {
+ stroke: orange;
+ }]]>
+ </style>
+ <g>
+ <rect x="10" y="10" width="200" height="100" class="testClass" />
+ <rect x="215" y="125" width="200" height="100" class="testClass testClass2" stroke-width="10px" />
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-01-b-isvalid.html
new file mode 100644
index 0000000000..a8d14dd7ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-01-b-isvalid.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-css-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-css-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-css-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <defs>
+ <style>
+ rect { fill: green }
+ .warning { fill: green }
+ .bar {fill: green}
+ </style>
+ </defs>
+ </defs>
+ <!-- ====================================================================== -->
+ <!-- Element (GI) selectors =============================================== -->
+ <!-- ====================================================================== -->
+
+ <text style="font-size:12px;" x="40" y="36">
+ element selectors:
+ </text>
+
+ <circle cx="160" cy="100" r="30" fill="green"/>
+ <g style="fill: red">
+ <rect x="220" y="80" width="60" height="40"/>
+ </g>
+ <polygon points="300,100, 320,120, 340,110, 360,120, 390,90, 340,70" fill="green"/>
+
+ <!-- ====================================================================== -->
+ <!-- class selectors =============================================== -->
+ <!-- ====================================================================== -->
+ <g transform="translate(0, 150)">
+
+ <text style="font-size:12px;" x="40" y="36">
+ class selectors:
+ </text>
+
+ <g style="fill: red">
+ <circle class="warning" cx="160" cy="100" r="30"/>
+ <rect x="220" y="80" width="60" height="40"/>
+ <polygon class="foo bar baz" points="300,100, 320,120, 340,110, 360,120, 390,90, 340,70"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" style="fill: none;stroke:#000" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-02-b-isvalid.html
new file mode 100644
index 0000000000..a0dab05de6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-02-b-isvalid.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-css-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-css-02-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-css-02-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <style>
+ #one, #two { fill: green }
+ [transform="scale(2)"] { fill: green }
+ #x [points] { fill: green }
+ </style>
+ </defs>
+ <!-- ====================================================================== -->
+ <!-- ID selectors selectors ============================================== -->
+ <!-- ====================================================================== -->
+ <text style="font-size:12px;" x="40" y="36">
+ id selectors:
+ </text>
+ <g style="fill: green">
+ <circle cx="160" cy="100" r="30"/>
+ <polygon points="300,100, 320,120, 340,110, 360,120, 390,90, 340,70"/>
+ </g>
+ <g style="fill: red">
+ <rect id="one" x="220" y="80" width="60" height="40"/>
+ </g>
+ <!-- ====================================================================== -->
+ <!-- attribute selectors ================================================= -->
+ <!-- ====================================================================== -->
+ <g transform="translate(0, 150)">
+ <text style="font-size:12px;" x="40" y="36">
+ attribute selectors:
+ </text>
+
+ <g style="fill: red" id="x">
+ <circle transform="scale(2)" cx="80" cy="50" r="15"/>
+ <rect id="two" x="220" y="80" width="60" height="40"/>
+ <polygon points="300,100, 320,120, 340,110, 360,120, 390,90, 340,70"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-03-b-isvalid.html
new file mode 100644
index 0000000000..1bb7a532f2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-03-b-isvalid.html
@@ -0,0 +1,84 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-css-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-css-03-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-css-03-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <style>
+ .mummy {fill: green } /* least specific */
+ .mummy rect { fill: red} /* more specific, make rect red */
+ .mummy &gt; .thischild { fill: green } /* even more specific, rect green */
+ .child {fill: red}
+ .gap &gt; .thischild { fill: green}
+ .daddy {fill: red }
+ .daddy &gt; .tertius {fill: green} /* bottom poly green */
+ .primus + .secundus { fill: green } /* bottom rect green */
+ .daddy :first-child { fill: green} /* bottom circle green */
+ </style>
+ </defs>
+
+ <text style="font-family:SVGFreeSansASCII;font-size:12px;" x="40" y="36">
+ ancestor selectors and child selectors:
+ </text>
+
+ <g class="mummy">
+ <rect class="thischild" x="220" y="80" width="60" height="40"/>
+ <circle cx="160" cy="100" r="30"/>
+ <g class="child">
+ <g class="generation gap">
+ <polygon class="thischild" points="300,100, 320,120, 340,110, 360,120, 390,90, 340,70"/>
+ </g>
+ </g>
+ </g>
+
+ <g transform="translate(0, 150)">
+ <text style="font-family:SVGFreeSansASCII;font-size:12px;" x="40" y="36">
+ ancestor, immediate-sibling and first-child selectors:
+ </text>
+
+ <g class="daddy">
+ <circle class="primus" cx="160" cy="100" r="30"/>
+ <rect class="secundus" x="220" y="80" width="60" height="40"/>
+ <polygon class="tertius" points="300,100, 320,120, 340,110, 360,120, 390,90, 340,70"/>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-04-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-04-f-isvalid.html
new file mode 100644
index 0000000000..11f7111898
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-04-f-isvalid.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-css-04-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-css-04-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-css-04-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g fill="white">
+ <text x="240" y="35" font-size="20" text-anchor="middle">CSS selector test</text>
+ <defs>
+ <style>
+ * {stroke:red; stroke-width:1;} /* 0 */
+ text {stroke:none; fill:black;} /* 1 */
+ rect {stroke:black; stroke-dasharray:none;} /* 1 */
+ #test-frame {fill:none} /* 100 */
+ g#alpha {fill:blue} /* 101 */
+ a#alpha {fill:red} /* 101 */
+ #alpha * rect {fill:green} /* 101 */
+ #alpha-2 > rect {fill:orange} /* 101 */
+ #beta rect {fill:gold} /* 101 */
+ g#gamma * g * * rect {fill:silver} /* 103 */
+ g#gamma * * rect {fill:purple} /* 102 */
+ [stroke-width="1.0001"] {fill:blue} /* 10 */
+ g#delta rect[stroke-width="1.0002"] {fill:green} /* 112 */
+ g#delta > rect[stroke-width="1.0003"] {fill:orange} /* 102 */
+ #delta + g > * {fill:gold} /* 101 */
+ g#delta + g > rect + rect {fill:purple} /* 104 */
+ #delta + g#epsilon * rect:first-child {fill:silver} /* 202 */
+ #zeta [cursor] {fill:blue} /* 110 */
+ g#zeta [cursor="help"] {fill:green} /* 111 */
+ g#zeta [rx~="3E"] {fill:orange} /* 111 */
+ g#epsilon + g [stroke-dasharray|="3.1415926"] {fill:gold} /* 112 */
+ g#epsilon + g > rect.hello {fill:purple} /* 113 */
+ g#eta rect:first-child {fill:silver} /* 102 */
+ </style>
+ </defs>
+ <g id="alpha">
+ <rect x="30" y="70" width="67.5" height="67.5" id="A1"/>
+ <g id="alpha-1">
+ <rect x="100" y="70" width="67.5" height="67.5" id="B1" />
+ </g>
+ <g id="alpha-2">
+ <rect x="170" y="70" width="67.5" height="67.5" id="C1"/>
+ </g>
+ </g>
+ <g id="beta">
+ <g>
+ <g>
+ <g>
+ <g>
+ <g>
+ <rect x="240" y="70" width="67.5" height="67.5" id="D1"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g id="gamma">
+ <g>
+ <g>
+ <rect x="310" y="70" width="67.5" height="67.5" id="E1"/>
+ <g>
+ <g>
+ <rect x="380" y="70" width="67.5" height="67.5" id="F1"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g id="delta">
+ <rect x="30" y="140" width="67.5" height="67.5" stroke-width="1.0001" id="A2"/>
+ <rect x="100" y="140" width="67.5" height="67.5" stroke-width="1.0002" id="B2"/>
+ <rect x="170" y="140" width="67.5" height="67.5" stroke-width="1.0003" id="C2"/>
+ </g>
+ <g id="epsilon">
+ <rect x="240" y="140" width="67.5" height="67.5" id="D2"/>
+ <rect x="310" y="140" width="67.5" height="67.5" id="E2"/>
+ <g>
+ <rect x="380" y="140" width="67.5" height="67.5" id="F2"/>
+ </g>
+ </g>
+ <g id="zeta">
+ <rect x="30" y="210" width="67.5" height="67.5" cursor="default" id="A3"/>
+ <rect x="100" y="210" width="67.5" height="67.5" cursor="help" id="B3"/>
+ <rect x="170" y="210" width="67.5" height="67.5" stroke-dasharray="5, 3.14" id="C3" style="fill:orange"/>
+ <rect x="240" y="210" width="67.5" height="67.5" rx="3E-6" stroke-dasharray="3.1415926,8" id="D3" style="fill:gold"/>
+ <rect x="310" y="210" width="67.5" height="67.5" class="hello" id="E3"/>
+ </g>
+ <g id="eta">
+ <rect x="380" y="210" width="67.5" height="67.5" id="F3"/>
+ </g>
+ <g id="labels" font-size="16" font-family="Arial, Helvetica, sans-serif">
+ <text x="64" y="60" text-anchor="middle">A</text>
+ <text x="133" y="60" text-anchor="middle">B</text>
+ <text x="200" y="60" text-anchor="middle">C</text>
+ <text x="270" y="60" text-anchor="middle">D</text>
+ <text x="340" y="60" text-anchor="middle">E</text>
+ <text x="410" y="60" text-anchor="middle">F</text>
+ <text x="20" y="113" text-anchor="middle">1</text>
+ <text x="20" y="183" text-anchor="middle">2</text>
+ <text x="20" y="253" text-anchor="middle">3</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-05-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-05-b-isvalid.html
new file mode 100644
index 0000000000..74c7d79e9f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-05-b-isvalid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-css-05-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-css-05-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-css-05-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans-ISO-8859-1.svg#iso_8859_1"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F" font-style="oblique">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSansOblique-Lat1.svg#FreeSansOblique"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <style>
+ :lang(en) { fill: green}
+ :lang(fr) { fill: blue }
+ :lang(fr-ca) {font-style: italic}
+ </style>
+ <g text-anchor="middle" font-size="30">
+ <text x="240" y="100" xml:lang="en">Good morning!</text>
+ <text x="240" y="200" xml:lang="fr">
+ Bon <tspan xml:lang="fr-CA">avant-midi</tspan>!
+ </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-06-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-06-b-isvalid.html
new file mode 100644
index 0000000000..1264581949
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-06-b-isvalid.html
@@ -0,0 +1,165 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-css-06-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-css-06-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-css-06-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <style>
+ svg:hover {fill: none}
+ text {fill: black}
+ :link {fill: #33F}
+ :visited {fill: rgb(138, 43, 226)}
+ text:active {text-decoration: underline; fill: red }
+ :hover {fill: rgb(255, 140, 0) }
+ rect:hover {fill: none }
+ text#revision:hover {fill: black}
+ :focus { fill: rgb( 0, 255, 127); stroke: rgb( 0, 255, 127); stroke-width:1.5px }
+ </style>
+ <defs>
+ <font horiz-adv-x="481">
+ <font-face font-family="FreeSansSVG" units-per-em="1000" panose-1="2 11 5 4 2 2 2 2 2 4" ascent="800" descent="-200" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="432" d="M33 0V666H366V0H33ZM66 33H333V633H66V33Z"/>
+ <glyph unicode=" " glyph-name="space" horiz-adv-x="278"/>
+ <glyph unicode="!" glyph-name="exclam" horiz-adv-x="278" d="M208 729V391L186 168H147L125 391V729H208ZM208 104V0H124V104H208Z"/>
+ <glyph unicode="&quot;" glyph-name="quotedbl" horiz-adv-x="355" d="M52 709H145V598L118 464H79L52 598V709ZM212 709H305V598L278 464H239L212 598V709Z"/>
+ <glyph unicode="#" glyph-name="numbersign" horiz-adv-x="556" d="M485 697L449 501H542V433H436L405 259H510V191H393L354 -20H278L316 191H192L153 -20H77L115 191H14V259H128L159 433H51V501H172L208 697H284L248 501H373L408 697H485ZM360 433H236L204 259H329L360 433Z"/>
+ <glyph unicode="$" glyph-name="dollar" horiz-adv-x="556" d="M243 770H302V716Q427 707 474 615Q496 574 496 520V519H417Q416 596 359 630Q339 641 315 645L302 646V397Q402 366 431 350L433 349Q517 301 518 196V195Q518 91 450 30L426 12Q377 -17 302 -23V-126H243V-23Q89 -13 46 104Q30 150 33 208H112Q119 134 133 110L137 103Q172 55 243 46V318Q150 346 117 370Q46 421 46 515V516Q46 662 186 704Q212 712 243 716V770ZM243 405V645Q147 632 130 556L127 526Q127 436 243 405ZM302 309V46Q363 53 394 83Q436 123 436 182V183Q436 244 389 274Q360 292 302 309Z"/>
+ <glyph unicode="%" glyph-name="percent" horiz-adv-x="889" d="M199 685Q283 685 334 619H335Q370 573 370 513V512Q370 433 307 382Q260 343 200 343Q119 343 67 406Q29 453 29 513V514Q29 595 92 647Q139 685 199 685ZM199 615Q145 615 115 569H114Q98 544 98 515V514Q98 461 143 430Q169 413 200 413Q254 413 284 458Q301 483 301 512V513Q301 570 253 600Q229 615 199 615ZM609 709H675L280 -20H214L609 709ZM688 322Q773 322 824 256Q859 210 859 151V150Q859 71 796 20Q749 -19 689 -19Q608 -19 556 44Q518 91 518 151V152Q518 233 582 284Q629 322 688 322ZM688 252Q634 252 604 207Q587 182 587 153V152Q587 97 634 67H635V66Q636 66 636 66Q636 65 637 65Q661 51 689 51Q743 51 773 96Q790 120 790 149V150Q790 207 742 237V237L741 238Q724 248 704 251Q700 251 695 252Q693 252 690 252H688Z"/>
+ <glyph unicode="&amp;" glyph-name="ampersand" horiz-adv-x="667" d="M493 334H573Q573 240 515 151L637 0H528L466 78Q417 30 389 13Q333 -23 257 -23Q141 -23 85 59Q52 108 52 175V176Q52 257 104 310Q140 346 214 389Q144 477 135 525V525Q135 527 135 530Q134 532 134 535L133 552Q133 628 197 675Q244 709 304 709Q394 709 440 643V642Q467 604 467 553V552Q467 483 412 434Q383 409 330 379L329 378L462 215Q495 272 493 334ZM285 431Q366 482 381 519Q388 534 388 553V554Q388 606 343 629Q324 639 301 639Q241 639 221 589Q215 573 215 554V553Q215 520 240 485L241 484V484L242 483L243 482V482L285 431ZM418 137L258 337Q164 277 144 227Q136 207 136 184V183Q136 118 190 80Q225 55 267 55Q334 55 402 120Q409 127 416 135Q417 135 417 136L418 137Z"/>
+ <glyph unicode="'" glyph-name="quotesingle" horiz-adv-x="191" d="M48 709H142V598L115 464H75L48 598V709Z"/>
+ <glyph unicode="(" glyph-name="parenleft" horiz-adv-x="333" d="M236 729H291Q167 529 155 300L154 259Q154 26 276 -187Q283 -200 291 -212H236Q123 -64 86 128Q73 196 73 258V259Q73 438 166 617Q197 678 236 729Z"/>
+ <glyph unicode=")" glyph-name="parenright" horiz-adv-x="333" d="M93 -212H38Q162 -12 174 217Q175 258 175 258Q175 491 53 704L38 729H93Q206 581 243 389Q256 321 256 259V258Q256 79 163 -100Q132 -161 93 -212Z"/>
+ <glyph unicode="*" glyph-name="asterisk" horiz-adv-x="389" d="M160 729H223L218 617L324 655L343 596L235 566L305 477L254 441L192 534L129 441L79 477L148 566L40 596L59 655L165 617L160 729Z"/>
+ <glyph unicode="+" glyph-name="plus" horiz-adv-x="584" d="M534 267V197H327V-10H257V197H50V267H257V474H327V267H534Z"/>
+ <glyph unicode="," glyph-name="comma" horiz-adv-x="278" d="M87 104H192V-16Q192 -147 87 -147V-109Q130 -107 140 -76Q147 -58 147 -19V-18V0H87V104Z"/>
+ <glyph unicode="-" glyph-name="hyphen" horiz-adv-x="333" d="M284 312V240H46V312H284Z"/>
+ <glyph unicode="." glyph-name="period" horiz-adv-x="278" d="M191 104V0H87V104H191Z"/>
+ <glyph unicode="/" glyph-name="slash" horiz-adv-x="278" d="M229 729H284L47 -20H-8L229 729Z"/>
+ <glyph unicode="0" glyph-name="zero" horiz-adv-x="556" d="M275 709Q378 709 436 634Q437 632 438 631Q507 537 507 338V337Q507 66 369 -3Q327 -23 275 -23Q99 -23 56 193Q43 258 43 342V343Q43 538 112 631Q166 702 261 709Q268 709 275 709ZM275 631Q133 631 133 344Q133 344 133 344V342Q133 50 273 50Q391 50 412 242Q417 287 417 344V345Q417 631 275 631Z"/>
+ <glyph unicode="1" glyph-name="one" horiz-adv-x="556" d="M259 505H102V568Q204 581 234 604H235Q245 611 252 621Q271 645 289 709H347V0H259V505Z"/>
+ <glyph unicode="2" glyph-name="two" horiz-adv-x="556" d="M506 87V0H34Q41 128 91 195Q133 250 233 307L325 359Q420 413 421 498V499Q421 571 361 610Q326 632 282 632H281Q206 632 166 575Q163 571 161 566L159 563Q142 531 138 463H50Q53 563 88 617Q148 709 284 709Q383 709 445 653Q511 594 511 502V501Q511 369 361 287L261 233Q170 180 146 131Q137 111 133 87H506Z"/>
+ <glyph unicode="3" glyph-name="three" horiz-adv-x="556" d="M221 325V400Q305 401 338 415Q394 438 395 509V511Q395 596 325 623Q301 632 270 632Q192 632 157 579L156 578L151 569Q136 540 135 480H47Q51 690 237 708L269 709Q408 709 460 616Q485 573 485 515V514Q485 406 386 367Q479 335 499 259Q506 233 506 199V198Q506 75 412 15Q352 -23 266 -23Q118 -23 64 79L63 80Q37 128 32 206H120Q128 74 233 58Q250 55 269 55Q373 55 405 134Q416 161 416 196V197Q416 326 269 326L232 325H221Z"/>
+ <glyph unicode="4" glyph-name="four" horiz-adv-x="556" d="M327 170H28V263L350 709H415V249H520V170H415V0H327V170ZM327 249V559L105 249H327Z"/>
+ <glyph unicode="5" glyph-name="five" horiz-adv-x="556" d="M476 709V622H181L153 424Q212 467 284 467Q404 467 468 380Q513 319 513 232V231Q513 102 426 30Q362 -23 270 -23Q159 -23 94 44L78 62Q51 95 35 172V174H123Q154 55 268 55Q369 55 407 136Q423 171 423 218V219Q423 328 347 370Q313 389 268 389Q204 389 159 346L138 323H57L110 709H476Z"/>
+ <glyph unicode="6" glyph-name="six" horiz-adv-x="556" d="M498 524H410Q392 611 321 628Q307 631 291 631Q180 631 146 487Q133 433 133 362Q191 441 296 441Q407 441 469 358Q513 299 513 217V216Q513 97 431 29Q369 -23 281 -23Q162 -23 103 65Q45 153 43 312Q43 317 43 322V323Q43 508 107 608Q163 692 263 707Q280 709 297 709Q412 709 467 616Q490 577 498 525V524ZM285 363Q200 363 160 297Q138 262 138 215V214Q138 128 199 82Q235 55 282 55Q358 55 398 118Q423 157 423 208V209Q423 311 352 348Q323 363 285 363Z"/>
+ <glyph unicode="7" glyph-name="seven" horiz-adv-x="556" d="M520 709V635Q318 367 252 96Q240 49 232 0H138Q188 218 281 389Q336 490 429 622H46V709H520Z"/>
+ <glyph unicode="8" glyph-name="eight" horiz-adv-x="556" d="M391 373Q512 315 513 197V196Q513 84 427 23Q364 -23 275 -23Q151 -23 84 59Q37 116 37 196V197Q37 315 158 373Q86 418 70 466Q62 488 62 519V520Q62 619 143 672Q198 709 275 709Q391 709 450 633Q488 586 488 521V520Q488 452 443 411Q443 410 442 410Q423 392 391 373ZM275 631Q195 631 165 573L164 572V572Q152 549 152 520V519Q152 449 213 421Q240 408 274 408H275Q355 408 385 465Q386 465 386 466Q398 488 398 516V517V518Q398 593 333 620Q308 631 275 631ZM275 334Q186 334 147 270Q127 238 127 196V195Q127 113 193 75Q227 55 273 55Q364 55 403 120Q423 152 423 194V195Q423 277 356 315Q321 334 275 334Z"/>
+ <glyph unicode="9" glyph-name="nine" horiz-adv-x="556" d="M53 162H141Q159 75 230 58Q244 55 260 55Q371 55 405 199Q418 253 418 324Q354 247 262 245H256Q144 245 82 328Q38 387 38 469V470Q38 589 120 657Q182 709 270 709Q389 709 449 621Q507 533 509 374Q509 369 509 364V363Q509 178 444 78Q391 -3 294 -20L254 -23Q139 -23 84 70Q61 110 53 162ZM269 632Q193 632 153 568L152 567Q128 529 128 478V477Q128 375 199 338Q228 323 266 323Q349 323 390 388Q413 424 413 471V472Q413 559 352 605Q315 632 269 632Z"/>
+ <glyph unicode=":" glyph-name="colon" horiz-adv-x="278" d="M214 104V0H110V104H214ZM214 524V420H110V524H214Z"/>
+ <glyph unicode=";" glyph-name="semicolon" horiz-adv-x="278" d="M215 524V420H111V524H215ZM110 104H215V-16Q215 -147 110 -147V-109Q153 -107 163 -76Q170 -58 170 -19V-18V0H110V104Z"/>
+ <glyph unicode="&lt;" glyph-name="less" horiz-adv-x="584" d="M45 198V267L534 474V395L140 234L534 70V-9L45 198Z"/>
+ <glyph unicode="=" glyph-name="equal" horiz-adv-x="584" d="M534 353V283H50V353H534ZM534 181V111H50V181H534Z"/>
+ <glyph unicode="&gt;" glyph-name="greater" horiz-adv-x="584" d="M539 267V198L50 -9V70L444 231L50 395V474L539 267Z"/>
+ <glyph unicode="?" glyph-name="question" horiz-adv-x="556" d="M330 199H240V254Q240 304 268 341Q285 363 320 396L322 397L344 417Q418 483 419 547Q419 547 419 547Q419 547 419 548V549Q419 619 358 649H357Q328 663 291 663Q209 663 179 605Q162 571 162 508V507H77Q77 718 257 739L296 741Q422 741 478 658L479 657V657V656Q509 611 509 550V549Q509 479 458 420Q439 397 409 370Q346 312 336 285Q330 270 330 247V246V199ZM330 104V0H240V104H330Z"/>
+ <glyph unicode="@" glyph-name="at" horiz-adv-x="1015" d="M665 501H748L658 221Q646 187 646 172V171Q646 144 675 131H676Q685 127 696 127Q760 127 813 199Q864 270 864 356V357Q864 477 767 566Q668 658 528 664H512Q365 664 252 562L221 531Q119 418 119 274V273Q119 132 224 35Q332 -65 493 -65H494Q573 -65 687 -33L715 -100Q603 -142 489 -142Q309 -142 178 -35Q56 65 37 212Q34 258 34 258Q34 412 129 542Q141 558 154 573Q155 574 156 575Q157 576 158 577Q172 593 188 608L192 612Q300 710 451 735Q488 741 525 741Q691 741 814 640Q930 546 948 411Q951 390 951 370V369Q951 248 867 149Q866 147 865 146Q789 57 679 57Q583 57 569 134Q503 62 428 62H427Q345 62 298 131Q264 179 264 244V245Q264 354 343 438Q420 521 519 522H521Q604 522 642 436L643 435L665 501ZM515 458Q449 458 399 387Q354 324 354 245V244Q354 177 401 143H402Q425 126 452 126H453Q511 126 555 191Q588 239 604 323L609 362Q612 417 566 444Q543 458 515 458Z"/>
+ <glyph unicode="A" glyph-name="A" horiz-adv-x="667" d="M474 219H193L116 0H17L277 729H397L653 0H549L474 219ZM448 297L336 629L216 297H448Z"/>
+ <glyph unicode="B" glyph-name="B" horiz-adv-x="667" d="M79 0V729H375Q478 729 533 678Q591 627 591 545V544Q591 432 490 385Q595 344 616 264Q622 244 623 221Q623 215 623 209V208Q623 120 567 61Q511 0 409 0H408H79ZM172 415H352Q424 415 458 441Q498 471 498 530V531Q498 590 458 621Q424 647 352 647H172V415ZM172 82H399Q463 82 495 116L496 117Q530 152 530 206V207Q530 262 496 298Q464 333 399 333H172V82Z"/>
+ <glyph unicode="C" glyph-name="C" horiz-adv-x="722" d="M662 503H567Q552 578 514 613Q467 657 377 659H370Q242 659 181 544Q141 469 141 358V357Q141 187 236 108Q295 59 378 59Q487 59 538 136Q544 144 548 153Q570 195 581 266H677Q644 -23 377 -23Q236 -23 154 62Q48 171 48 355V356Q48 539 150 650Q232 741 380 741H381Q619 741 662 503Z"/>
+ <glyph unicode="D" glyph-name="D" horiz-adv-x="722" d="M89 0V729H370Q533 729 612 597Q613 596 613 595Q667 504 667 366V365Q667 156 551 61Q478 0 370 0H89ZM182 82H354Q528 82 565 263Q574 308 574 363V364Q574 610 406 642Q381 647 354 647H182V82Z"/>
+ <glyph unicode="E" glyph-name="E" horiz-adv-x="667" d="M183 332V82H613V0H90V729H595V647H183V414H580V332H183Z"/>
+ <glyph unicode="F" glyph-name="F" horiz-adv-x="611" d="M183 332V0H90V729H579V647H183V414H531V332H183Z"/>
+ <glyph unicode="G" glyph-name="G" horiz-adv-x="778" d="M709 385V-4H650L627 93Q523 -23 379 -23H378Q225 -23 131 91Q44 195 44 356V357Q44 533 146 643Q160 658 176 671Q261 741 393 741H394Q573 741 654 623Q687 574 699 508H604Q583 606 488 642Q446 659 393 659Q261 659 190 555Q137 477 137 363V362Q137 236 198 152L214 133Q280 61 392 59Q395 59 398 59Q512 59 578 139Q627 199 627 282V283V303H405V385H709Z"/>
+ <glyph unicode="H" glyph-name="H" horiz-adv-x="722" d="M551 332H177V0H83V729H176V414H551V729H644V0H551V332Z"/>
+ <glyph unicode="I" glyph-name="I" horiz-adv-x="278" d="M194 729V0H100V729H194Z"/>
+ <glyph unicode="J" glyph-name="J" horiz-adv-x="500" d="M333 729H426V182Q426 58 336 5Q287 -23 220 -23Q96 -23 44 63Q17 108 17 169V170V234H112V187Q112 76 193 58L221 55Q279 55 309 98L310 100Q333 134 333 215V216V729Z"/>
+ <glyph unicode="K" glyph-name="K" horiz-adv-x="667" d="M172 255V0H79V729H172V360L535 729H655L358 432L658 0H548L291 374L172 255Z"/>
+ <glyph unicode="L" glyph-name="L" horiz-adv-x="556" d="M173 729V82H533V0H80V729H173Z"/>
+ <glyph unicode="M" glyph-name="M" horiz-adv-x="833" d="M468 0H370L163 611V0H75V729H204L420 94L632 729H761V0H673V611L468 0Z"/>
+ <glyph unicode="N" glyph-name="N" horiz-adv-x="722" d="M646 729V0H541L164 591V0H76V729H177L558 133V729H646Z"/>
+ <glyph unicode="O" glyph-name="O" horiz-adv-x="778" d="M389 741Q563 741 660 618L661 617Q662 616 663 615Q723 536 738 422Q742 389 742 354V353Q742 205 660 100Q640 74 616 54Q525 -23 390 -23Q223 -23 125 94Q38 198 38 358V359Q38 543 149 650Q244 741 389 741ZM389 659Q259 659 187 557Q131 478 131 360V359Q131 201 226 118Q293 59 390 59Q519 59 591 159Q649 237 649 354V355Q649 520 551 603Q485 659 389 659Z"/>
+ <glyph unicode="P" glyph-name="P" horiz-adv-x="667" d="M184 309V0H91V729H392Q553 729 600 611Q617 570 617 516V515Q617 418 554 361Q496 309 414 309H413H184ZM184 391H378Q480 391 510 465Q520 488 520 518V519Q520 609 441 637Q441 637 440 637Q413 647 378 647H184V391Z"/>
+ <glyph unicode="Q" glyph-name="Q" horiz-adv-x="778" d="M733 -1L686 -59L581 28Q495 -23 390 -23Q223 -23 125 94Q38 198 38 358V359Q38 543 149 650Q245 741 390 741Q556 741 654 625Q742 522 742 362V361Q742 189 639 76L733 -1ZM481 205L570 132Q649 221 649 359V360Q649 517 555 600Q487 659 390 659Q259 659 187 557Q131 478 131 360V359Q131 200 226 117Q293 59 389 59Q449 59 509 87L435 149L481 205Z"/>
+ <glyph unicode="R" glyph-name="R" horiz-adv-x="722" d="M186 314V0H93V729H429Q599 729 640 609Q651 576 651 535V534Q651 436 579 385Q560 372 536 360Q598 333 617 293Q634 256 635 170Q637 74 654 47Q663 34 679 23V0H566Q545 48 545 118V119L546 184Q546 293 466 310Q448 314 426 314H186ZM186 396H411Q532 396 550 482Q554 499 554 520V521Q554 587 516 619Q484 647 411 647H186V396Z"/>
+ <glyph unicode="S" glyph-name="S" horiz-adv-x="667" d="M596 515H508Q507 626 398 655Q366 663 326 663Q222 663 181 601V601Q163 574 163 541V540Q163 484 217 456Q242 443 283 432L466 383Q586 350 614 253Q621 228 621 201V200Q621 116 563 53L541 33Q468 -23 336 -23Q167 -23 91 81Q49 138 48 232H136Q135 167 174 120Q225 59 342 59Q431 59 476 90Q520 121 527 176L528 191Q528 267 418 302Q407 306 395 309H394L213 357Q71 394 70 525V527Q70 651 174 707Q238 741 329 741Q505 741 568 630Q596 581 596 515Z"/>
+ <glyph unicode="T" glyph-name="T" horiz-adv-x="611" d="M354 647V0H261V647H21V729H593V647H354Z"/>
+ <glyph unicode="U" glyph-name="U" horiz-adv-x="722" d="M552 729H645V217Q645 87 541 22Q469 -23 364 -23Q199 -23 126 78Q86 135 85 215Q85 217 85 217V729H178V217Q178 138 231 97Q284 59 364 59Q487 59 532 138Q551 171 552 215Q552 215 552 216V217V729Z"/>
+ <glyph unicode="V" glyph-name="V" horiz-adv-x="667" d="M392 0H292L30 729H130L344 112L546 729H645L392 0Z"/>
+ <glyph unicode="W" glyph-name="W" horiz-adv-x="944" d="M744 0H642L474 599L311 0H209L22 729H126L263 137L425 729H525L691 137L825 729H929L744 0Z"/>
+ <glyph unicode="X" glyph-name="X" horiz-adv-x="667" d="M391 374L649 0H534L335 304L135 0H22L280 374L38 729H151L338 443L526 729H637L391 374Z"/>
+ <glyph unicode="Y" glyph-name="Y" horiz-adv-x="667" d="M387 286V0H294V286L13 729H128L342 374L550 729H661L387 286Z"/>
+ <glyph unicode="Z" glyph-name="Z" horiz-adv-x="611" d="M581 729V645L145 82H583V0H28V82L466 647H56V729H581Z"/>
+ <glyph unicode="[" glyph-name="bracketleft" horiz-adv-x="278" d="M250 729V657H147V-140H250V-212H64V729H250Z"/>
+ <glyph unicode="\" glyph-name="backslash" horiz-adv-x="278" d="M47 729L284 -20H229L-8 729H47Z"/>
+ <glyph unicode="]" glyph-name="bracketright" horiz-adv-x="278" d="M23 -212V-140H126V657H23V729H209V-212H23Z"/>
+ <glyph unicode="^" glyph-name="asciicircum" horiz-adv-x="469" d="M197 709H270L425 329H356L234 629L113 329H44L197 709Z"/>
+ <glyph unicode="_" glyph-name="underscore" horiz-adv-x="556" d="M578 -126V-176H-22V-126H578Z"/>
+ <glyph unicode="`" glyph-name="grave" horiz-adv-x="333" d="M135 740L231 592H171L22 740H135Z"/>
+ <glyph unicode="a" glyph-name="a" horiz-adv-x="556" d="M535 49V-14Q500 -23 478 -23Q407 -23 394 40Q393 47 392 54Q309 -22 218 -23H214Q104 -23 61 52Q42 86 42 131V132Q42 234 134 272Q170 287 264 299L302 304Q375 313 386 342V343V344L389 362V384Q389 448 308 460Q291 462 272 462Q169 462 152 387Q150 378 149 369H65Q68 441 101 478Q156 539 275 539Q451 539 470 423Q472 411 472 397V396V88Q472 47 517 47L535 49ZM389 165V259Q357 244 275 233Q266 232 255 230Q149 215 133 161L129 135V134Q129 69 196 54Q212 50 232 50Q304 50 356 97Q388 126 389 161Q389 162 389 162V162V163V163V165Z"/>
+ <glyph unicode="b" glyph-name="b" horiz-adv-x="556" d="M54 729H137V453Q194 539 299 539Q427 539 486 431Q523 363 523 265V264Q523 103 432 26Q375 -23 295 -23Q188 -23 129 67V0H54V729ZM283 461Q200 461 161 377Q137 328 137 259V258Q137 133 206 81Q239 55 283 55Q367 55 409 134Q436 185 436 254V255Q436 382 364 435Q331 460 288 461Q285 461 283 461Z"/>
+ <glyph unicode="c" glyph-name="c" horiz-adv-x="500" d="M471 348H387Q374 445 290 460Q282 461 272 462H263Q169 462 134 362Q118 316 118 254V253Q118 116 197 71Q226 54 265 54Q372 54 393 180H477Q466 43 362 -3Q319 -23 263 -23Q134 -23 72 82Q31 151 31 252V253Q31 413 123 490Q182 539 264 539Q370 539 428 471L436 461Q465 418 471 348Z"/>
+ <glyph unicode="d" glyph-name="d" horiz-adv-x="556" d="M495 729V0H421V69Q363 -14 277 -22Q266 -23 254 -23Q124 -23 64 89Q26 159 26 261Q26 261 26 262V263Q26 417 115 492Q172 539 251 539Q359 539 412 458V729H495ZM265 461Q180 461 139 379Q119 341 114 290Q113 275 113 259V258Q113 136 183 82Q219 55 266 55Q348 55 387 136Q412 186 412 255V256Q412 387 340 438Q307 461 265 461Z"/>
+ <glyph unicode="e" glyph-name="e" horiz-adv-x="556" d="M513 234H127Q128 162 155 122Q198 54 281 54Q383 54 418 159H502Q480 38 376 -5Q332 -23 278 -23Q142 -23 79 87Q40 155 40 253V255Q40 413 134 490Q194 539 280 539Q395 539 460 457Q480 432 492 401Q513 347 513 235V234ZM129 302H423L424 308Q424 388 365 433Q327 462 279 462Q194 462 153 387Q133 351 129 302Z"/>
+ <glyph unicode="f" glyph-name="f" horiz-adv-x="278" d="M258 524V456H171V0H88V456H18V524H88V613Q88 701 162 725Q184 732 211 732Q234 732 258 727V658L229 659Q172 659 171 608V606V524H258Z"/>
+ <glyph unicode="g" glyph-name="g" horiz-adv-x="556" d="M412 524H489V86Q489 -68 448 -132Q441 -142 434 -151Q386 -211 277 -217Q266 -218 255 -218Q117 -218 67 -130Q50 -99 46 -60H131Q137 -99 162 -119L163 -120Q199 -148 258 -148Q339 -148 374 -99Q404 -58 404 43V44V71Q345 -11 272 -21Q261 -23 248 -23Q247 -23 245 -23Q162 -23 101 41Q98 44 95 47Q29 123 29 252V253Q29 404 112 483Q170 539 252 539Q350 539 412 448V524ZM261 462Q173 462 136 372Q116 325 116 259V258Q116 119 194 72Q223 54 262 54Q351 54 386 146Q404 192 404 254V255Q404 405 322 448Q295 462 261 462Z"/>
+ <glyph unicode="h" glyph-name="h" horiz-adv-x="556" d="M70 729H153V452Q207 522 273 535Q294 539 321 539Q431 539 470 465Q486 435 486 397V396V0H403V363Q403 418 369 442Q337 466 295 466Q211 466 174 389Q153 347 153 290V289V0H70V729Z"/>
+ <glyph unicode="i" glyph-name="i" horiz-adv-x="222" d="M150 524V0H67V524H150ZM150 729V624H66V729H150Z"/>
+ <glyph unicode="j" glyph-name="j" horiz-adv-x="222" d="M70 524H153V-109Q153 -212 25 -218H10L-18 -215V-144L2 -145Q54 -145 65 -113Q70 -99 70 -77V-76V524ZM153 729V624H70V729H153Z"/>
+ <glyph unicode="k" glyph-name="k" horiz-adv-x="500" d="M141 729V302L363 524H470L288 343L502 0H399L222 284L141 204V0H58V729H141Z"/>
+ <glyph unicode="l" glyph-name="l" horiz-adv-x="222" d="M152 729V0H68V729H152Z"/>
+ <glyph unicode="m" glyph-name="m" horiz-adv-x="833" d="M70 524H147V450Q201 526 275 537Q284 538 295 539H308Q397 539 440 474Q445 467 449 459Q503 524 566 535Q574 537 583 538H584Q596 539 610 539Q732 539 757 441Q762 419 762 394V393V0H678V361Q678 442 615 461Q599 466 581 466Q520 466 483 412Q458 376 458 330V329V0H374V361Q374 448 303 463L277 466Q215 466 178 410Q154 375 154 330V329V0H70V524Z"/>
+ <glyph unicode="n" glyph-name="n" horiz-adv-x="556" d="M70 524H147V436Q201 521 277 535Q297 539 321 539Q425 539 467 470Q486 439 487 398V396V0H404V363Q404 432 346 457Q324 466 296 466Q212 466 175 389Q154 347 154 290V289V0H70V524Z"/>
+ <glyph unicode="o" glyph-name="o" horiz-adv-x="556" d="M272 539Q424 539 481 410Q510 345 510 255V254Q510 87 408 16Q352 -23 273 -23Q129 -23 69 96Q36 162 36 257V258Q36 432 141 502Q196 539 272 539ZM273 462Q180 462 142 370Q123 323 123 259V258Q123 121 201 73Q232 54 273 54Q363 54 402 142Q423 189 423 254V255Q423 400 341 446Q311 462 273 462Z"/>
+ <glyph unicode="p" glyph-name="p" horiz-adv-x="556" d="M54 -218V524H131V445Q190 539 298 539Q425 539 485 428Q523 357 523 254V253Q523 99 434 24Q395 -9 343 -19Q322 -23 299 -23Q202 -23 139 54L138 55V-218H54ZM284 461Q201 461 162 377Q138 328 138 259V258Q138 133 207 81Q240 55 284 55Q368 55 409 134Q436 185 436 254V255Q436 382 365 435Q330 461 284 461Z"/>
+ <glyph unicode="q" glyph-name="q" horiz-adv-x="556" d="M495 -218H412V60Q355 -23 250 -23Q122 -23 63 85Q26 153 26 251V252Q26 413 117 490Q174 539 254 539Q361 539 421 454V524H495V-218ZM266 461Q182 461 140 380Q113 330 113 259V258Q113 136 183 82Q219 55 266 55Q348 55 388 136Q412 186 412 254V255Q412 386 341 437Q308 461 266 461Z"/>
+ <glyph unicode="r" glyph-name="r" horiz-adv-x="333" d="M69 524H146V429Q204 522 262 536Q275 539 289 539L321 536V451Q249 450 218 429Q215 427 212 425Q153 382 153 273V272V0H69V524Z"/>
+ <glyph unicode="s" glyph-name="s" horiz-adv-x="500" d="M438 378H350Q347 462 245 462Q163 462 140 413Q134 400 134 384V383Q134 338 200 316L231 308L311 289Q429 261 452 191Q459 170 459 144V143Q459 47 369 3Q317 -23 243 -23Q49 -23 35 139L34 156H122Q128 109 146 89Q179 54 250 54Q334 54 362 101Q372 116 372 135V136Q372 182 318 201Q309 204 299 207H298L291 209L213 228Q94 257 63 308Q54 324 50 345L47 379Q47 472 131 514Q180 539 248 539Q393 539 428 438Q438 411 438 378Z"/>
+ <glyph unicode="t" glyph-name="t" horiz-adv-x="278" d="M254 524V456H168V97Q168 59 190 53L214 50Q239 50 254 54V-16Q215 -23 186 -23Q97 -23 86 44Q85 60 85 60V456H14V524H85V668H168V524H254Z"/>
+ <glyph unicode="u" glyph-name="u" horiz-adv-x="556" d="M482 0H407V73Q351 -6 277 -19Q257 -23 232 -23Q125 -23 84 47Q65 78 65 119V120V524H148V153Q148 83 207 59Q228 50 255 50H256Q341 50 379 128Q399 170 399 226V227V524H482V0Z"/>
+ <glyph unicode="v" glyph-name="v" horiz-adv-x="500" d="M285 0H194L10 524H104L244 99L392 524H486L285 0Z"/>
+ <glyph unicode="w" glyph-name="w" horiz-adv-x="722" d="M554 0H459L353 411L252 0H158L6 524H98L205 116L305 524H407L510 116L614 524H708L554 0Z"/>
+ <glyph unicode="x" glyph-name="x" horiz-adv-x="500" d="M292 271L473 0H376L245 201L112 0H17L202 267L27 524H122L248 334L374 524H468L292 271Z"/>
+ <glyph unicode="y" glyph-name="y" horiz-adv-x="500" d="M388 524H478L245 -110Q223 -167 188 -193Q154 -218 110 -218Q79 -218 54 -205V-130Q81 -136 98 -136Q143 -136 161 -96Q163 -91 165 -85L197 -2L20 524H109L243 116L388 524Z"/>
+ <glyph unicode="z" glyph-name="z" horiz-adv-x="500" d="M443 524V450L132 73H457V0H31V75L344 451H52V524H443Z"/>
+ </font>
+ </defs>
+ <g font-size="30" font-family="FreeSansSVG">
+ <text x="50" y="70" id="act">
+ <a xlink:href="../images/linkingToc-t.svg">Visited</a>
+ </text>
+ <text x="250" y="70">
+ <a xlink:href="http://example.com/not-there">Unvisited</a>
+ </text>
+ <text x="50" y="140">
+ <a xlink:href="../images/linkingToc-t.svg">Hover me</a>
+ </text>
+ <text x="250" y="140">And me, too!</text>
+ <text font-size="60" x="80" y="250" id="sel">Select me</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-07-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-07-f-isvalid.html
new file mode 100644
index 0000000000..e08d2febdf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-07-f-isvalid.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-css-07-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-css-07-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-css-07-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect x="10" y="10" height="100" width="200" fill="green" />
+ <rect x="10" y="10" height="100" width="200" style="visibility: hidden;" fill="red" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-08-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-08-f-isvalid.html
new file mode 100644
index 0000000000..bbdc60d00a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-08-f-isvalid.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-css-08-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-css-08-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-css-08-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <style><![CDATA[
+ path
+ {
+ visibility: hidden;
+ }
+ g svg circle
+ {
+ visibility: hidden;
+ }
+ g > ellipse
+ {
+ visibility: hidden;
+ }
+ ellipse + circle
+ {
+ visibility: hidden;
+ }
+ [id=testAttributeSelector]
+ {
+ visibility: hidden;
+ }
+ #testIdSelector
+ {
+ visibility: hidden;
+ }
+ #testPseudoClassSelector:first-child
+ {
+ visibility: hidden;
+ }
+ .reference { visibility: visible !important }
+ ]]>
+ </style>
+
+ <path class="reference" d="M 50 125 L 150 125 L 100 75 z" fill="lime" visibility="hidden"/>
+ <path id="testTypeSelector" d="M 50 125 L 150 125 L 100 75 z" fill="red" />
+ <g>
+ <svg width="200" height="200">
+ <circle class="reference" cx="50" cy="175" r="25" fill="lime" visibility="hidden"/>
+ <circle id="testDescendantSelector" cx="50" cy="175" r="25" fill="red" />
+ </svg>
+ </g>
+ <g id="testParentContainer">
+ <ellipse class="reference" cx="160" cy="200" rx="25" ry="45" fill="lime" visibility="hidden"/>
+ <circle class="reference" cx="100" cy="300" r="40" fill="lime" visibility="hidden"/>
+ <ellipse id="testChildSelector" cx="160" cy="200" rx="25" ry="45" fill="red" />
+ <circle id="testAdjacentSiblingSelector" cx="100" cy="300" r="40" fill="red" />
+ </g>
+ <circle class="reference" cx="300" cy="80" r="35" fill="lime" visibility="hidden"/>
+ <circle id="testAttributeSelector" cx="300" cy="80" r="35" fill="red" />
+
+ <circle class="reference" cx="400" cy="140" r="50" fill="lime" visibility="hidden"/>
+ <circle id="testIdSelector" cx="400" cy="140" r="50" fill="red" />
+
+ <rect class="reference" x="270" y="240" width="150" height="80" fill="lime" visibility="hidden"/>
+ <g>
+ <rect id="testPseudoClassSelector" x="270" y="240" width="150" height="80" fill="red" />
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g> -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-09-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-09-f-isvalid.html
new file mode 100644
index 0000000000..3948d56820
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-09-f-isvalid.html
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-css-09-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-css-09-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-css-09-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-size="18">
+ <style><![CDATA[
+ @import url("../images/selector-types-visibility-hidden.css");]]>
+ </style>
+ <path class="reference" d="M 50 125 L 150 125 L 100 75 z" fill="blue" visibility="hidden"/>
+ <path id="testTypeSelector" d="M 50 125 L 150 125 L 100 75 z" fill="red" />
+ <g>
+ <svg width="200" height="200">
+ <circle class="reference" cx="50" cy="175" r="25" fill="blue" visibility="hidden"/>
+ <circle id="testDescendantSelector" cx="50" cy="175" r="25" fill="red" />
+ </svg>
+ </g>
+ <g id="testParentContainer">
+ <ellipse class="reference" cx="160" cy="200" rx="25" ry="45" fill="blue" visibility="hidden"/>
+ <circle class="reference" cx="100" cy="300" r="40" fill="blue" visibility="hidden"/>
+ <ellipse id="testChildSelector" cx="160" cy="200" rx="25" ry="45" fill="red" />
+ <circle id="testAdjacentSiblingSelector" cx="100" cy="300" r="40" fill="red" />
+ </g>
+ <circle class="reference" cx="300" cy="80" r="35" fill="blue" visibility="hidden"/>
+ <circle id="testAttributeSelector" cx="300" cy="80" r="35" fill="red" />
+ <circle class="reference" cx="400" cy="140" r="50" fill="blue" visibility="hidden"/>
+ <circle id="testIdSelector" cx="400" cy="140" r="50" fill="red" />
+ <rect class="reference" x="270" y="240" width="150" height="80" fill="blue" visibility="hidden"/>
+ <g>
+ <rect id="testPseudoClassSelector" x="270" y="240" width="150" height="80" fill="red" />
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-10-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-10-f-isvalid.html
new file mode 100644
index 0000000000..e1c9b20766
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-css-10-f-isvalid.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-css-10-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-css-10-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-css-10-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g fill="orange">
+ <circle id="a" FiLl="red" cx="140" cy="100" r="50"/>
+ </g>
+ <circle id="b" fill="red" style="FiLl: oRaNgE" cx="340" cy="100" r="50"/>
+ <circle id="c" fill="blue" cx="140" cy="220" r="50"/>
+ <circle id="d" fill="blue" cx="340" cy="220" r="50"/>
+
+ <style>
+ @import url("../images/case-insensitivity.css");
+ #c {fill: red }
+ #c {FiLl: oRaNgE }
+ </style>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-elem-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-elem-01-b-isvalid.html
new file mode 100644
index 0000000000..6d59038b16
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-elem-01-b-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-elem-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-elem-01-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-elem-01-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='30'>Test that &lt;style type=""> is honored</text>
+
+ <rect id='r1' x='10' y='50' width='50' height='50' fill='red'/>
+ <rect id='r2' x='10' y='110' width='50' height='50' fill='green'/>
+ <text x='70' y='78'>No type="" attribute</text>
+ <text x='70' y='138'>Rubbish type="" attribute</text>
+
+ <style>#r1 { fill: green }</style>
+ <style type='text/some-unknown-styling-language'>#r2 { fill: red }</style>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-inherit-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-inherit-01-b-isvalid.html
new file mode 100644
index 0000000000..a3709ae708
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-inherit-01-b-isvalid.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-inherit-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-inherit-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-inherit-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g fill="yellow">
+ <g stroke="#555">
+ <ellipse rx="90" ry="60" cx="330" cy="140"/>
+ </g>
+ </g>
+ <radialGradient id="ygw" stop-color="green">
+ <stop offset="0%" stop-color="yellow"/>
+ <stop offset="50%" stop-color="inherit"/>
+ <stop offset="100%" stop-color="white"/>
+ </radialGradient>
+ <rect width="180" height="120" x="40" y="20" stroke="none" fill="url(#ygw)"/>
+ <radialGradient id="yrw" color="#700">
+ <stop offset="0%" stop-color="yellow"/>
+ <stop offset="50%" stop-color="currentColor"/>
+ <stop offset="100%" stop-color="white"/>
+ </radialGradient>
+ <rect width="180" height="120" x="40" y="160" stroke="none" fill="url(#yrw)"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-01-t-isvalid.html
new file mode 100644
index 0000000000..329792c63f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-01-t-isvalid.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-pres-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-pres-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-pres-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <circle r="80" cx="240" cy="150" fill="blue" />
+ <rect width="200" height="160" x="140" y="70" fill="red !important" />
+ <rect width="200" height="160" x="140" y="70" fill="none" stroke="lime" stroke-width="4" />
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-02-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-02-f-novalid.html
new file mode 100644
index 0000000000..35fa750d41
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-02-f-novalid.html
@@ -0,0 +1,185 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-pres-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-pres-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-pres-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='20'>Testing inapplicable presentation attributes</text>
+
+ <g visibility='hidden'>
+ <path id="path" d="M0,0"/>
+ <image id='image' xlink:href='../images/20x20.png' width='10' height='10' fill='rgb(0, 0, 255)'/>
+ <rect id='rect' width='10' height='10' font-size='123px'/>
+ <circle id='circle' r='10' font-style='italic'/>
+ <ellipse id='ellipse' rx='10' ry='5' font-variant='small-caps'/>
+ <polyline id='polyline' points='0,0 10,10' letter-spacing='20px'/>
+ <text id='text' stop-color='rgb(0, 255, 0)'>a<tspan id='tspan' stop-opacity='0.5'>b</tspan><tref id='tref' xlink:href='#tspan' flood-color='rgb(255, 0, 0)'/><textPath id='textPath' xlink:href='#path' flood-opacity='0.25'/><altGlyph id='altGlyph' glyphRef='blah' color-interpolation-filters='auto'>c</altGlyph></text>
+ <linearGradient id='linearGradient' display='block'><stop id='stop' offset='0' fill-rule='evenodd'/></linearGradient>
+ <radialGradient id='radialGradient' visibility='hidden'><stop offset='0'/></radialGradient>
+ <clipPath id='clipPath' lighting-color='rgb(255, 255, 255)'/>
+ </g>
+
+ <g font-size='14'>
+ <rect id='r1' x='10' y='25' width='20' height='20'/>
+ <text x='40' y='40'>fill on image</text>
+
+ <rect id='r2' x='10' y='55' width='20' height='20'/>
+ <text x='40' y='70'>stop-opacity on tspan</text>
+
+ <rect id='r3' x='10' y='85' width='20' height='20'/>
+ <text x='40' y='100'>font-size on rect</text>
+
+ <rect id='r4' x='10' y='115' width='20' height='20'/>
+ <text x='40' y='130'>font-style on circle</text>
+
+ <rect id='r5' x='10' y='145' width='20' height='20'/>
+ <text x='40' y='160'>stop-color on text</text>
+
+ <rect id='r6' x='10' y='175' width='20' height='20'/>
+ <text x='40' y='190'>font-variant on ellipse</text>
+
+ <rect id='r7' x='10' y='205' width='20' height='20'/>
+ <text x='40' y='220'>letter-spacing on polyline</text>
+
+ <rect id='r11' x='250' y='25' width='20' height='20'/>
+ <text x='280' y='40'>flood-color on tref</text>
+
+ <rect id='r12' x='250' y='55' width='20' height='20'/>
+ <text x='280' y='70'>flood-opacity on textPath</text>
+
+ <rect id='r13' x='250' y='85' width='20' height='20'/>
+ <text x='280' y='100'>clr-intp-filters on altGlyph</text>
+
+ <rect id='r14' x='250' y='115' width='20' height='20'/>
+ <text x='280' y='130'>display on linearGradient</text>
+
+ <rect id='r15' x='250' y='145' width='20' height='20'/>
+ <text x='280' y='160'>fill-rule on stop</text>
+
+ <rect id='r16' x='250' y='175' width='20' height='20'/>
+ <text x='280' y='190'>visibility on radialGradient</text>
+
+ <rect id='r17' x='250' y='205' width='20' height='20'/>
+ <text x='280' y='220'>lighting-color on clipPath</text>
+ </g>
+
+ <script><![CDATA[
+ function $(x) { return document.getElementById(x) }
+ function decimalToHex(d) {
+ var hex = Number(d).toString(16);
+ while (hex.length < 2) {
+ hex = "0" + hex;
+ }
+ return hex;
+ }
+
+ function checkSVGColor(e, p, r, g, b) {
+ var v;
+ try {
+ var cssstyledecl = document.defaultView.getComputedStyle(e,null);
+ var v = cssstyledecl.getPropertyValue(p);
+ var longhex = "#" + decimalToHex(r) + decimalToHex(g) + decimalToHex(b);
+ return v == "rgb(" + r + ", " + g + ", " + b + ")" ||
+ v == "rgba(" + r + ", " + g + ", " + b + ", 1)" ||
+ v == longhex ||
+ v == longhex.toUpperCase();
+ } catch (ex) {
+ }
+ return false;
+ }
+
+ function checkFloat(e, p, f) {
+ var v;
+ try {
+ var cssstyledecl = document.defaultView.getComputedStyle(e,null);
+ v = cssstyledecl.getPropertyValue(p);
+ return parseFloat(v) == f;
+ } catch (ex) {
+ }
+ return false;
+ }
+
+ function checkPx(e, p, f) {
+ var v;
+ try {
+ var cssstyledecl = document.defaultView.getComputedStyle(e,null);
+ v = cssstyledecl.getPropertyValue(p);
+ return v == f;
+ } catch (ex) {
+ }
+ return false;
+ }
+
+ function checkIdent(e, p, i) {
+ var v;
+ i = i.toLowerCase();
+ try {
+ var cssstyledecl = document.defaultView.getComputedStyle(e,null);
+ v = cssstyledecl.getPropertyValue(p);
+ return v.toLowerCase() == i;
+ } catch (ex) {
+ }
+ return false;
+ }
+
+ function report(n, b) {
+ $('r' + n).setAttribute('fill', b ? 'green' : 'red');
+ }
+
+ report(1, checkSVGColor($('image'), 'fill', 0, 0, 255));
+ report(2, checkFloat($('tspan'), 'stop-opacity', 0.5));
+ report(3, checkPx($('rect'), 'font-size', '123px'));
+ report(4, checkIdent($('circle'), 'font-style', 'italic'));
+ report(5, checkSVGColor($('text'), 'stop-color', 0, 255, 0));
+ report(6, checkIdent($('ellipse'), 'font-variant', 'small-caps'));
+ report(7, checkPx($('polyline'), 'letter-spacing', '20px'));
+
+ report(11, checkSVGColor($('tref'), 'flood-color', 255, 0, 0));
+ report(12, checkFloat($('textPath'), 'flood-opacity', 0.25));
+ report(13, checkIdent($('altGlyph'), 'color-interpolation-filters', 'auto'));
+ report(14, checkIdent($('linearGradient'), 'display', 'block'));
+ report(15, checkIdent($('stop'), 'fill-rule', 'evenodd'));
+ report(16, checkIdent($('radialGradient'), 'visibility', 'hidden'));
+ report(17, checkSVGColor($('clipPath'), 'lighting-color', 255, 255, 255));
+ ]]></script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+ -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-03-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-03-f-isvalid.html
new file mode 100644
index 0000000000..117eb41ad5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-03-f-isvalid.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-pres-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-pres-03-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-pres-03-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <rect x="10" y="10" height="100" width="200" style="fill: green;" fill="red" />
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-04-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-04-f-isvalid.html
new file mode 100644
index 0000000000..ef28674e3a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-04-f-isvalid.html
@@ -0,0 +1,93 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-pres-04-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-pres-04-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-pres-04-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <style><![CDATA[
+ path
+ {
+ fill: green;
+ }
+ g svg circle
+ {
+ fill: green;
+ }
+ g > ellipse
+ {
+ fill: green;
+ }
+ ellipse + circle
+ {
+ fill: green;
+ }
+ [id=testAttributeSelector]
+ {
+ fill: green;
+ }
+ #testIdSelector
+ {
+ fill: green;
+ }
+ #testPseudoClassSelector:first-child
+ {
+ fill: green;
+ }]]>
+ </style>
+
+ <path id="testTypeSelector" d="M 50 125 L 150 125 L 100 75 z" fill="red" />
+ <g>
+ <svg>
+ <circle id="testDescendantSelector" cx="50" cy="175" r="25" fill="red" />
+ </svg>
+ </g>
+ <g id="testParentContainer">
+ <ellipse id="testChildSelector" cx="160" cy="200" rx="25" ry="45" fill="red" />
+ <circle id="testAdjacentSiblingSelector" cx="100" cy="300" r="40" fill="red" />
+ </g>
+ <circle id="testAttributeSelector" cx="300" cy="80" r="35" fill="red" />
+ <circle id="testIdSelector" cx="400" cy="140" r="50" fill="red" />
+ <g>
+ <rect id="testPseudoClassSelector" x="270" y="240" width="150" height="80" fill="red" />
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-05-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-05-f-isvalid.html
new file mode 100644
index 0000000000..a0846c013d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/styling-pres-05-f-isvalid.html
@@ -0,0 +1,66 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>styling-pres-05-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: styling-pres-05-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: styling-pres-05-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <style><![CDATA[
+ @import url("../images/selector-types-fill-green.css");]]>
+ </style>
+
+ <path id="testTypeSelector" d="M 50 125 L 150 125 L 100 75 z" fill="red" />
+ <g>
+ <svg>
+ <circle id="testDescendantSelector" cx="50" cy="175" r="25" fill="red" />
+ </svg>
+ </g>
+ <g id="testParentContainer">
+ <ellipse id="testChildSelector" cx="160" cy="200" rx="25" ry="45" fill="red" />
+ <circle id="testAdjacentSiblingSelector" cx="100" cy="300" r="40" fill="red" />
+ </g>
+ <circle id="testAttributeSelector" cx="300" cy="80" r="35" fill="red" />
+ <circle id="testIdSelector" cx="400" cy="140" r="50" fill="red" />
+ <g>
+ <rect id="testPseudoClassSelector" x="270" y="240" width="150" height="80" fill="red" />
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/svgdom-over-01-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/svgdom-over-01-f-novalid.html
new file mode 100644
index 0000000000..71108691bd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/svgdom-over-01-f-novalid.html
@@ -0,0 +1,190 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>svgdom-over-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: svgdom-over-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: svgdom-over-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect id="r" width="1" height="1"/>
+ <stop id="s"/>
+ <feConvolveMatrix id="c"/>
+ <image id="i" xlink:href="http://example.org/image.jpg" width="1" height="1"/>
+ <radialGradient id="g"/>
+ <text id="t"/>
+ <text id="tt">sometext</text>
+ <marker id="m"/>
+ <svg id="v"/>
+ <filter id="f"/>
+ <polygon id="p"/>
+ </defs>
+
+ <script><![CDATA[
+ var ypos = 50;
+ var r = document.getElementById("r");
+ var s = document.getElementById("s");
+ var c = document.getElementById("c");
+ var i = document.getElementById("i");
+ var g = document.getElementById("g");
+ var t = document.getElementById("t");
+ var tt = document.getElementById("tt");
+ var m = document.getElementById("m");
+ var v = document.getElementById("v");
+ var f = document.getElementById("f");
+ var p = document.getElementById("p");
+
+ i.removeAttributeNS("http://www.w3.org/1999/xlink", "href");
+
+ function Subtest(str, code)
+ {
+ this.str = str;
+ this.code = code ? code : str;
+ }
+
+ Subtest.prototype.getStr = function()
+ {
+ return this.str;
+ }
+
+ Subtest.prototype.getCode = function()
+ {
+ return this.code;
+ }
+
+ function verify(str, result)
+ {
+ var g = document.createElementNS("http://www.w3.org/2000/svg", "g");
+ var r = document.createElementNS("http://www.w3.org/2000/svg", "rect");
+ var t = document.createElementNS("http://www.w3.org/2000/svg", "text");
+ t.appendChild(document.createTextNode(str + ": " + (result ? "PASSED" : "FAILED")));
+ t.setAttribute("class", "result");
+ t.setAttribute("font-size", "9px");
+ t.setAttribute("fill", "black");
+ t.setAttribute("x", "10");
+ t.setAttribute("y", "7");
+ r.setAttribute("y", "1");
+ r.setAttribute("width", "5");
+ r.setAttribute("height", "5");
+ g.setAttribute("fill", result ? "lime" : "red");
+ g.appendChild(r);
+ g.appendChild(t);
+ g.setAttribute("transform", "translate(10 " + ypos + ")");
+ ypos += 10;
+ document.getElementById("test-body-content").appendChild(g);
+ if(result)
+ passes++;
+ }
+
+ var passes = 0;
+ var tests = [
+ // test SVGLength
+ new Subtest("r.x.baseVal.value == 0"),
+ new Subtest("r.x.baseVal.unitType == 1 (SVG_LENGTHTYPE_NUMBER)", "r.x.baseVal.unitType == 1"),
+ new Subtest("v.width.baseVal.valueInSpecifiedUnits == 100"),
+ new Subtest("v.width.baseVal.unitType == 2 (SVG_LENGTHTYPE_PERCENTAGE)", "v.width.baseVal.unitType == 2"),
+ new Subtest("tt.textLength.baseVal.value == tt.getComputedTextLength()"),
+
+ // test SVGAnimatedNumber
+ new Subtest("s.offset.baseVal == 0"),
+
+ // test SVGAnimatedBoolean
+ new Subtest("c.preserveAlpha.baseVal == false"),
+
+ // test SVGAnimatedString / DOMString
+ new Subtest("c.className.baseVal == \"\""),
+ new Subtest("i.href.baseVal == \"\""),
+
+ // test SVGStringList
+ new Subtest("i.requiredFeatures.numberOfItems == 0"),
+
+ // SVGAnimatedNumberList
+ new Subtest("c.kernelMatrix.baseVal.numberOfItems == 0"),
+
+ // SVGAnimatedLengthList
+ new Subtest("t.x.baseVal.numberOfItems == 0"),
+
+ // SVGAnimatedPointsList / SVGPointList
+ new Subtest("p.points.numberOfItems == 0"),
+
+ // SVGAnimatedEnumeration
+ new Subtest("g.gradientUnits.baseVal == 2 (SVG_UNIT_TYPE_OBJECTBOUNDINGBOX)", "g.gradientUnits.baseVal == 2"),
+
+ // SVGAnimatedInteger
+ new Subtest("f.filterResX.baseVal == 0"),
+
+ // SVGAnimatedAngle
+ new Subtest("m.orientAngle.baseVal.value == 0"),
+ new Subtest("m.orientAngle.baseVal.unitType == 1 (SVG_ANGLETYPE_UNSPECIFIED)", "m.orientAngle.baseVal.unitType == 1"),
+
+ // SVGAnimatedRect / SVGRect
+ new Subtest("v.viewBox.baseVal.[x,y,width,height] == 0",
+ "v.viewBox.baseVal.x == 0 && v.viewBox.baseVal.y == 0 && v.viewBox.baseVal.width == 0 && v.viewBox.baseVal.height == 0"),
+
+ // SVGAnimatedTransformList
+ new Subtest("t.transform.baseVal.numberOfItems == 0"),
+
+ // SVGAnimatedPreserveAspectRatio / SVGPreserveAspectRatio
+ new Subtest("v.preserveAspectRatio.baseVal.align == 6 (SVG_PRESERVEASPECTRATIO_XMIDYMID)", "v.preserveAspectRatio.baseVal.align == 6"),
+ new Subtest("v.preserveAspectRatio.baseVal.meetOrSlice == 1 (SVG_MEETORSLICE_MEET)", "v.preserveAspectRatio.baseVal.meetOrSlice == 1"),
+
+ // SVGZoomAndPan
+ new Subtest("v.zoomAndPan == 2 (SVG_ZOOMANDPAN_MAGNIFY)", "v.zoomAndPan == 2")
+ ];
+
+ try {
+ for (var k = 0; k < tests.length; k++)
+ {
+ try
+ {
+ verify(tests[k].getStr(), eval(tests[k].getCode()));
+ }
+ catch(e)
+ {
+ verify(tests[k].getStr(), false);
+ }
+ }
+ }
+ finally
+ {
+ verify("Test status", tests.length == passes);
+ }
+ ]]></script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-align-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-align-01-b-isvalid.html
new file mode 100644
index 0000000000..edfd5a317f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-align-01-b-isvalid.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-align-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-align-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-align-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="34" x="5" y="40">Test 'text-anchor' (horizontal)</text>
+ <g id="text-anchor" font-size="14">
+ <g transform="translate(230,130)">
+ <line stroke="black" x2="50"/>
+ <circle r="3"/>
+ <text font-size="30" fill="fuchsia">text-anchor:none</text>
+ </g>
+ <g transform="translate(230,180)">
+ <line stroke="black" x2="50"/>
+ <circle r="3"/>
+ <text font-size="30" text-anchor="start" fill="fuchsia">text-anchor:start</text>
+ </g>
+ <g transform="translate(230,230)">
+ <line stroke="black" x1="-25" x2="25"/>
+ <circle r="3"/>
+ <text font-size="30" text-anchor="middle" fill="green">text-anchor:middle</text>
+ </g>
+ <g transform="translate(230,280)">
+ <line stroke="black" x1="-50" x2="0"/>
+ <circle r="3"/>
+ <text font-size="30" text-anchor="end" fill="blue">text-anchor:end</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-align-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-align-02-b-isvalid.html
new file mode 100644
index 0000000000..098c04096f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-align-02-b-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-align-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-align-02-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-align-02-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="34" x="5" y="40">Test 'baseline-shift' (horizontal)</text>
+ <g id="baseline-shift" font-size="30" transform="translate(15,120)">
+ <text y="0">
+ Normal<tspan baseline-shift="7" fill="fuchsia">baseline-shift:7</tspan>text
+ </text>
+ <text y="70">
+ Normal<tspan baseline-shift="-70%" fill="fuchsia">baseline-shift:-70%</tspan>text
+ </text>
+ <text y="140">
+ Normal<tspan baseline-shift="sub" fill="fuchsia">sub</tspan><tspan baseline-shift="super" fill="green">super</tspan><tspan baseline-shift="baseline" fill="blue">te</tspan>xt
+ </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-align-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-align-03-b-isvalid.html
new file mode 100644
index 0000000000..c6e84fa2f6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-align-03-b-isvalid.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-align-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-align-03-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-align-03-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="5" y="40" font-size="40" fill="black">Test of 'text-anchor'</text>
+
+ <!-- Test cases -->
+ <line x1="225" y1="75" x2="225" y2="225" stroke="fuchsia"/>
+ <g font-size="30" fill="blue">
+ <text x="225" y="110" text-anchor="end">
+ Begin with "end",<tspan x="225" y="160" xml:space="preserve" text-anchor="middle"> switch to "middle" in a tspan, </tspan><tspan x="225" y="210" text-anchor="start">and "start" ends it.</tspan>
+ </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-align-04-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-align-04-b-isvalid.html
new file mode 100644
index 0000000000..80cb910d30
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-align-04-b-isvalid.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-align-04-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-align-04-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-align-04-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F" font-weight="700">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSansBold.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="5" y="40" font-size="36" fill="black">Test of 'text-anchor'</text>
+ <defs>
+ <text id="tref-internal-reference">end text tref</text>
+ <path id="myPath" d="M -5 260 220 260"/>
+ </defs>
+
+ <text x="20" y="80" font-size="30" fill="black">Tspan, tref, toap</text>
+ <!-- Test cases -->
+ <line x1="220" y1="120" x2="220" y2="260" stroke="fuchsia"/>
+ <g font-size="16" fill="blue">
+ <text x="220" y="140" text-anchor="start">
+ start text <tspan xml:space="preserve" fill="fuchsia"> pink tspan</tspan>
+ </text>
+ <text x="220" y="180" text-anchor="middle">
+ middle text <tspan font-weight="bold" xml:space="preserve"> bold tspan</tspan>
+ </text>
+ <text x="220" y="220" text-anchor="end">
+ <tref xlink:href="#tref-internal-reference"/>
+ </text>
+ <text text-anchor="end">
+ <textPath text-anchor="end" startOffset="100%" xlink:href="#myPath">Text-anchor: end text on path</textPath>
+ </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-align-05-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-align-05-b-isvalid.html
new file mode 100644
index 0000000000..98fba0d291
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-align-05-b-isvalid.html
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-align-05-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-align-05-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-align-05-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="40" x="5" y="40">Test 'text-anchor' (vertical)</text>
+ <g writing-mode="tb" glyph-orientation-vertical="0">
+ <g id="text-anchor" font-family="Arial" font-size="30" transform="translate(160,150)">
+ <g transform="translate(0,0)">
+ <circle r="3"/>
+ <text text-anchor="start" fill="fuchsia">start</text>
+ </g>
+ <g transform="translate(50,0)">
+ <circle r="3"/>
+ <text text-anchor="middle" fill="green">middle</text>
+ </g>
+ <g transform="translate(100,0)">
+ <circle r="3"/>
+ <text text-anchor="end" fill="blue">end</text>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-align-06-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-align-06-b-isvalid.html
new file mode 100644
index 0000000000..3ceb6a540d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-align-06-b-isvalid.html
@@ -0,0 +1,62 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-align-06-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-align-06-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-align-06-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="36" x="0" y="40">Test 'baseline-shift' (vertic.)</text>
+
+ <g writing-mode="tb" glyph-orientation-vertical="0">
+ <g id="baseline-shift" font-family="Arial" font-size="24" transform="translate(90,60)">
+ <text x="0">
+ te<tspan baseline-shift="7" fill="fuchsia">7</tspan>xt
+ </text>
+ <text x="80">
+ te<tspan baseline-shift="-70%" fill="fuchsia">-70%</tspan>xt
+ </text>
+ <text x="180">
+ te<tspan baseline-shift="sub" fill="fuchsia">sub</tspan><tspan baseline-shift="baseline" fill="blue">x</tspan>t
+ </text>
+ <text x="260">
+ te<tspan baseline-shift="super" fill="green">super</tspan><tspan baseline-shift="baseline" fill="blue">x</tspan>t
+ </text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-align-07-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-align-07-t-isvalid.html
new file mode 100644
index 0000000000..865da7e53a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-align-07-t-isvalid.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-align-07-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-align-07-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-align-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="'Arial Unicode MS',Georgia,'Times New Roman',Times,'MS Mincho',serif" font-size="30">
+ <!--
+ The dominant baseline should be alphabetic, so the 'ab' will be sitting on the
+ blue line, the japanese glyphs will be on the ideographic baseline and '&#2339;'
+ is a devangari character and will use the hanging baseline. The smaller versions
+ of the characters should be aligned to the same baselines. So 'ab' on the alphabetic
+ base line, the ideographic chars slightly below the line and the devangari should be
+ hanging from the hanging baseline.
+ -->
+ <text x="50" y="100" font-size="50">
+ a犜ण<tspan font-size="25">a犜ण</tspan><tspan font-size="10">a犜ण</tspan>
+ </text>
+ <line x1="50" y1="70" x2="400" y2="70" stroke-width="1" stroke="green"/>
+ <text x="320" y="80" font-size="10" fill="green">
+ hanging base line
+ </text>
+ <line x1="50" y1="100" x2="400" y2="100" stroke-width="1" stroke="blue"/>
+ <text x="310" y="110" font-size="10" fill="blue">
+ alphabetic base line
+ </text>
+ <line x1="50" y1="103" x2="250" y2="103" stroke-width="1" stroke="fuchsia"/>
+ <text x="155" y="113" font-size="10" fill="fuchsia">
+ ideographic base line
+ </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-align-08-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-align-08-b-isvalid.html
new file mode 100644
index 0000000000..48ee3df86a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-align-08-b-isvalid.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-align-08-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-align-08-b-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-align-08-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font-face font-family="SVGBase">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/Baselines/Tribase.svg#Tribase"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <style>
+ @font-face {
+ font-family: Tribase ;
+ src: url(woffs/Tribase.woff) format("woff");
+ }
+ </style>
+ <g font-family="SVGBase, Tribase">
+ <!--
+ The dominant baseline should be alphabetic, so the 'ab' will be sitting on the
+ blue line, the japanese glyphs will be on the ideographic baseline and '&#2339;'
+ is a devangari character and will use the hanging baseline. The smaller versions
+ of the characters should be aligned to the same baselines. So 'a' on the blue
+ line, the ideographic chars slightly below the line and the devangari should be
+ hanging from the hanging baseline.
+ -->
+ <text x="50" y="200" font-size="120">
+ a犜ण<tspan font-size="75">a犜ण</tspan><tspan font-size="30">a犜ण</tspan>
+ </text>
+ <line x1="50" y1="200" x2="433" y2="200" stroke-width="1" stroke="blue"/>
+ <line x1="50" y1="230" x2="433" y2="230" stroke-width="1" stroke="fuchsia"/>
+ <line x1="50" y1="95" x2="433" y2="95" stroke-width="1" stroke="green"/>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-altglyph-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-altglyph-01-b-isvalid.html
new file mode 100644
index 0000000000..f339b216b4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-altglyph-01-b-isvalid.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-altglyph-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-altglyph-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-altglyph-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g stroke-miterlimit="4">
+ <text font-family="Arial" font-size="40" x="5" y="50">Test 'altGlyph' facilities</text>
+ <text font-family="Arial" font-size="30" x="5" y="90">and many-to-many chars to glyphs</text>
+ <defs>
+ <font id="Font1" horiz-adv-x="5">
+ <font-face font-family="HappySad" font-weight="bold" font-style="normal" units-per-em="8" cap-height="8" x-height="4" ascent="8" descent="2" alphabetic="0" mathematical="4" ideographic="-2" hanging="8"/>
+ <missing-glyph d="M1,3h2v2h-2z"/>
+ <glyph id="A1" d="M0,0 L2,8 L4,0 M0,4 C1,3 3,3 4,4"/>
+ <glyph id="H1" d="M0,0 V8 M4,0 V8 M0,4 C1,3 3,3 4,4"/>
+ <glyph id="P1" d="M0,0 V8 H2 C3,8 4,7 4,6 V4 M0,4 C1,3 3,3 4,4"/>
+ <glyph id="S1" d="M0,4 V6 C0,7 1,8 2,8 C3,8 4,7 4,6 M4,4 V2 C4,1 3,0 2,0 C1,0 0,1 0,2 M0,4 C1,3 3,3 4,4"/>
+ <glyph id="Y1" d="M0,8 V4 M4,8 V4 M2,4 V0 M0,4 C1,3 3,3 4,4"/>
+ <glyph id="A2" d="M0,0 L2,8 L4,0 M0,4 C1,5 3,5 4,4"/>
+ <glyph id="H2" d="M0,0 V8 M4,0 V8 M0,4 C1,5 3,5 4,4"/>
+ <glyph id="P2" d="M0,0 V8 H2 C3,8 4,7 4,6 V4 M0,4 C1,5 3,5 4,4"/>
+ <glyph id="S2" d="M0,4 V6 C0,7 1,8 2,8 C3,8 4,7 4,6 M4,4 V2 C4,1 3,0 2,0 C1,0 0,1 0,2 M0,4 C1,5 3,5 4,4"/>
+ <glyph id="Y2" d="M0,8 V4 M4,8 V4 M2,4 V0 M0,4 C1,5 3,5 4,4"/>
+ <glyph id="SS" unicode="SS" horiz-adv-x="6" d="M0,4 V6 C0,7 0,8 1,8 C2,8 2,7 2,6 M2,4 V2 C2,1 2,0 1,0 C0,0 0,1 0,2 M3,4 V6 C3,7 3,8 4,8 C5,8 5,7 5,6 M5,4 V2 C5,1 5,0 4,0 C3,0 3,1 3,2 M0,4 H5"/>
+ <glyph id="A" unicode="A" d="M0,0 L2,8 L4,0 M0,4 H4"/>
+ <glyph id="D" unicode="D" d="M0,0 V8 C3,8 4,7 4,4 C4,1 3,0 0,0z"/>
+ <glyph id="S" unicode="S" d="M0,4 V6 C0,7 1,8 2,8 C3,8 4,7 4,6 M4,4 V2 C4,1 3,0 2,0 C1,0 0,1 0,2 M0,4 H4"/>
+ <glyph id="Y" unicode="Y" d="M0,8 V4 M4,8 V4 M2,4 V0 M0,4 H4"/>
+ </font>
+ <altGlyphDef id="Afrown">
+ <glyphRef xlink:href="#A2"/>
+ </altGlyphDef>
+ <altGlyphDef id="Asmile">
+ <glyphRef xlink:href="#A1"/>
+ </altGlyphDef>
+ <altGlyphDef id="Hsmile">
+ <glyphRef xlink:href="#H1"/>
+ </altGlyphDef>
+ <altGlyphDef id="Psmile">
+ <glyphRef xlink:href="#P1"/>
+ </altGlyphDef>
+ <altGlyphDef id="Sfrown">
+ <glyphRef xlink:href="#S2"/>
+ </altGlyphDef>
+ <altGlyphDef id="Ysmile">
+ <glyphRef xlink:href="#Y1"/>
+ </altGlyphDef>
+ </defs>
+ <g font-family="HappySad" font-size="60" fill="none" stroke-width="5">
+ <text x="140" y="190" stroke="fuchsia">
+<altGlyph xlink:href="#Hsmile">H</altGlyph>
+<altGlyph xlink:href="#Asmile">A</altGlyph>
+<altGlyph xlink:href="#Psmile">P</altGlyph>
+<altGlyph xlink:href="#Psmile">P</altGlyph>
+<altGlyph xlink:href="#Ysmile">Y</altGlyph>
+ </text>
+ <text x="50" y="270" stroke="green">
+ <altGlyph xlink:href="#Sfrown">S</altGlyph><altGlyph xlink:href="#Afrown">A</altGlyph>D
+ </text>
+ <text x="280" y="270" stroke="blue">SASSY</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-altglyph-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-altglyph-02-b-isvalid.html
new file mode 100644
index 0000000000..01a47f922e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-altglyph-02-b-isvalid.html
@@ -0,0 +1,323 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-altglyph-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-altglyph-02-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-altglyph-02-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <font horiz-adv-x="1038">
+ <font-face font-family="EmbeddedSans" units-per-em="2048" panose-1="2 11 6 3 3 8 4 2 2 4" ascent="1901" descent="-483" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="1229" d="M102 -362V1444H1126V-362H102ZM217 -248H1012V1329H217V-248Z"/>
+ <glyph unicode="A" glyph-name="A" horiz-adv-x="1401" d="M700 1294L426 551H975L700 1294ZM586 1493H815L1384 0H1174L1038 383H365L229 0H16L586 1493Z"/>
+ <glyph unicode="E" glyph-name="E" horiz-adv-x="1294" d="M201 1493H1145V1323H403V881H1114V711H403V170H1163V0H201V1493Z"/>
+ <glyph id="vs-a" unicode="a" glyph-name="a" horiz-adv-x="1255" d="M702 563Q479 563 393 512T307 338Q307 240 371 183T547 125Q700 125 792 233T885 522V563H702ZM1069 639V0H885V170Q822 68 728 20T498 -29Q326 -29 225 67T123 326Q123 515 249 611T627 707H885V725Q885 852 802 921T567 991Q471 991 380 968T205 899V1069Q306 1108 401 1127T586 1147Q829 1147 949 1021T1069 639Z"/>
+ <glyph id="vs-b" unicode="b" glyph-name="b" horiz-adv-x="1300" d="M997 559Q997 762 914 877T684 993Q538 993 455 878T371 559Q371 356 454 241T684 125Q830 125 913 240T997 559ZM371 950Q429 1050 517 1098T729 1147Q933 1147 1060 985T1188 559Q1188 295 1061 133T729 -29Q606 -29 518 19T371 168V0H186V1556H371V950Z"/>
+ <glyph id="vs-c" unicode="c" glyph-name="c" horiz-adv-x="1126" d="M999 1077V905Q921 948 843 969T684 991Q505 991 406 878T307 559Q307 354 406 241T684 127Q764 127 842 148T999 213V43Q922 7 840 -11T664 -29Q411 -29 262 130T113 559Q113 833 263 990T676 1147Q761 1147 842 1130T999 1077Z"/>
+ <glyph id="vs-d" unicode="d" glyph-name="d" horiz-adv-x="1300" d="M930 950V1556H1114V0H930V168Q872 68 784 20T571 -29Q368 -29 241 133T113 559Q113 823 240 985T571 1147Q695 1147 783 1099T930 950ZM303 559Q303 356 386 241T616 125Q762 125 846 240T930 559Q930 762 846 877T616 993Q470 993 387 878T303 559Z"/>
+ <glyph id="vs-e" unicode="e" glyph-name="e" horiz-adv-x="1260" d="M1151 606V516H305Q317 326 419 227T705 127Q811 127 910 153T1108 231V57Q1009 15 905 -7T694 -29Q426 -29 270 127T113 549Q113 824 261 985T662 1147Q888 1147 1019 1002T1151 606ZM967 660Q965 811 883 901T664 991Q510 991 418 904T311 659L967 660Z"/>
+ <glyph unicode="l" glyph-name="l" horiz-adv-x="569" d="M193 1556H377V0H193V1556Z"/>
+ <glyph unicode="p" glyph-name="p" horiz-adv-x="1300" d="M371 168V-426H186V1120H371V950Q429 1050 517 1098T729 1147Q933 1147 1060 985T1188 559Q1188 295 1061 133T729 -29Q606 -29 518 19T371 168ZM997 559Q997 762 914 877T684 993Q538 993 455 878T371 559Q371 356 454 241T684 125Q830 125 913 240T997 559Z"/>
+ <glyph unicode="t" glyph-name="t" horiz-adv-x="803" d="M375 1438V1120H754V977H375V369Q375 232 412 193T565 154H754V0H565Q352 0 271 79T190 369V977H55V1120H190V1438H375Z"/>
+ <glyph unicode="u" glyph-name="u" horiz-adv-x="1298" d="M174 442V1120H358V449Q358 290 420 211T606 131Q755 131 841 226T928 485V1120H1112V0H928V172Q861 70 773 21T567 -29Q374 -29 274 91T174 442Z"/>
+ <glyph unicode="x" glyph-name="x" horiz-adv-x="1212" d="M1124 1120L719 575L1145 0H928L602 440L276 0H59L494 586L96 1120H313L610 721L907 1120H1124Z"/>
+ </font>
+
+ <font horiz-adv-x="1159">
+ <font-face font-family="EmbeddedSerifBold" units-per-em="2048" panose-1="2 6 8 3 5 6 5 2 2 4" ascent="1923" descent="-483" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="1229" d="M102 -362V1444H1126V-362H102ZM217 -248H1012V1329H217V-248Z"/>
+ <glyph id="vsb-a" unicode="a" glyph-name="a" horiz-adv-x="1327" d="M1128 653V121H1280V0H774V135Q704 51 618 11T422 -29Q259 -29 172 58T84 309Q84 488 209 577T588 666H774V729Q774 858 713 919T524 981Q418 981 361 938T279 795H166V1024Q261 1058 363 1075T578 1092Q863 1092 995 986T1128 653ZM774 334V547H641Q542 547 489 493T436 338Q436 237 474 187T592 137Q674 137 724 191T774 334Z"/>
+ <glyph id="vsb-b" unicode="b" glyph-name="b" horiz-adv-x="1432" d="M199 121V1436H47V1556H553V928Q598 1011 674 1051T862 1092Q1089 1092 1219 943T1350 532Q1350 271 1220 121T862 -29Q750 -29 674 11T553 135V0H47V121H199ZM553 479Q553 293 600 210T754 127Q863 127 907 215T952 532Q952 761 908 848T754 936Q648 936 601 853T553 584V479Z"/>
+ <glyph id="vsb-c" unicode="c" glyph-name="c" horiz-adv-x="1247" d="M1155 332Q1117 150 1000 61T680 -29Q396 -29 240 118T84 532Q84 796 238 944T666 1092Q777 1092 890 1071T1120 1008V713H1008Q992 848 929 913T752 979Q604 979 542 879T479 532Q479 291 540 188T739 84Q846 84 910 148T989 332H1155Z"/>
+ <glyph id="vsb-d" unicode="d" glyph-name="d" horiz-adv-x="1432" d="M879 479V584Q879 770 831 853T678 936Q568 936 524 849T479 532Q479 303 524 215T678 127Q783 127 831 210T879 479ZM1233 121H1384V0H879V135Q834 52 758 12T569 -29Q343 -29 214 121T84 532Q84 794 213 943T569 1092Q681 1092 757 1052T879 928V1436H727V1556H1233V121Z"/>
+ <glyph id="vsb-e" unicode="e" glyph-name="e" horiz-adv-x="1303" d="M821 600Q821 810 782 894T649 979Q558 979 519 896T479 618V600H821ZM1210 481H479V473Q479 267 541 176T741 84Q856 84 927 145T1018 322H1184Q1141 141 1013 56T655 -29Q379 -29 232 116T84 532Q84 796 235 944T655 1092Q919 1092 1060 937T1210 481Z"/>
+ </font>
+
+ <!-- One valid 1-glyph altGlyphItem -->
+ <altGlyphDef id="agd-a-1">
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-a"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One valid 1-glyph and one invalid 1-glyph altGlyphItem -->
+ <altGlyphDef id="agd-a-2">
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-a"/>
+ </altGlyphItem>
+ <altGlyphItem>
+ <glyphRef xlink:href="#bad-link"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One invalid 1-glyph and one valid 1-glyph altGlyphItem -->
+ <altGlyphDef id="agd-a-3">
+ <altGlyphItem>
+ <glyphRef xlink:href="#bad-link"/>
+ </altGlyphItem>
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-a"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One invalid 1-glyph altGlyphItem -->
+ <altGlyphDef id="agd-a-4">
+ <altGlyphItem>
+ <glyphRef xlink:href="#bad-link"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One valid 2-glyph altGlyphItem -->
+ <altGlyphDef id="agd-bc-1">
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-b"/>
+ <glyphRef xlink:href="#vsb-c"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One valid 2-glyph and one invalid 1-glyph altGlyphItem -->
+ <altGlyphDef id="agd-bc-2">
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-b"/>
+ <glyphRef xlink:href="#vsb-c"/>
+ </altGlyphItem>
+ <altGlyphItem>
+ <glyphRef xlink:href="#bad-link"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One invalid 1-glyph and one valid 2-glyph altGlyphItem -->
+ <altGlyphDef id="agd-bc-3">
+ <altGlyphItem>
+ <glyphRef xlink:href="#bad-link"/>
+ </altGlyphItem>
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-b"/>
+ <glyphRef xlink:href="#vsb-c"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One invalid 2-glyph and one valid 2-glyph altGlyphItem -->
+ <altGlyphDef id="agd-bc-4">
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-b"/>
+ <glyphRef xlink:href="#bad-link"/>
+ </altGlyphItem>
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-b"/>
+ <glyphRef xlink:href="#vsb-c"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One valid 2-glyph and one invalid 2-glyph altGlyphItem -->
+ <altGlyphDef id="agd-bc-5">
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-b"/>
+ <glyphRef xlink:href="#vsb-c"/>
+ </altGlyphItem>
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-b"/>
+ <glyphRef xlink:href="#bad-link"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One invalid 2-glyph altGlyphItem -->
+ <altGlyphDef id="agd-bc-6">
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-b"/>
+ <glyphRef xlink:href="#bad-link"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <g font-family="EmbeddedSans" transform="translate(0,20)">
+ <g font-size="13" fill="blue">
+ <text x="25" y="20">Actual</text>
+ <text x="115" y="20">Expected</text>
+ <text x="250" y="20">Actual</text>
+ <text x="340" y="20">Expected</text>
+ </g>
+ <path stroke="blue" stroke-width="1" d="M 25,22 L 225,22 M 250,22 L 440,22"/>
+
+ <g font-size="14">
+ <!-- === "Actual" column 1 ======================================== -->
+
+ <!-- altGlyphDefs have one glyph, altGlyph has one character -->
+ <text x="25" y="40">
+ <altGlyph xlink:href="#agd-a-1">a</altGlyph>bcde
+ </text>
+ <text x="25" y="58">
+ <altGlyph xlink:href="#agd-a-2">a</altGlyph>bcde
+ </text>
+ <text x="25" y="76">
+ <altGlyph xlink:href="#agd-a-3">a</altGlyph>bcde
+ </text>
+ <text x="25" y="94">
+ <altGlyph xlink:href="#agd-a-4">a</altGlyph>bcde
+ </text>
+
+ <!-- altGlyphDefs have two glyphs, altGlyph has two characters -->
+ <text x="25" y="112">
+ a<altGlyph xlink:href="#agd-bc-1">bc</altGlyph>de
+ </text>
+ <text x="25" y="130">
+ a<altGlyph xlink:href="#agd-bc-2">bc</altGlyph>de
+ </text>
+ <text x="25" y="148">
+ a<altGlyph xlink:href="#agd-bc-3">bc</altGlyph>de
+ </text>
+ <text x="25" y="166">
+ a<altGlyph xlink:href="#agd-bc-4">bc</altGlyph>de
+ </text>
+ <text x="25" y="184">
+ a<altGlyph xlink:href="#agd-bc-5">bc</altGlyph>de
+ </text>
+ <text x="25" y="202">
+ a<altGlyph xlink:href="#agd-bc-6">bc</altGlyph>de
+ </text>
+
+ <!-- === "Actual" column 2 ======================================== -->
+
+ <!-- altGlyphDefs have two glyphs, altGlyph has one character -->
+ <text x="250" y="40">
+ a<altGlyph xlink:href="#agd-bc-1">b</altGlyph>de
+ </text>
+ <text x="250" y="58">
+ a<altGlyph xlink:href="#agd-bc-2">b</altGlyph>de
+ </text>
+ <text x="250" y="76">
+ a<altGlyph xlink:href="#agd-bc-3">b</altGlyph>de
+ </text>
+ <text x="250" y="94">
+ a<altGlyph xlink:href="#agd-bc-4">b</altGlyph>de
+ </text>
+ <text x="250" y="112">
+ a<altGlyph xlink:href="#agd-bc-5">b</altGlyph>de
+ </text>
+ <text x="250" y="130">
+ a<altGlyph xlink:href="#agd-bc-6">b</altGlyph>de
+ </text>
+
+ <!-- altGlyphDefs have one glyph, altGlyph has two characters -->
+ <text x="250" y="148">
+ <altGlyph xlink:href="#agd-a-1">ab</altGlyph>cde
+ </text>
+ <text x="250" y="166">
+ <altGlyph xlink:href="#agd-a-2">ab</altGlyph>cde
+ </text>
+ <text x="250" y="184">
+ <altGlyph xlink:href="#agd-a-3">ab</altGlyph>cde
+ </text>
+ <text x="250" y="202">
+ <altGlyph xlink:href="#agd-a-4">ab</altGlyph>cde
+ </text>
+
+ <!-- Test for SVG font support -->
+ <g font-size="16">
+ <text x="250" y="238">a</text>
+ <text x="250" y="256" font-family="EmbeddedSerifBold">b</text>
+ </g>
+
+ <!-- === "Expected" column 1 ====================================== -->
+
+ <text x="115" y="40">
+ <tspan font-family="EmbeddedSerifBold">a</tspan>bcde
+ </text>
+ <text x="115" y="58">
+ <tspan font-family="EmbeddedSerifBold">a</tspan>bcde
+ </text>
+ <text x="115" y="76">
+ <tspan font-family="EmbeddedSerifBold">a</tspan>bcde
+ </text>
+ <text x="115" y="94">abcde</text>
+
+ <text x="115" y="112">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="115" y="130">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="115" y="148">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="115" y="166">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="115" y="184">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="115" y="202">abcde</text>
+
+ <!-- === "Expected" column 2 ====================================== -->
+
+ <text x="340" y="40">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="340" y="58">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="340" y="76">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="340" y="94">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="340" y="112">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="340" y="130">abde</text>
+
+ <text x="340" y="148">
+ <tspan font-family="EmbeddedSerifBold">a</tspan>cde
+ </text>
+ <text x="340" y="166">
+ <tspan font-family="EmbeddedSerifBold">a</tspan>cde
+ </text>
+ <text x="340" y="182">
+ <tspan font-family="EmbeddedSerifBold">a</tspan>cde
+ </text>
+ <text x="340" y="202">abcde</text>
+
+ <g transform="translate(340, 238) scale(1, -1) scale(0.0078125)">
+ <path d="M702 563Q479 563 393 512T307 338Q307 240 371 183T547 125Q700 125 792 233T885 522V563H702ZM1069 639V0H885V170Q822 68 728 20T498 -29Q326 -29 225 67T123 326Q123 515 249 611T627 707H885V725Q885 852 802 921T567 991Q471 991 380 968T205 899V1069Q306 1108 401 1127T586 1147Q829 1147 949 1021T1069 639Z"/>
+ </g>
+ <g transform="translate(340, 256) scale(1, -1) scale(0.0078125)">
+ <path d="M199 121V1436H47V1556H553V928Q598 1011 674 1051T862 1092Q1089 1092 1219 943T1350 532Q1350 271 1220 121T862 -29Q750 -29 674 11T553 135V0H47V121H199ZM553 479Q553 293 600 210T754 127Q863 127 907 215T952 532Q952 761 908 848T754 936Q648 936 601 853T553 584V479Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g> -->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-altglyph-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-altglyph-03-b-isvalid.html
new file mode 100644
index 0000000000..595f8a1345
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-altglyph-03-b-isvalid.html
@@ -0,0 +1,348 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-altglyph-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-altglyph-03-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-altglyph-03-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <font horiz-adv-x="1038">
+ <font-face font-family="EmbeddedSans" units-per-em="2048" panose-1="2 11 6 3 3 8 4 2 2 4" ascent="1901" descent="-483" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="1229" d="M102 -362V1444H1126V-362H102ZM217 -248H1012V1329H217V-248Z"/>
+ <glyph unicode="A" glyph-name="A" horiz-adv-x="1401" d="M700 1294L426 551H975L700 1294ZM586 1493H815L1384 0H1174L1038 383H365L229 0H16L586 1493Z"/>
+ <glyph unicode="E" glyph-name="E" horiz-adv-x="1294" d="M201 1493H1145V1323H403V881H1114V711H403V170H1163V0H201V1493Z"/>
+ <glyph id="vs-a" unicode="a" glyph-name="a" horiz-adv-x="1255" d="M702 563Q479 563 393 512T307 338Q307 240 371 183T547 125Q700 125 792 233T885 522V563H702ZM1069 639V0H885V170Q822 68 728 20T498 -29Q326 -29 225 67T123 326Q123 515 249 611T627 707H885V725Q885 852 802 921T567 991Q471 991 380 968T205 899V1069Q306 1108 401 1127T586 1147Q829 1147 949 1021T1069 639Z"/>
+ <glyph id="vs-b" unicode="b" glyph-name="b" horiz-adv-x="1300" d="M997 559Q997 762 914 877T684 993Q538 993 455 878T371 559Q371 356 454 241T684 125Q830 125 913 240T997 559ZM371 950Q429 1050 517 1098T729 1147Q933 1147 1060 985T1188 559Q1188 295 1061 133T729 -29Q606 -29 518 19T371 168V0H186V1556H371V950Z"/>
+ <glyph id="vs-c" unicode="c" glyph-name="c" horiz-adv-x="1126" d="M999 1077V905Q921 948 843 969T684 991Q505 991 406 878T307 559Q307 354 406 241T684 127Q764 127 842 148T999 213V43Q922 7 840 -11T664 -29Q411 -29 262 130T113 559Q113 833 263 990T676 1147Q761 1147 842 1130T999 1077Z"/>
+ <glyph id="vs-d" unicode="d" glyph-name="d" horiz-adv-x="1300" d="M930 950V1556H1114V0H930V168Q872 68 784 20T571 -29Q368 -29 241 133T113 559Q113 823 240 985T571 1147Q695 1147 783 1099T930 950ZM303 559Q303 356 386 241T616 125Q762 125 846 240T930 559Q930 762 846 877T616 993Q470 993 387 878T303 559Z"/>
+ <glyph id="vs-e" unicode="e" glyph-name="e" horiz-adv-x="1260" d="M1151 606V516H305Q317 326 419 227T705 127Q811 127 910 153T1108 231V57Q1009 15 905 -7T694 -29Q426 -29 270 127T113 549Q113 824 261 985T662 1147Q888 1147 1019 1002T1151 606ZM967 660Q965 811 883 901T664 991Q510 991 418 904T311 659L967 660Z"/>
+ <glyph unicode="l" glyph-name="l" horiz-adv-x="569" d="M193 1556H377V0H193V1556Z"/>
+ <glyph unicode="p" glyph-name="p" horiz-adv-x="1300" d="M371 168V-426H186V1120H371V950Q429 1050 517 1098T729 1147Q933 1147 1060 985T1188 559Q1188 295 1061 133T729 -29Q606 -29 518 19T371 168ZM997 559Q997 762 914 877T684 993Q538 993 455 878T371 559Q371 356 454 241T684 125Q830 125 913 240T997 559Z"/>
+ <glyph unicode="t" glyph-name="t" horiz-adv-x="803" d="M375 1438V1120H754V977H375V369Q375 232 412 193T565 154H754V0H565Q352 0 271 79T190 369V977H55V1120H190V1438H375Z"/>
+ <glyph unicode="u" glyph-name="u" horiz-adv-x="1298" d="M174 442V1120H358V449Q358 290 420 211T606 131Q755 131 841 226T928 485V1120H1112V0H928V172Q861 70 773 21T567 -29Q374 -29 274 91T174 442Z"/>
+ <glyph unicode="x" glyph-name="x" horiz-adv-x="1212" d="M1124 1120L719 575L1145 0H928L602 440L276 0H59L494 586L96 1120H313L610 721L907 1120H1124Z"/>
+ </font>
+
+ <font horiz-adv-x="1159">
+ <font-face font-family="EmbeddedSerifBold" units-per-em="2048" panose-1="2 6 8 3 5 6 5 2 2 4" ascent="1923" descent="-483" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="1229" d="M102 -362V1444H1126V-362H102ZM217 -248H1012V1329H217V-248Z"/>
+ <glyph id="vsb-a" unicode="a" glyph-name="a" horiz-adv-x="1327" d="M1128 653V121H1280V0H774V135Q704 51 618 11T422 -29Q259 -29 172 58T84 309Q84 488 209 577T588 666H774V729Q774 858 713 919T524 981Q418 981 361 938T279 795H166V1024Q261 1058 363 1075T578 1092Q863 1092 995 986T1128 653ZM774 334V547H641Q542 547 489 493T436 338Q436 237 474 187T592 137Q674 137 724 191T774 334Z"/>
+ <glyph id="vsb-b" unicode="b" glyph-name="b" horiz-adv-x="1432" d="M199 121V1436H47V1556H553V928Q598 1011 674 1051T862 1092Q1089 1092 1219 943T1350 532Q1350 271 1220 121T862 -29Q750 -29 674 11T553 135V0H47V121H199ZM553 479Q553 293 600 210T754 127Q863 127 907 215T952 532Q952 761 908 848T754 936Q648 936 601 853T553 584V479Z"/>
+ <glyph id="vsb-c" unicode="c" glyph-name="c" horiz-adv-x="1247" d="M1155 332Q1117 150 1000 61T680 -29Q396 -29 240 118T84 532Q84 796 238 944T666 1092Q777 1092 890 1071T1120 1008V713H1008Q992 848 929 913T752 979Q604 979 542 879T479 532Q479 291 540 188T739 84Q846 84 910 148T989 332H1155Z"/>
+ <glyph id="vsb-d" unicode="d" glyph-name="d" horiz-adv-x="1432" d="M879 479V584Q879 770 831 853T678 936Q568 936 524 849T479 532Q479 303 524 215T678 127Q783 127 831 210T879 479ZM1233 121H1384V0H879V135Q834 52 758 12T569 -29Q343 -29 214 121T84 532Q84 794 213 943T569 1092Q681 1092 757 1052T879 928V1436H727V1556H1233V121Z"/>
+ <glyph id="vsb-e" unicode="e" glyph-name="e" horiz-adv-x="1303" d="M821 600Q821 810 782 894T649 979Q558 979 519 896T479 618V600H821ZM1210 481H479V473Q479 267 541 176T741 84Q856 84 927 145T1018 322H1184Q1141 141 1013 56T655 -29Q379 -29 232 116T84 532Q84 796 235 944T655 1092Q919 1092 1060 937T1210 481Z"/>
+ </font>
+
+ <!-- One valid 1-glyph altGlyphItem -->
+ <altGlyphDef id="agd-a-1">
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-a"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One valid 1-glyph and one invalid 1-glyph altGlyphItem -->
+ <altGlyphDef id="agd-a-2">
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-a"/>
+ </altGlyphItem>
+ <altGlyphItem>
+ <glyphRef xlink:href="#bad-link"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One invalid 1-glyph and one valid 1-glyph altGlyphItem -->
+ <altGlyphDef id="agd-a-3">
+ <altGlyphItem>
+ <glyphRef xlink:href="#bad-link"/>
+ </altGlyphItem>
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-a"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One invalid 1-glyph altGlyphItem -->
+ <altGlyphDef id="agd-a-4">
+ <altGlyphItem>
+ <glyphRef xlink:href="#bad-link"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One valid 2-glyph altGlyphItem -->
+ <altGlyphDef id="agd-bc-1">
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-b"/>
+ <glyphRef xlink:href="#vsb-c"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One valid 2-glyph and one invalid 1-glyph altGlyphItem -->
+ <altGlyphDef id="agd-bc-2">
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-b"/>
+ <glyphRef xlink:href="#vsb-c"/>
+ </altGlyphItem>
+ <altGlyphItem>
+ <glyphRef xlink:href="#bad-link"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One invalid 1-glyph and one valid 2-glyph altGlyphItem -->
+ <altGlyphDef id="agd-bc-3">
+ <altGlyphItem>
+ <glyphRef xlink:href="#bad-link"/>
+ </altGlyphItem>
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-b"/>
+ <glyphRef xlink:href="#vsb-c"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One invalid 2-glyph and one valid 2-glyph altGlyphItem -->
+ <altGlyphDef id="agd-bc-4">
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-b"/>
+ <glyphRef xlink:href="#bad-link"/>
+ </altGlyphItem>
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-b"/>
+ <glyphRef xlink:href="#vsb-c"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One valid 2-glyph and one invalid 2-glyph altGlyphItem -->
+ <altGlyphDef id="agd-bc-5">
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-b"/>
+ <glyphRef xlink:href="#vsb-c"/>
+ </altGlyphItem>
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-b"/>
+ <glyphRef xlink:href="#bad-link"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <!-- One invalid 2-glyph altGlyphItem -->
+ <altGlyphDef id="agd-bc-6">
+ <altGlyphItem>
+ <glyphRef xlink:href="#vsb-b"/>
+ <glyphRef xlink:href="#bad-link"/>
+ </altGlyphItem>
+ </altGlyphDef>
+
+ <g font-family="EmbeddedSans" transform="translate(0,20)">
+ <g font-size="13" fill="blue">
+ <text x="25" y="20">Actual</text>
+ <text x="115" y="20">Expected</text>
+ <text x="250" y="20">Actual</text>
+ <text x="340" y="20">Expected</text>
+ </g>
+ <path stroke="blue" stroke-width="1" d="M 25,22 L 225,22 M 250,22 L 440,22"/>
+
+ <g font-size="14">
+ <!-- === "Actual" column 1 ======================================== -->
+
+ <!-- altGlyphDefs have one glyph, altGlyph has one character -->
+ <text x="25" y="40">
+ <altGlyph xlink:href="#agd-a-1">a</altGlyph>bcde
+ </text>
+ <text x="25" y="58">
+ <altGlyph xlink:href="#agd-a-2">a</altGlyph>bcde
+ </text>
+ <text x="25" y="76">
+ <altGlyph xlink:href="#agd-a-3">a</altGlyph>bcde
+ </text>
+ <text x="25" y="94">
+ <altGlyph xlink:href="#agd-a-4">a</altGlyph>bcde
+ </text>
+
+ <!-- altGlyphDefs have two glyphs, altGlyph has two characters -->
+ <text x="25" y="112">
+ a<altGlyph xlink:href="#agd-bc-1">bc</altGlyph>de
+ </text>
+ <text x="25" y="130">
+ a<altGlyph xlink:href="#agd-bc-2">bc</altGlyph>de
+ </text>
+ <text x="25" y="148">
+ a<altGlyph xlink:href="#agd-bc-3">bc</altGlyph>de
+ </text>
+ <text x="25" y="166">
+ a<altGlyph xlink:href="#agd-bc-4">bc</altGlyph>de
+ </text>
+ <text x="25" y="184">
+ a<altGlyph xlink:href="#agd-bc-5">bc</altGlyph>de
+ </text>
+ <text x="25" y="202">
+ a<altGlyph xlink:href="#agd-bc-6">bc</altGlyph>de
+ </text>
+
+ <!-- altGlyphDefs have one glyph, altGlyph has no characters -->
+ <text x="25" y="220">
+ <altGlyph xlink:href="#agd-a-1"/>bcde
+ </text>
+ <text x="25" y="238">
+ <altGlyph xlink:href="#agd-a-2"/>bcde
+ </text>
+ <text x="25" y="256">
+ <altGlyph xlink:href="#agd-a-3"/>bcde
+ </text>
+ <text x="25" y="274">
+ <altGlyph xlink:href="#agd-a-4"/>bcde
+ </text>
+
+ <!-- === "Actual" column 2 ======================================== -->
+
+ <!-- altGlyphDefs have two glyphs, altGlyph has one character -->
+ <text x="250" y="40">
+ a<altGlyph xlink:href="#agd-bc-1">b</altGlyph>de
+ </text>
+ <text x="250" y="58">
+ a<altGlyph xlink:href="#agd-bc-2">b</altGlyph>de
+ </text>
+ <text x="250" y="76">
+ a<altGlyph xlink:href="#agd-bc-3">b</altGlyph>de
+ </text>
+ <text x="250" y="94">
+ a<altGlyph xlink:href="#agd-bc-4">b</altGlyph>de
+ </text>
+ <text x="250" y="112">
+ a<altGlyph xlink:href="#agd-bc-5">b</altGlyph>de
+ </text>
+ <text x="250" y="130">
+ a<altGlyph xlink:href="#agd-bc-6">b</altGlyph>de
+ </text>
+
+ <!-- altGlyphDefs have one glyph, altGlyph has two characters -->
+ <text x="250" y="148">
+ <altGlyph xlink:href="#agd-a-1">ab</altGlyph>cde
+ </text>
+ <text x="250" y="166">
+ <altGlyph xlink:href="#agd-a-2">ab</altGlyph>cde
+ </text>
+ <text x="250" y="184">
+ <altGlyph xlink:href="#agd-a-3">ab</altGlyph>cde
+ </text>
+ <text x="250" y="202">
+ <altGlyph xlink:href="#agd-a-4">ab</altGlyph>cde
+ </text>
+
+ <!-- Test for SVG font support -->
+ <g font-size="16">
+ <text x="250" y="238">a</text>
+ <text x="250" y="256" font-family="EmbeddedSerifBold">b</text>
+ </g>
+
+ <!-- === "Expected" column 1 ====================================== -->
+
+ <text x="115" y="40">
+ <tspan font-family="EmbeddedSerifBold">a</tspan>bcde
+ </text>
+ <text x="115" y="58">
+ <tspan font-family="EmbeddedSerifBold">a</tspan>bcde
+ </text>
+ <text x="115" y="76">
+ <tspan font-family="EmbeddedSerifBold">a</tspan>bcde
+ </text>
+ <text x="115" y="94">abcde</text>
+
+ <text x="115" y="112">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="115" y="130">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="115" y="148">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="115" y="166">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="115" y="184">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="115" y="202">abcde</text>
+
+ <text x="115" y="220">
+ <tspan font-family="EmbeddedSerifBold">a</tspan>bcde
+ </text>
+ <text x="115" y="238">
+ <tspan font-family="EmbeddedSerifBold">a</tspan>bcde
+ </text>
+ <text x="115" y="256">
+ <tspan font-family="EmbeddedSerifBold">a</tspan>bcde
+ </text>
+ <text x="115" y="274">bcde</text>
+
+ <!-- === "Expected" column 2 ====================================== -->
+
+ <text x="340" y="40">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="340" y="58">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="340" y="76">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="340" y="94">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="340" y="112">
+ a<tspan font-family="EmbeddedSerifBold">bc</tspan>de
+ </text>
+ <text x="340" y="130">abde</text>
+
+ <text x="340" y="148">
+ <tspan font-family="EmbeddedSerifBold">a</tspan>cde
+ </text>
+ <text x="340" y="166">
+ <tspan font-family="EmbeddedSerifBold">a</tspan>cde
+ </text>
+ <text x="340" y="182">
+ <tspan font-family="EmbeddedSerifBold">a</tspan>cde
+ </text>
+ <text x="340" y="202">abcde</text>
+
+ <g transform="translate(340, 238) scale(1, -1) scale(0.0078125)">
+ <path d="M702 563Q479 563 393 512T307 338Q307 240 371 183T547 125Q700 125 792 233T885 522V563H702ZM1069 639V0H885V170Q822 68 728 20T498 -29Q326 -29 225 67T123 326Q123 515 249 611T627 707H885V725Q885 852 802 921T567 991Q471 991 380 968T205 899V1069Q306 1108 401 1127T586 1147Q829 1147 949 1021T1069 639Z"/>
+ </g>
+ <g transform="translate(340, 256) scale(1, -1) scale(0.0078125)">
+ <path d="M199 121V1436H47V1556H553V928Q598 1011 674 1051T862 1092Q1089 1092 1219 943T1350 532Q1350 271 1220 121T862 -29Q750 -29 674 11T553 135V0H47V121H199ZM553 479Q553 293 600 210T754 127Q863 127 907 215T952 532Q952 761 908 848T754 936Q648 936 601 853T553 584V479Z"/>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-bidi-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-bidi-01-t-isvalid.html
new file mode 100644
index 0000000000..ecd3a12931
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-bidi-01-t-isvalid.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-bidi-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-bidi-01-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-bidi-01-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="240" y="120" text-anchor="middle">مفتاح معايير الويب</text>
+ <image id="reference" xlink:href="../images/inline2.png" width="200" height="30" transform="translate(120 180)"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-deco-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-deco-01-b-isvalid.html
new file mode 100644
index 0000000000..d42609eb21
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-deco-01-b-isvalid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-deco-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-deco-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-deco-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="24" fill="blue" stroke="green" stroke-width=".5">
+ <text x="25" y="65">Normal text</text>
+ <text x="25" y="135" text-decoration="line-through">Text with line-through</text>
+ <text x="25" y="205" text-decoration="underline">Underlined text</text>
+ <!-- START OF PATCH CODE, which is commented out
+ <text x="25" y="345" text-decoration="underline" xml:space="preserve">One word has different underlining</text>
+ <rect x="25" y="275" width="1000" height="70" stroke="none" fill="white" />
+END OF PATCH CODE, which is commented out -->
+ <text x="25" y="275" text-decoration="underline">
+ <tspan>One</tspan>
+ <tspan fill="yellow" stroke="#F0F">word</tspan>
+ <tspan fill="yellow" stroke="#000">has</tspan>
+ <tspan fill="yellow" stroke="#080" text-decoration="underline">different</tspan>
+ <tspan fill="yellow" stroke="#00F">underlining</tspan>
+ </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-dom-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-dom-01-f-isvalid.html
new file mode 100644
index 0000000000..198307a909
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-dom-01-f-isvalid.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-dom-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-dom-01-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" onload="testSVGTextContentElement()" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-dom-01-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script type="text/ecmascript"><![CDATA[
+ function testSVGTextContentElement() {
+ var svgNS = "http://www.w3.org/2000/svg";
+ var tContentEl = document.getElementById("testText");
+ var textGroup = document.getElementById("textGroup");
+ var svgPt = document.documentElement.createSVGPoint();
+ svgPt.x = 240;
+ svgPt.y = 25;
+
+ //1: testing .getCharNumAtPosition()
+ var charNumresult = tContentEl.getCharNumAtPosition(svgPt);
+ document.getElementById("text1").firstChild.data = ".getCharNumAtPosition() result: "+charNumresult;
+
+ //2: testing .getCharNumAtPosition()
+ var compTextLength = tContentEl.getComputedTextLength();
+ document.getElementById("text2").firstChild.data = ".getComputedTextLength() result: "+Math.round(compTextLength);
+ var baseLine = document.createElementNS(svgNS,"line");
+ baseLine.setAttributeNS(null,"stroke","red");
+ baseLine.setAttributeNS(null,"x1",(240 - compTextLength * 0.5));
+ baseLine.setAttributeNS(null,"x2",(240 + compTextLength * 0.5));
+ baseLine.setAttributeNS(null,"y1",30);
+ baseLine.setAttributeNS(null,"y2",30);
+ textGroup.insertBefore(baseLine,tContentEl);
+
+ //3: testing .getEndPositionOfChar(), end of character
+ var endPosChar = tContentEl.getEndPositionOfChar(11);
+ document.getElementById("text3").firstChild.data = ".getEndPositionOfChar(11) result ('e'): "+Math.round(endPosChar.x)+","+Math.round(endPosChar.y);
+ var endPosLine = document.createElementNS(svgNS,"line");
+ endPosLine.setAttributeNS(null,"stroke","red");
+ endPosLine.setAttributeNS(null,"x1",endPosChar.x);
+ endPosLine.setAttributeNS(null,"x2",endPosChar.x);
+ endPosLine.setAttributeNS(null,"y1",endPosChar.y);
+ endPosLine.setAttributeNS(null,"y2",endPosChar.y-15);
+ textGroup.insertBefore(endPosLine,tContentEl);
+
+ //4: testing getExtentOfChar
+ var charExtent = tContentEl.getExtentOfChar(11);
+ document.getElementById("text4").firstChild.data = ".getExtentOfChar(11) result ('e'): "+Math.round(charExtent.x)+","+Math.round(charExtent.y)+","+Math.round(charExtent.width)+","+Math.round(charExtent.height);
+ var extentRect = document.createElementNS(svgNS,"rect");
+ extentRect.setAttributeNS(null,"fill","lightblue");
+ extentRect.setAttributeNS(null,"x",charExtent.x);
+ extentRect.setAttributeNS(null,"y",charExtent.y);
+ extentRect.setAttributeNS(null,"width",charExtent.width);
+ extentRect.setAttributeNS(null,"height",charExtent.height);
+ textGroup.insertBefore(extentRect,baseLine);
+
+ //5: testing getNumberOfChars
+ var numChars = tContentEl.getNumberOfChars();
+ document.getElementById("text5").firstChild.data = ".getNumberOfChars() result: "+numChars;
+
+ //6: testing getRotationOfChar
+ var charRot = tContentEl.getRotationOfChar(5);
+ document.getElementById("text6").firstChild.data = ".getRotationOfChar(5) result: "+charRot;
+ var rotCharExtent = tContentEl.getExtentOfChar(5);
+ var rotExtentRect = document.createElementNS(svgNS,"rect");
+ rotExtentRect.setAttributeNS(null,"fill","lightblue");
+ rotExtentRect.setAttributeNS(null,"x",rotCharExtent.x);
+ rotExtentRect.setAttributeNS(null,"y",rotCharExtent.y);
+ rotExtentRect.setAttributeNS(null,"width",rotCharExtent.width);
+ rotExtentRect.setAttributeNS(null,"height",rotCharExtent.height);
+ textGroup.insertBefore(rotExtentRect,baseLine);
+
+ //7: testing .getStartPositionOfChar(), end of character
+ var startPosChar = tContentEl.getStartPositionOfChar(11);
+ document.getElementById("text7").firstChild.data = ".getStartPositionOfChar(11) result ('e'): "+Math.round(startPosChar.x)+","+Math.round(startPosChar.y);
+ var startPosLine = document.createElementNS(svgNS,"line");
+ startPosLine.setAttributeNS(null,"stroke","red");
+ startPosLine.setAttributeNS(null,"x1",startPosChar.x);
+ startPosLine.setAttributeNS(null,"x2",startPosChar.x);
+ startPosLine.setAttributeNS(null,"y1",startPosChar.y);
+ startPosLine.setAttributeNS(null,"y2",startPosChar.y-15);
+ textGroup.insertBefore(startPosLine,tContentEl);
+
+ //8: testing .getSubStringLength()
+ var startPosInterface = tContentEl.getStartPositionOfChar(22);
+ var subStrLength = tContentEl.getSubStringLength(22,9);
+ document.getElementById("text8").firstChild.data = ".getSubStringLength(22,9) result ('interface'): "+Math.round(subStrLength);
+ var subStrLine = document.createElementNS(svgNS,"line");
+ subStrLine.setAttributeNS(null,"stroke","lime");
+ subStrLine.setAttributeNS(null,"x1",startPosInterface.x);
+ subStrLine.setAttributeNS(null,"x2",(startPosInterface.x+subStrLength));
+ subStrLine.setAttributeNS(null,"y1",startPosInterface.y);
+ subStrLine.setAttributeNS(null,"y2",startPosInterface.y);
+ textGroup.insertBefore(subStrLine,tContentEl);
+
+ //9: testing .selectSubString()
+ tContentEl.selectSubString(18,3);
+
+ //10: testing textLength.baseVal.value
+ var tlbaseval = tContentEl.textLength.baseVal.value;
+ document.getElementById("text10").firstChild.data = ".textLength.baseVal.value result: "+Math.round(tlbaseval);
+
+ //11: testing textLength.baseVal.value
+ var tlanimval = tContentEl.textLength.animVal.value;
+ document.getElementById("text11").firstChild.data = ".textLength.animVal.value result: "+Math.round(tlanimval);
+
+ //12: testing lengthAdjust baseVal and animVal
+ document.getElementById("text12").firstChild.data = ".lengthAdjust.baseVal and .lengthAdjust.animVal result: "+tContentEl.lengthAdjust.baseVal+","+tContentEl.lengthAdjust.animVal;;
+ }
+ ]]></script>
+ <g id="textGroup" font-family="Arial" font-size="15">
+ <text x="240" y="30" text-anchor="middle" id="testText">
+ This <tspan rotate="45,90">is</tspan> a test of the interface SVGTextContentElement.
+ </text>
+ <text id="text1" x="30" y="60">.getCharNumAtPosition() result: </text>
+ <text id="text2" x="30" y="80">.getComputedTextLength() result: </text>
+ <text id="text3" x="30" y="100">.getEndPositionOfChar(11) result ('e'): </text>
+ <text id="text4" x="30" y="120">.getExtentOfChar(11) result ('e'): </text>
+ <text id="text5" x="30" y="140">.getNumberOfChars() result: </text>
+ <text id="text6" x="30" y="160">.getRotationOfChar(5) result: </text>
+ <text id="text7" x="30" y="180">.getStartPositionOfChar(11) result: </text>
+ <text id="text8" x="30" y="200">.getSubStringLength(22,9) result ('interface'): </text>
+ <text id="text9" x="30" y="220">.selectSubString(18,3) result: the word 'the' should be selected</text>
+ <text id="text10" x="30" y="240">.textLength.baseVal.value result:</text>
+ <text id="text11" x="30" y="260">.textLength.animVal.value result:</text>
+ <text id="text12" x="30" y="280">.lengthAdjust.baseVal and .lengthAdjust.animVal result:</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-dom-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-dom-02-f-isvalid.html
new file mode 100644
index 0000000000..d70ffc665c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-dom-02-f-isvalid.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-dom-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-dom-02-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-dom-02-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='30' font-size='13'>Test that SVGTextContentElement methods work on UTF-16 code units</text>
+ <text x='10' y='60' font-size='11'>Methods independent of layout</text>
+ <font-face font-family='SPlaneOne'>
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/Plane1/PlaneOne.svg#SPlaneOne"/>
+ </font-face-src>
+ </font-face>
+ <style>
+ @font-face {
+ font-family: PlaneOne;
+ src: url(woffs/PlaneOne.woff) format("woff");
+ }
+ </style>
+
+ <text id='t' x='50' y='50' visibility='hidden' font-family='PlaneOne, SPlaneOne, serif' font-size='10' rotate='10 20 30'>a&#x10000;b</text>
+
+ <rect id='r1' x='10' y='140' width='30' height='30'/>
+ <text x='50' y='160'>getNumberOfChars</text>
+
+ <rect id='r2' x='10' y='180' width='30' height='30'/>
+ <text x='50' y='200'>getSubStringLength</text>
+
+ <script><![CDATA[
+ function $(x) { return document.getElementById(x) }
+ function eq(a, b) {
+ if (a.length != b.length) return false;
+ for (var i = 0; i < a.length; i++) if (a[i] != b[i]) return false;
+ return true;
+ }
+ function p(x, y) {
+ var p = document.documentElement.createSVGPoint();
+ p.x = x;
+ p.y = y;
+ return p;
+ }
+
+ var t = $('t');
+ var x, b;
+
+ b = false;
+ try {
+ b = t.getNumberOfChars() == 4;
+ } catch (e) {
+ }
+ $('r1').setAttribute('fill', b ? 'green' : 'red');
+
+ b = false;
+ try {
+ x = [
+ t.getSubStringLength(0, 1),
+ t.getSubStringLength(0, 2),
+ t.getSubStringLength(0, 3),
+ t.getSubStringLength(0, 4),
+ t.getSubStringLength(1, 1),
+ t.getSubStringLength(1, 2),
+ t.getSubStringLength(1, 3),
+ t.getSubStringLength(2, 1),
+ t.getSubStringLength(2, 2),
+ t.getSubStringLength(3, 1),
+ ];
+ b = eq(x, [1, 3, 3, 7, 2, 2, 6, 2, 6, 4]);
+ } catch (e) {
+ }
+ $('r2').setAttribute('fill', b ? 'green' : 'red');
+
+ ]]></script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-dom-03-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-dom-03-f-novalid.html
new file mode 100644
index 0000000000..d9ce2ca074
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-dom-03-f-novalid.html
@@ -0,0 +1,113 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-dom-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-dom-03-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-dom-03-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='30' font-size='13'>Test that getSubStringLength() handles out-of-range arguments</text>
+
+ <font horiz-adv-x='1000'>
+ <font-face font-family='TestFont'/>
+ <glyph unicode='a' horiz-adv-x='100' d='M0,0 h80 v1000 h-80 z'/>
+ <glyph unicode='&#x10000;' horiz-adv-x='200' d='M0,0 h180 v1000 h-180 z'/>
+ <glyph unicode='b' horiz-adv-x='400' d='M0,0 h380 v1000 h-380 z'/>
+ </font>
+
+ <text id='t' x='50' y='50' visibility='hidden' font-family='TestFont' font-size='10'>ababa</text>
+
+ <rect id='r1' x='10' y='40' width='30' height='30'/>
+ <text x='50' y='60'>charnum &lt; 0</text>
+
+ <rect id='r2' x='10' y='80' width='30' height='30'/>
+ <text x='50' y='100'>nchars &lt; 0</text>
+
+ <rect id='r3' x='10' y='120' width='30' height='30'/>
+ <text x='50' y='140'>charnum = 0, nchars = length</text>
+
+ <rect id='r4' x='10' y='160' width='30' height='30'/>
+ <text x='50' y='180'>charnum = 0, nchars = length + 10</text>
+
+ <rect id='r5' x='10' y='200' width='30' height='30'/>
+ <text x='50' y='220'>charnum = 1, nchars = -1</text>
+
+ <script><![CDATA[
+ function $(x) { return document.getElementById(x) }
+
+ var b, t = $('t');
+
+ b = false;
+ try {
+ t.getSubStringLength(-1, 1);
+ } catch (e) {
+ b = e.code == 1; // DOMException.INDEX_SIZE_ERR
+ }
+ $('r1').setAttribute('fill', b ? 'green' : 'red');
+
+ b = false;
+ try {
+ t.getSubStringLength(1, -1);
+ } catch (e) {
+ b = e.code == 1; // DOMException.INDEX_SIZE_ERR
+ }
+ $('r2').setAttribute('fill', b ? 'green' : 'red');
+
+ b = false;
+ try {
+ b = t.getSubStringLength(0, 5) == 11;
+ } catch (e) {
+ }
+ $('r3').setAttribute('fill', b ? 'green' : 'red');
+
+ b = false;
+ try {
+ b = t.getSubStringLength(0, 15) == 11;
+ } catch (e) {
+ }
+ $('r4').setAttribute('fill', b ? 'green' : 'red');
+
+ b = false;
+ try {
+ t.getSubStringLength(1, -1);
+ } catch (e) {
+ b = e.code == 1; // DOMException.INDEX_SIZE_ERR
+ }
+ $('r5').setAttribute('fill', b ? 'green' : 'red');
+ ]]></script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-dom-04-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-dom-04-f-isvalid.html
new file mode 100644
index 0000000000..76ac465981
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-dom-04-f-isvalid.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-dom-04-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-dom-04-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" onload="test()" xmlns="http://www.w3.org/2000/svg"
+ viewBox="0 0 480 360" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-dom-04-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font horiz-adv-x="4000" id="mini">
+ <font-face font-family="simplesvgfont" units-per-em="4000" ascent="800" descent="-200" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="10000" d="M0 0 4000 0"/>
+ <glyph unicode="a" glyph-name="a" horiz-adv-x="4100" d="M0 4000l2000 -4000l2000 4000Z"/>
+ <glyph unicode="b" glyph-name="b" horiz-adv-x="2000" d="M0 0l2000 0000l0 2000l-2000 0Z"/>
+ <glyph unicode="cb" d="M0 0l2000 2000l-2000 2000Z" horiz-adv-x="800"/>
+ <glyph unicode="c" glyph-name="c" horiz-adv-x="1900" d="M0 0L2000 2000l-2000 0L2000 0Z"/>
+ <glyph unicode="&#x1D352;" glyph-name="compliance" d="M1000,0 h1000 v-1000 h-1000 z" horiz-adv-x="2100"/>
+ <hkern u1="c" u2="a" k="500"/>
+ </font>
+ </defs>
+
+ <script type="text/ecmascript"><![CDATA[
+ function test()
+ {
+ var t = document.getElementById("t");
+ var r = document.getElementById("r");
+ var res = document.getElementById("res");
+ var isPassed = true;
+
+ // string: abca&#x1D352;cb
+ // indices: 0123 4 5 67
+
+ var tests = new Array("getSubStringLength(0,1)", "4100", // 'a'
+ "getSubStringLength(0,2)", "6100", // 'ab'
+ "getSubStringLength(0,3)", "7500", // 'abc'
+ "getSubStringLength(0,4)", "11600", // 'abca'
+ "getSubStringLength(0,5)", "13700", // 'abca' and high surrogate of 1D352
+ "getSubStringLength(0,6)", "13700", // 'abca&#x1D352'
+ "getSubStringLength(0,7)", "14500", // 'abca&#x1D352' and half of ligature 'cb'
+ "getSubStringLength(0,8)", "14500", // 'abca&#x1D352cb'
+ "getSubStringLength(0,9)", "14500", // 'abca&#x1D352cb'
+ "getSubStringLength(3,1)", "4100", // 'a'
+ "getSubStringLength(1,1)", "2000", // 'b'
+ "getSubStringLength(4,1)", "2100", // high surrogate of 1D352
+ "getSubStringLength(4,2)", "2100", // '&#x1D352'
+ "getSubStringLength(5,1)", "2100", // low surrogate of 1D352
+ "getSubStringLength(6,1)", "800", // first half of ligature 'cb'
+ "getSubStringLength(6,2)", "800", // ligature 'cb'
+ "getSubStringLength(7,1)", "800", // second half of ligature 'cb'
+ "getSubStringLength(8,1)", "INDEX_SIZE_ERR",
+ "getSubStringLength(9,0)", "INDEX_SIZE_ERR",
+ "getSubStringLength(-1,1)", "INDEX_SIZE_ERR",
+ "getSubStringLength(-57,0)", "INDEX_SIZE_ERR",
+ "getSubStringLength(0,-52)", "INDEX_SIZE_ERR",
+ "getSubStringLength(-1,-5)", "INDEX_SIZE_ERR",
+ "getSubStringLength(7,0)", "0", // second half of ligature 'cb'
+ "getSubStringLength(5,0)", "0", // high surrogate of 1D352
+ "getSubStringLength(4,0)", "0" // low surrogate of 1D352
+ );
+
+ try
+ {
+ for(var i = 0; i < tests.length; i=i+2)
+ {
+ try
+ {
+ val = eval("t."+tests[i]);
+ }
+ catch(e)
+ {
+ if(e.code == DOMException.INDEX_SIZE_ERR)
+ {
+ val = "INDEX_SIZE_ERR"
+ }
+ else
+ {
+ val = e;
+ }
+ }
+
+ if(val != tests[i+1])
+ {
+ throw "Failed " + tests[i] + " got " + val + " but expected " + tests[i+1];
+ }
+ }
+ }
+ catch(f)
+ {
+ isPassed = false;
+ res.textContent = f;
+ }
+
+ if(isPassed)
+ {
+ r.setAttribute("fill", "none");
+ }
+ }
+ ]]></script>
+
+ <g transform="scale(0.02 0.02) translate(4000 2000)">
+ <g id="reference" fill="red">
+ <path d="M0 4000l2000 -4000l2000 4000Z" transform="scale(1 -1) translate(0 -8000)"/>
+ <path d="M0 0l2000 0000l0 2000l-2000 0Z" transform="translate(4100 6000)"/>
+ <path d="M0 0L2000 2000l-2000 0L2000 0Z" transform="translate(6100 6000)"/>
+ <path d="M0 4000l2000 -4000l2000 4000Z" transform="scale(1 -1) translate(7500 -8000)"/>
+ <path d="M1000,0 h1000 v-1000 h-1000 z" transform="scale(1 -1) translate(11600 -8000)"/>
+ <path d="M0 0l2000 2000l-2000 2000Z" transform="scale(1 -1) translate(13700 -8000)"/>
+ </g>
+
+ <text id="t" font-family="simplesvgfont" font-size="4000" y="2em" fill="lime">abca&#x1D352;cb</text>
+ <rect id="r" x="5000" y="10%" width="2000" height="2000" fill="red"/>
+ <text id="res" x="50%" text-anchor="middle" font-family="sans-serif" font-size="200" y="80%"></text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-dom-05-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-dom-05-f-isvalid.html
new file mode 100644
index 0000000000..5849399cdc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-dom-05-f-isvalid.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-dom-05-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-dom-05-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-dom-05-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x='10' y='30' font-size='13'>Test that SVGTextContentElement methods work on UTF-16 code units</text>
+ <text x='10' y='60' font-size='11'>Methods that rely on layout</text>
+ <font-face font-family='SPlaneOne'>
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/Plane1/PlaneOne.svg#SPlaneOne"/>
+ </font-face-src>
+ </font-face>
+ <style>
+ @font-face {
+ font-family: PlaneOne;
+ src: url(woffs/PlaneOne.woff) format("woff");
+ }
+ </style>
+
+ <text id='t' x='50' y='50' visibility='hidden' font-family='PlaneOne, SPlaneOne' font-size='10' rotate='10 20 30'>a&#x10000;b</text>
+
+ <rect id='r3' x='10' y='120' width='30' height='30'/>
+ <text x='50' y='140'>getStartPositionOfChar</text>
+
+ <rect id='r4' x='10' y='160' width='30' height='30'/>
+ <text x='50' y='180'>getEndPositionOfChar</text>
+
+ <rect id='r5' x='10' y='200' width='30' height='30'/>
+ <text x='50' y='220'>getExtentOfChar</text>
+
+ <rect id='r6' x='10' y='240' width='30' height='30'/>
+ <text x='50' y='260'>getRotationOfChar</text>
+
+ <rect id='r7' x='10' y='280' width='30' height='30'/>
+ <text x='50' y='300'>getCharNumAtPosition</text>
+
+ <script><![CDATA[
+ function $(x) { return document.getElementById(x) }
+ function eq(a, b) {
+ if (a.length != b.length) return false;
+ for (var i = 0; i < a.length; i++) if (a[i] != b[i]) return false;
+ return true;
+ }
+ function p(x, y) {
+ var p = document.documentElement.createSVGPoint();
+ p.x = x;
+ p.y = y;
+ return p;
+ }
+
+ var t = $('t');
+ var x, b;
+
+ b = false;
+ try {
+ x = [
+ t.getStartPositionOfChar(0).x,
+ t.getStartPositionOfChar(1).x,
+ t.getStartPositionOfChar(2).x,
+ t.getStartPositionOfChar(3).x
+ ];
+ b = eq(x, [50, 51, 51, 53]);
+ } catch (e) {
+ }
+ $('r3').setAttribute('fill', b ? 'green' : 'red');
+
+ b = false;
+ try {
+ x = [
+ t.getEndPositionOfChar(0).x,
+ t.getEndPositionOfChar(1).x,
+ t.getEndPositionOfChar(2).x,
+ t.getEndPositionOfChar(3).x
+ ];
+ b = x[0] < x[1] && x[1] == x[2] && x[2] < x[3];
+ } catch (e) {
+ }
+ $('r4').setAttribute('fill', b ? 'green' : 'red');
+
+ b = false;
+ try {
+ x = [
+ t.getExtentOfChar(0).width,
+ t.getExtentOfChar(1).width,
+ t.getExtentOfChar(2).width,
+ t.getExtentOfChar(3).width
+ ];
+ b = eq(x, [1, 2, 2, 4]);
+ } catch (e) {
+ }
+ $('r5').setAttribute('fill', b ? 'green' : 'red');
+
+ b = false;
+ try {
+ x = [
+ t.getRotationOfChar(0),
+ t.getRotationOfChar(1),
+ t.getRotationOfChar(2),
+ t.getRotationOfChar(3)
+ ];
+ b = eq(x, [10, 20, 20, 30]);
+ } catch (e) {
+ }
+ $('r6').setAttribute('fill', b ? 'green' : 'red');
+
+ b = false;
+ try {
+ x = [
+ t.getCharNumAtPosition(p(50.5, 49)),
+ t.getCharNumAtPosition(p(51.5, 49)), // within first half of the glyph represented by the two surrogates
+ t.getCharNumAtPosition(p(52.5, 49)), // within second half of the glyph represented by the two surrogates
+ t.getCharNumAtPosition(p(53.5, 49))
+ ];
+ b = eq(x, [0, 1, 2, 3]);
+ } catch (e) {
+ }
+ $('r7').setAttribute('fill', b ? 'green' : 'red');
+ ]]></script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-01-t-isvalid.html
new file mode 100644
index 0000000000..1f228b7676
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-01-t-isvalid.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-fonts-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-fonts-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-fonts-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-weight="normal" font-size="24" stroke="none">
+ <text font-family="Georgia, 'Minion Web', 'Times New Roman', Times, 'MS PMincho', Heisei-Mincho, serif " x="20" y="80">A serifed face 画像</text>
+ <text font-family="Arial, 'Arial Unicode', 'Myriad Web', Geneva, 'Lucida Sans Unicode', 'MS PGothic', Osaka, sans-serif " x="20" y="160">A sans-serif face 画像</text>
+ <text font-family="'Lucida Console', 'Courier New', Courier, Monaco, 'MS Gothic', Osaka-Mono, monospace" x="20" y="240">A mono (iW) face 画像</text>
+ <g id="generic" fill="maroon">
+ <text font-family="serif" x="40" y="50">A serifed face 画像</text>
+ <text font-family="sans-serif " x="40" y="130">A sans-serif face 画像</text>
+ <text font-family="monospace " x="40" y="210">A mono (iW) face 画像</text>
+ </g>
+ <text fill="green" font-family="'No such font at all', 'another fictitious one', sillynamewithoutspaces" x="40" y="290">This must be displayed</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-02-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-02-t-isvalid.html
new file mode 100644
index 0000000000..9a94bf4e81
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-02-t-isvalid.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-fonts-02-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-fonts-02-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-fonts-02-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Georgia,'Times New Roman',Times,'MS Mincho',serif" font-size="30">
+ <text font-weight="100" x="360" y="50">100</text>
+ <text font-weight="200" x="360" y="85">200</text>
+ <text font-weight="300" x="360" y="120">300</text>
+ <text font-weight="400" x="360" y="155">400</text>
+ <text font-weight="500" x="360" y="190">500</text>
+ <text fill="green" font-weight="600" x="360" y="225">600</text>
+ <text fill="green" font-weight="700" x="360" y="260">700</text>
+ <text fill="green" font-weight="800" x="360" y="295">800</text>
+ <text fill="green" font-weight="900" x="360" y="330">900</text>
+ <text font-weight="bold" x="60" y="80">This is bold</text>
+ <text font-weight="normal" x="60" y="130">This is normal</text>
+ <g font-weight="normal" fill="blue">
+ <text font-weight="bolder" x="60" y="180">Blue is bolder</text>
+ </g>
+ <g font-weight="bold" fill="blue">
+ <text font-weight="lighter" x="60" y="230">Blue is lighter</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-03-t-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-03-t-novalid.html
new file mode 100644
index 0000000000..8417477271
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-03-t-novalid.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-fonts-03-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-fonts-03-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-fonts-03-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-size="18">
+ <!-- Deliberately leave off font-family from the template #test-body-content
+ element, since we want the default font. -->
+ <defs>
+ <font>
+ <font-face font-family="SVGHaettenschweiler"/>
+ <glyph unicode="A" horiz-adv-x="440" d="M440 0l-160 0 -20 180 -80 0 -20 -180 -160 0 120 700 200 0 120 -700zm-200 280l-20 220 -20 -220 40 0z"/>
+ <glyph unicode="B" horiz-adv-x="378" d="M20 0l0 700 180 0c40,0 80,0 100,-20 40,-20 60,-60 60,-100l0 -100c0,-60 -40,-80 -100,-100 80,-20 100,-60 100,-100l0 -140c0,-40 -20,-80 -40,-100 -40,-20 -60,-40 -100,-40l-200 0zm200 460l0 120c0,20 -20,20 -40,20l0 -180c20,0 40,0 40,40zm0 -340l0 180c0,20 -20,40 -40,40l0 -260c20,0 40,20 40,40z"/>
+ <glyph unicode="C" horiz-adv-x="370" d="M360 460l-140 0 0 140c0,0 -20,20 -20,20 -20,0 -20,-20 -20,-20l0 -500c0,0 0,0 20,0 0,0 20,0 20,0l0 180 140 0 0 -180c0,-20 -20,-60 -60,-80 -20,-20 -60,-20 -100,-20 -120,0 -180,40 -180,120l0 460c0,80 60,120 180,120 100,0 160,-40 160,-120l0 -120z"/>
+ </font>
+ <font>
+ <font-face font-family="SVGCharlesworth"/>
+ <glyph unicode="A" horiz-adv-x="712" d="M-60 0l0 20c0,0 20,0 40,0 40,0 40,0 60,20 0,0 20,20 40,80 20,60 40,120 80,200 20,80 40,160 80,220 20,60 40,120 40,120 0,20 -20,20 -80,20l0 20c20,0 80,0 140,0 100,0 140,0 160,0l0 -20c-40,0 -80,0 -80,-20 20,-60 60,-140 80,-220 40,-100 80,-180 100,-260 40,-80 60,-140 60,-140 0,0 20,-20 40,-20 40,0 60,0 60,0l0 -20c0,0 -60,0 -180,0 -20,0 -40,0 -80,0 -40,0 -60,0 -80,0l0 20c20,0 60,0 80,0 20,0 20,20 20,20 0,0 -20,60 -40,140 -40,80 -40,120 -60,140 -60,0 -140,0 -220,0 -20,-20 -20,-40 -20,-80 -20,-40 -40,-80 -40,-120 -20,-60 -20,-80 -20,-80 20,-20 60,-20 80,-20l20 -20c-40,0 -80,0 -140,0 -80,0 -120,0 -140,0zm260 360c40,0 80,0 120,0 60,0 100,0 100,0 0,0 0,0 -20,40 0,20 -20,60 -40,100 0,40 -20,80 -20,100 -20,20 -20,40 -20,60l0 0c-20,-40 -40,-80 -60,-160 -40,-80 -60,-120 -60,-140z"/>
+ <glyph unicode="B" horiz-adv-x="684" d="M160 660c-20,20 -40,20 -100,20l-20 20c20,0 60,0 120,0 80,0 140,0 180,0 60,0 100,0 160,-20 40,-20 60,-60 60,-100 0,-40 -20,-100 -60,-120 -20,-40 -60,-60 -100,-80l0 0c40,0 60,-20 100,-40 20,0 40,-20 60,-40 20,-20 20,-40 40,-60 0,-20 0,-40 0,-60 0,-40 0,-60 -20,-100 -20,-20 -40,-40 -80,-60 -20,-20 -60,-20 -100,-20 -20,0 -40,0 -80,0 -60,0 -100,0 -160,0 -20,0 -60,0 -120,0l20 20c0,0 20,0 40,0 40,0 40,0 60,20 0,0 0,20 0,80 0,80 0,160 0,240 0,80 0,140 0,200 0,60 0,100 0,100zm120 -620c20,0 60,-20 80,-20 20,0 60,0 80,20 20,0 20,20 40,40 20,20 20,40 20,60 0,40 -20,80 -40,100 -20,40 -40,60 -80,80 -40,20 -60,20 -100,20 0,-20 0,-40 0,-80 0,-40 0,-80 0,-120 0,-40 0,-80 0,-100zm0 340c40,0 80,0 100,20 20,20 40,40 60,60 0,20 0,60 0,80 0,20 0,40 0,60 -20,20 -40,40 -60,60 -20,20 -40,20 -60,20 -20,0 -40,0 -40,0 0,0 0,-20 0,-40 0,-20 0,-60 0,-140 0,-60 0,-100 0,-120z"/>
+ <glyph unicode="C" horiz-adv-x="808" d="M740 480l-20 0c0,20 0,60 0,80 -20,20 -20,40 -40,60 -40,20 -60,20 -100,40 -40,20 -60,20 -100,20 -20,0 -20,0 -40,0 -40,0 -100,-20 -120,-40 -40,-20 -60,-40 -80,-80 -20,-20 -40,-40 -60,-80 0,-20 0,-60 0,-80 0,-60 0,-120 20,-160 20,-40 60,-80 100,-120 20,-20 80,-40 120,-60 40,-20 100,-40 140,-40 80,20 160,40 220,60l0 -40c-40,-20 -80,-40 -140,-40 -40,-20 -100,-20 -140,-20 -80,0 -140,20 -200,40 -80,20 -120,60 -180,100 -40,60 -60,120 -60,200 0,0 0,20 0,20 0,60 0,100 20,140 20,40 60,80 100,120 20,40 80,60 140,80 60,20 120,40 200,40 60,0 120,-20 200,-20 0,0 0,0 0,20 20,40 20,40 20,60l20 0c0,-20 0,-60 0,-140 -20,-100 -20,-140 -20,-160z"/>
+ </font>
+ </defs>
+
+ <text x="15" y="60" font-family="SVGFreeSansASCII,sans-serif" font-size="18">font-family = "Haettenschweiler"</text>
+ <text x="340" y="60" font-family="SVGHaettenschweiler" font-size="35">ABC</text>
+
+ <text x="15" y="110" font-family="SVGFreeSansASCII,sans-serif" font-size="18">font-family = "Charlesworth"</text>
+ <text x="340" y="110" font-family="SVGCharlesworth" font-size="35">ABC</text>
+
+ <text x="15" y="160" font-family="SVGFreeSansASCII,sans-serif" font-size="18">font-family = "Invalid Name"</text>
+ <text x="340" y="160" font-family="InvalidFontFamily" font-size="35">ABC</text>
+
+ <text x="15" y="210" font-family="SVGFreeSansASCII,sans-serif" font-size="18">font-family = not specified</text>
+ <text x="340" y="210" font-size="35">ABC</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-04-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-04-t-isvalid.html
new file mode 100644
index 0000000000..488e07f81b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-04-t-isvalid.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-fonts-04-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-fonts-04-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-fonts-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-size="18">
+ <!-- Deliberately leave off font-family from the template #test-body-content
+ element, since we want the default font. -->
+
+ <text x="15" y="60" font-family="SVGFreeSansASCII,sans-serif" font-size="18">font-family = "Haettenschweiler"</text>
+ <text x="340" y="60" font-family="Haettenschweiler" font-size="35">ABC</text>
+
+ <text x="15" y="110" font-family="SVGFreeSansASCII,sans-serif" font-size="18">font-family = "Charlesworth"</text>
+ <text x="340" y="110" font-family="Charlesworth" font-size="35">ABC</text>
+
+ <text x="15" y="160" font-family="SVGFreeSansASCII,sans-serif" font-size="18">font-family = "Invalid Name"</text>
+ <text x="340" y="160" font-family="InvalidFontFamily" font-size="35">ABC</text>
+
+ <text x="15" y="210" font-family="SVGFreeSansASCII,sans-serif" font-size="18">font-family = not specified</text>
+ <text x="340" y="210" font-size="35">ABC</text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-05-f-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-05-f-novalid.html
new file mode 100644
index 0000000000..0f008ed9a4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-05-f-novalid.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-fonts-05-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-fonts-05-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-fonts-05-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-size="18">
+ <text x="100" y="100" fill="blue" font-size="25">
+ <tspan x="50">FillerText</tspan>
+ <tspan x="160" line-height="100">FillerText</tspan>
+ <tspan x="270" line-height="200">FillerText</tspan>
+ </text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-202-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-202-t-isvalid.html
new file mode 100644
index 0000000000..acf7ebb1be
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-202-t-isvalid.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-fonts-202-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-fonts-202-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-fonts-202-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g font-family="'ZalamanderCaps', serif" font-size="30">
+ <text font-weight="100" x="360" y="50">100</text>
+ <text font-weight="200" x="360" y="85">200</text>
+ <text font-weight="300" x="360" y="120">300</text>
+ <text font-weight="400" x="360" y="155">400</text>
+ <text font-weight="500" x="360" y="190">500</text>
+ <text fill="green" font-weight="600" x="360" y="225">600</text>
+ <text fill="green" font-weight="700" x="360" y="260">700</text>
+ <text fill="green" font-weight="800" x="360" y="295">800</text>
+ <text fill="green" font-weight="900" x="360" y="330">900</text>
+ <text font-weight="bold" x="60" y="80">This is bold</text>
+ <text font-weight="normal" x="60" y="130">This is normal</text>
+ <g font-weight="normal" fill="blue">
+ <text font-weight="bolder" x="60" y="180">Blue is bolder</text>
+ </g>
+ <g font-weight="bold" fill="blue">
+ <text font-weight="lighter" x="60" y="230">Blue is lighter</text>
+ </g>
+ <g font-size="14">
+ <text x="30" y="270">ZalamanderCaps is an OpenType font</text>
+ <text x="30" y="290">by Tim Ahrens of Just Another Foundry</text>
+ </g>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+<!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-203-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-203-t-isvalid.html
new file mode 100644
index 0000000000..8c0743cad3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-203-t-isvalid.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-fonts-203-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-fonts-203-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-fonts-203-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font-face
+ font-family="ZC"
+ unicode-range="U+0-7F"
+ font-weight="300"
+ font-variant="small-caps">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/ZCL.svg#ZCL"/>
+ </font-face-src>
+ </font-face>
+ <font-face
+ font-family="ZC"
+ unicode-range="U+0-7F"
+ font-weight="400"
+ font-variant="small-caps">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/ZCR.svg#ZCR"/>
+ </font-face-src>
+ </font-face>
+ <font-face
+ font-family="ZC"
+ unicode-range="U+0-7F"
+ font-weight="600"
+ font-variant="small-caps">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/ZCSB.svg#ZCSB"/>
+ </font-face-src>
+ </font-face>
+ <font-face
+ font-family="ZC"
+ unicode-range="U+0-7F"
+ font-weight="700"
+ font-variant="small-caps">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/ZCB.svg#ZCB"/>
+ </font-face-src>
+ </font-face>
+ <font-face
+ font-family="ZC"
+ unicode-range="U+0-7F"
+ font-weight="800"
+ font-variant="small-caps">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/ZCXB.svg#ZCXB"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+
+ <g font-family="'ZC', serif" font-size="30" font-variant="small-caps">
+ <text font-weight="100" x="360" y="50">100</text>
+ <text font-weight="200" x="360" y="85">200</text>
+ <text font-weight="300" x="360" y="120">300</text>
+ <text font-weight="400" x="360" y="155">400</text>
+ <text font-weight="500" x="360" y="190">500</text>
+ <text fill="green" font-weight="600" x="360" y="225">600</text>
+ <text fill="green" font-weight="700" x="360" y="260">700</text>
+ <text fill="green" font-weight="800" x="360" y="295">800</text>
+ <text fill="green" font-weight="900" x="360" y="330">900</text>
+ <text font-weight="bold" x="60" y="80">This is bold</text>
+ <text font-weight="normal" x="60" y="130">This is normal</text>
+ <g font-weight="normal" fill="blue">
+ <text font-weight="bolder" x="60" y="180">Blue is bolder</text>
+ </g>
+ <g font-weight="bold" fill="blue">
+ <text font-weight="lighter" x="60" y="230">Blue is lighter</text>
+ </g>
+ <g font-size="14">
+ <text x="30" y="270">ZalamanderCaps is an OpenType font</text>
+ <text x="30" y="290">by Tim Ahrens of Just Another Foundry</text>
+ </g>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-204-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-204-t-isvalid.html
new file mode 100644
index 0000000000..26f5f710cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-fonts-204-t-isvalid.html
@@ -0,0 +1,111 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-fonts-204-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-fonts-204-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-fonts-204-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <style>
+ @font-face {
+ font-family: ZC;
+ unicode-range: U+0-7F;
+ font-variant: small-caps;
+ font-weight: 300;
+ src: url(woffs/ZCL.woff) format("woff")
+ }
+ @font-face {
+ font-family: ZC;
+ unicode-range: U+0-7F;
+ font-variant: small-caps;
+ font-weight: 400;
+ src: url(woffs/ZCR.woff) format("woff")
+ }
+ @font-face {
+ font-family: ZC;
+ unicode-range: U+0-7F;
+ font-variant: small-caps;
+ font-weight: 600;
+ src: url(woffs/ZCSB.woff) format("woff")
+ }
+ @font-face {
+ font-family: ZC;
+ unicode-range: U+0-7F;
+ font-variant: small-caps;
+ font-weight: 700;
+ src: url(woffs/ZCB.woff) format("woff")
+ }
+ @font-face {
+ font-family: ZC;
+ unicode-range: U+0-7F;
+ font-variant: small-caps;
+ font-weight: 800;
+ src: url(woffs/ZCXB.woff) format("woff")
+ }
+ </style>
+ </defs>
+
+ <g font-family="'ZC', serif" font-size="30" font-variant="small-caps">
+ <text font-weight="100" x="360" y="50">100</text>
+ <text font-weight="200" x="360" y="85">200</text>
+ <text font-weight="300" x="360" y="120">300</text>
+ <text font-weight="400" x="360" y="155">400</text>
+ <text font-weight="500" x="360" y="190">500</text>
+ <text fill="green" font-weight="600" x="360" y="225">600</text>
+ <text fill="green" font-weight="700" x="360" y="260">700</text>
+ <text fill="green" font-weight="800" x="360" y="295">800</text>
+ <text fill="green" font-weight="900" x="360" y="330">900</text>
+ <text font-weight="bold" x="60" y="80">This is bold</text>
+ <text font-weight="normal" x="60" y="130">This is normal</text>
+ <g font-weight="normal" fill="blue">
+ <text font-weight="bolder" x="60" y="180">Blue is bolder</text>
+ </g>
+ <g font-weight="bold" fill="blue">
+ <text font-weight="lighter" x="60" y="230">Blue is lighter</text>
+ </g>
+ <g font-size="14">
+ <text x="30" y="270">ZalamanderCaps is an OpenType font</text>
+ <text x="30" y="290">by Tim Ahrens of Just Another Foundry</text>
+ </g>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-01-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-01-t-isvalid.html
new file mode 100644
index 0000000000..7951c2c2d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-01-t-isvalid.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-intro-01-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-intro-01-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-intro-01-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font id="Missy" horiz-adv-x="5">
+ <font-face font-family="MissingInAction" font-weight="normal" font-style="normal" units-per-em="8" cap-height="8" x-height="4" ascent="8" descent="2" alphabetic="0" mathematical="4" ideographic="-2" hanging="8"/>
+ <missing-glyph d="M1,3h2v2h-2z"/>
+ </font>
+ </defs>
+ <text font-size="40" fill="blue" x="5" y="40">Test left-to-right text.</text>
+ <g font-size="17" font-family="MissingInAction, Georgia, 'Arial Hebrew', 'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'">
+ <text x="10" y="75">Polish: Mogę jeść szkło, i mi ...</text>
+ <text x="10" y="110">Russian: Я могу есть стекло, ...</text>
+ <text x="10" y="145" font-size="17">Greek: Μπορώ να φάω ...</text>
+ <text x="10" y="180">Hebrew: אני יכול לאכול זכוכית ... </text>
+ <text x="10" y="215">Yiddish: איך קען עסן גלאָז און ...</text>
+ </g>
+ <g font-size="17" font-family="MissingInAction, 'MS Song', SimHei,'LucidaSansUnicode', 'Arial Unicode MS'">
+ <text x="10" y="250">Chinese:我能吞下玻璃而不伤身体。</text>
+ </g>
+ <g font-size="17" font-family="MissingInAction, 'MS-Gothic','LucidaSansUnicode', 'Arial Unicode MS'">
+ <text x="10" y="285" font-size="17">Japanese: 私はガラスを食べます。</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-02-b-isvalid.html
new file mode 100644
index 0000000000..8a789427bd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-02-b-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-intro-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-intro-02-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-intro-02-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="17" fill="blue" x="10" y="40">unicode-bidi="bidi-override" direction="ltr".</text>
+ <g font-size="18" font-family="'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'">
+ <text x="10" y="80" unicode-bidi="bidi-override" direction="ltr">Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew</text>
+ </g>
+ <text font-size="17" fill="blue" x="10" y="140">unicode-bidi="bidi-override" direction="rtl".</text>
+ <g font-size="18" font-family="'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'">
+ <text x="10" y="180" unicode-bidi="bidi-override" direction="rtl" text-anchor="end">Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew</text>
+ </g>
+ <text font-size="17" fill="blue" x="10" y="240">unicode-bidi="normal" direction="rtl".</text>
+ <g font-size="18" font-family="'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'">
+ <text x="10" y="280" unicode-bidi="normal" direction="rtl" text-anchor="end">Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-03-b-isvalid.html
new file mode 100644
index 0000000000..d219e40393
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-03-b-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-intro-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-intro-03-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-intro-03-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="14" font-family="'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'" writing-mode="tb">
+ <text x="70" y="10">Text "我能吞下玻璃而不伤身体。" in Chinese</text>
+ <text x="230" y="10" font-size="13">Japanese: 私はガラスを食べられます。それは私を傷つけません。</text>
+ <text x="370" y="13" glyph-orientation-vertical="0" font-size="10">Japanese: 私はガラスを食べられます。それは私を傷つけません。</text>
+ <text x="120" y="80" font-size="32">xt "我能吞</text>
+ <text x="280" y="80" font-size="36">se: 私は</text>
+ <text x="420" y="80" glyph-orientation-vertical="0" font-size="32">se: 私は</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-04-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-04-t-isvalid.html
new file mode 100644
index 0000000000..4131a17e10
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-04-t-isvalid.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-intro-04-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-intro-04-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-intro-04-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-family="Arial" font-size="16" fill="blue" x="10" y="20">Test horizontal text.</text>
+ <g font-size="17" font-family="'Arial Hebrew', 'Arial Unicode MS', 'LucidaSansUnicode','MS-Gothic'">
+ <text x="10" y="60">Polish: Mogę jeść szkło, i mi nie szkodzi.</text>
+ <text x="10" y="90">Russian: Я могу есть стекло, это мне не вредит.</text>
+ <text x="10" y="120" font-size="15">Greek: Μπορώ να φάω σπασμένα γυαλιά χωρίς να πάθω τίποτα.</text>
+ <!-- Greek and japanese smaller just to make it fit on the line -->
+ <text x="10" y="150">Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew</text>
+ <text x="10" y="180">Yiddish: איך קען עסן גלאָז און עס טוט מיר נישט װײ.</text>
+ <text x="10" y="210">Chinese:我能吞下玻璃而不伤身体。</text>
+ <text x="10" y="240" font-size="15">Japanese: 私はガラスを食べられます。それは私を傷つけません。</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-05-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-05-t-isvalid.html
new file mode 100644
index 0000000000..fcd2a965cd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-05-t-isvalid.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-intro-05-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-intro-05-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-intro-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18" direction="rtl">
+ <text x="460" y="80" text-anchor="start" xml:lang="ar" font-size="30" font-family="Andalus">لماذا لا يتكلمون اللّغة العربية فحسب؟</text>
+ <!-- andalus font comes with Windows 2000 and XP -->
+ <text x="460" y="160" text-anchor="start" xml:lang="ar" font-size="36" font-family="'Diwani Letter'">لماذا لا يتكلمون اللّغة العربية فحسب؟</text>
+ <!-- Diwani fonts come with Microsoft Arabic fonts extension for Office XP
+http://www.microsoft.com/downloads/details.aspx?FamilyID=A83C0E03-8913-47A3-ACB7-8AC357627620&displaylang=AR -->
+ <text x="460" y="240" text-anchor="start" xml:lang="ar" font-size="30" font-family="'Nafees Naskh'">لماذا لا يتكلمون اللّغة العربية فحسب؟</text>
+ <!-- Nafees Nastaleeq and Nafees Naskh are freely available from
+ the Center for Research in Urdu Language Processing (CRULP http://www.crulp.org )
+ at the National University of Computer and Emerging Sciences, Pakistan
+ ( http://www.nu.edu.pk ) -->
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-06-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-06-t-isvalid.html
new file mode 100644
index 0000000000..033de9d745
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-06-t-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-intro-06-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-intro-06-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-intro-06-t.svg,v $</title>
+ <style>
+ @font-face {
+ font-family: Scheherezade;
+ src: url(woffs/ScheherazadeRegOT.woff) format("woff")
+ }
+ </style>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Kayrawan, Scheherezade, Andalus, Diwani Letter, serif" font-size="60" direction="rtl">
+ <path d="M10,120 L470,120" stroke="#BBB" />
+ <path d="M10,240 L470,240" stroke="#BBB" />
+ <text text-anchor="middle" x="240" y="120" font-size="140" xml:lang="ar" fill="#700">آلات</text>
+ <text text-anchor="middle" x="240" y="240" font-size="140" xml:lang="ar" fill="#700">ثلاثة</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-07-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-07-t-isvalid.html
new file mode 100644
index 0000000000..55d3a81764
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-07-t-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-intro-07-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-intro-07-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-intro-07-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <g font-family="Andalus,Diwani Letter,serif">
+ <path d="M10,120 L470,120" stroke="#BBB" />
+ <path d="M10,240 L470,240" stroke="#BBB" />
+ <text text-anchor="middle" x="240" y="120" font-size="140" xml:lang="ar" fill="#700">آلات</text>
+ <text text-anchor="middle" x="240" y="240" font-size="140" xml:lang="ar" fill="#700">ثلاثة</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg></body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-09-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-09-b-isvalid.html
new file mode 100644
index 0000000000..1b500ec07e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-09-b-isvalid.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-intro-09-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-intro-09-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-intro-09-b.svg,v $</title>
+ <defs>
+ <style>
+ @font-face {
+ font-family: Ezra SIL SR;
+ src: url(woffs/EzraSILSR.woff) format("woff");
+ }
+ </style>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="SVGHebrew" unicode-range="U+000D-FEFF">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/Heb.svg#SVGHebrew"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="17" fill="blue" x="10" y="40">unicode-bidi="bidi-override" direction="ltr".</text>
+ <g font-size="18" font-family="SVGHebrew, 'Ezra SIL SR', serif">
+ <text x="10" y="80" unicode-bidi="bidi-override" direction="ltr">Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew</text>
+ </g>
+ <text font-size="17" fill="blue" x="10" y="140">unicode-bidi="bidi-override" direction="rtl".</text>
+ <g font-size="18" font-family="SVGHebrew, 'Ezra SIL SR', serif">
+ <text x="10" y="180" unicode-bidi="bidi-override" direction="rtl" text-anchor="end">Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew</text>
+ </g>
+ <text font-size="17" fill="blue" x="10" y="240">unicode-bidi="normal" direction="rtl".</text>
+ <g font-size="18" font-family="SVGHebrew, 'Ezra SIL SR', serif">
+ <text x="10" y="280" unicode-bidi="normal" direction="rtl" text-anchor="end">Text "אני יכול לאכול זכוכית וזה לא מזיק לי" is in Hebrew</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-10-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-10-f-isvalid.html
new file mode 100644
index 0000000000..783afff2b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-10-f-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-intro-10-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-intro-10-f-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-intro-10-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g writing-mode="rl" direction="rtl">
+ <text x="460" y="80" text-anchor="start" xml:lang="ar" font-size="30" font-family="Andalus">لماذا لا يتكلمون اللّغة العربية فحسب؟</text>
+ <!-- andalus font comes with Windows 2000 and XP -->
+ <text x="460" y="160" text-anchor="start" xml:lang="ar" font-size="36" font-family="'Diwani Letter'">لماذا لا يتكلمون اللّغة العربية فحسب؟</text>
+ <!-- Diwani fonts come with Microsoft Arabic fonts extension for Office XP
+http://www.microsoft.com/downloads/details.aspx?FamilyID=A83C0E03-8913-47A3-ACB7-8AC357627620&displaylang=AR -->
+ <text x="460" y="240" text-anchor="start" xml:lang="ar" font-size="30" font-family="'Nafees Naskh'">لماذا لا يتكلمون اللّغة العربية فحسب؟</text>
+ <!-- Nafees Nastaleeq and Nafees Naskh are freely available from
+ the Center for Research in Urdu Language Processing (CRULP http://www.crulp.org )
+ at the National University of Computer and Emerging Sciences, Pakistan
+ ( http://www.nu.edu.pk ) -->
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-11-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-11-t-isvalid.html
new file mode 100644
index 0000000000..0e94a24dcf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-11-t-isvalid.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-intro-11-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-intro-11-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-intro-11-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Andalus,Diwani Letter,serif" font-size="60">
+ <path d="M120,10 L120,280" stroke="#BBB"/>
+ <path d="M240,10 L240,280" stroke="#BBB"/>
+ <path d="M360,10 L360,280" stroke="#BBB"/>
+ <path d="M10,120 L470,120" stroke="#BBB"/>
+ <path d="M10,240 L470,240" stroke="#BBB"/>
+ <text text-anchor="middle" x="240" y="120" xml:lang="ar" fill="#700">آلات</text>
+ <text text-anchor="start" x="360" y="120" xml:lang="ar">آلات</text>
+ <text text-anchor="end" x="120" y="120" xml:lang="ar" fill="#009">آلات</text>
+ <text text-anchor="middle" x="240" y="240" xml:lang="ar" fill="#700">ثلاثة</text>
+ <text text-anchor="start" x="360" y="240" xml:lang="ar">ثلاثة</text>
+ <text text-anchor="end" x="120" y="240" xml:lang="ar" fill="#009">ثلاثة</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-12-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-12-t-isvalid.html
new file mode 100644
index 0000000000..30203c9921
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-intro-12-t-isvalid.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-intro-12-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-intro-12-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-intro-12-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <style>
+ @font-face {
+ font-family: Scheherazade;
+ src: url(woffs/ScheherazadeRegOT.woff) format("woff");
+ }
+ </style>
+ <g font-family="Scheherazade,serif" font-size="60" direction="rtl">
+ <path d="M10,120 L470,120" stroke="#BBB" />
+ <path d="M10,240 L470,240" stroke="#BBB" />
+ <text text-anchor="middle" x="240" y="120" font-size="140" xml:lang="ar" fill="#700">آلات</text>
+ <text text-anchor="middle" x="240" y="240" font-size="140" xml:lang="ar" fill="#700">ثلاثة</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-path-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-path-01-b-isvalid.html
new file mode 100644
index 0000000000..e5f9b605e8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-path-01-b-isvalid.html
@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-path-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-path-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-path-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <path id="Path1" fill="none" stroke="blue" d="M199 89.3 C206.6 66.6 235.8 13.2 270 30.3 286.6 38.6 298.9 59.4 310 73.3 321.7 87.9 338.6 99 356 103.3 387.3 111.1 396.6 90.4 418 74.3"/>
+ <path id="Path2" fill="none" stroke="blue" d="M33.5 145.8 C41 123 70.3 69.7 104.5 86.8 121 95 133 116 144.5 129.8 156.2 144.4 173 155.5 190.5 159.8 221.8 167.6 231 146.9 252.5 130.8"/>
+ <path id="Path3" fill="none" stroke="blue" stroke-width="4" d="M113 233 L413 233 "/>
+ </defs>
+ <g id="text-on-path-01">
+ <use xlink:href="#Path1" fill="none" stroke="blue"/>
+ <text font-size="36" font-family="Georgia" fill="black">
+ <textPath xlink:href="#Path1">Text on a path</textPath>
+ </text>
+ </g>
+ <g id="text-on-path-02">
+ <!-- using tspan to change text color and position -->
+ <use xlink:href="#Path2" fill="none" stroke="blue"/>
+ <text font-size="36" font-family="Georgia" fill="black">
+ <textPath xlink:href="#Path2">
+ <tspan dy="-12" fill="fuchsia">Te</tspan><tspan dy="12">x</tspan>t on a path
+ </textPath>
+ </text>
+ <rect x="17" y="169" width="274" height="41" fill="none" stroke="black"/>
+ <text x="19" y="185" font-size="20" font-family="Arial">'tspan' subelement inside </text>
+ <text x="19" y="207" font-size="20" font-family="Arial">the 'textPath' element.</text>
+ </g>
+ <g id="text-on-path-03">
+ <use xlink:href="#Path3" fill="none" stroke="blue" stroke-width="4"/>
+ <text font-size="24" font-family="Arial" fill="black">
+ <textPath xlink:href="#Path3" startOffset="33%">The Text on path</textPath>
+ </text>
+ <rect x="118" y="250" width="260" height="41" fill="none" stroke="black"/>
+ <text x="120" y="267" font-size="20" font-family="Arial">'startOffset' attribute of the</text>
+ <text x="120" y="287" font-size="20" font-family="Arial">'textPath' element.</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-path-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-path-02-b-isvalid.html
new file mode 100644
index 0000000000..5a0ca938af
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-path-02-b-isvalid.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-path-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-path-02-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-path-02-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII, FreeSansWoff, sans-serif" font-size="18">
+ <defs>
+ <style>
+ @font-face {
+ font-family: FreeSansWoff;
+ src: url(woffs/FreeSans.woff) format("woff");
+ }
+ </style>
+ <path id="Path1" fill="none" stroke="blue" d="M199 89.3 C206.6 66.6 235.8 13.2 270 30.3 286.6 38.6 298.9 59.4 310 73.3 321.7 87.9 338.6 99 356 103.3 387.3 111.1 396.6 90.4 418 74.3"/>
+ <path id="Path2" fill="none" stroke="blue" d="M33.5 145.8 C41 123 70.3 69.7 104.5 86.8 121 95 133 116 144.5 129.8 156.2 144.4 173 155.5 190.5 159.8 221.8 167.6 231 146.9 252.5 130.8"/>
+ </defs>
+ <g id="text-on-path-01">
+ <use xlink:href="#Path1" fill="none" stroke="blue" />
+ <text font-size="36" fill="black" >
+ <textPath xlink:href="#Path1"><tspan dx="-240">Positive offset Negative offset</tspan></textPath>
+ </text>
+ </g>
+ <g id="text-on-path-02">
+ <use xlink:href="#Path2" fill="none" stroke="blue" />
+ <text font-size="36" fill="black" >
+ <textPath xlink:href="#Path2" startOffset="-240">Positive offset Negative offset</textPath>
+ </text>
+ </g>
+ <g transform="translate(0 150)">
+ <g id="text-on-path-03">
+ <use xlink:href="#Path1" fill="none" stroke="blue" />
+ <text font-size="36" fill="black" >
+ <textPath xlink:href="#Path1"><tspan dx="60">Positive offset Negative offset</tspan></textPath>
+ </text>
+ </g>
+ <g id="text-on-path-04">
+ <use xlink:href="#Path2" fill="none" stroke="blue" />
+ <text font-size="36" fill="black" >
+ <textPath xlink:href="#Path2" startOffset="60">Positive offset Negative offset</textPath>
+ </text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-spacing-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-spacing-01-b-isvalid.html
new file mode 100644
index 0000000000..d9e3826cda
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-spacing-01-b-isvalid.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-spacing-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-spacing-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 80 60"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-spacing-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-family="Arial" font-size="8">
+ <text x="3" y="8"> letter-spacing:0 </text>
+ <text x="3" y="16" letter-spacing="-1">letter-spacing:-1</text>
+ <text x="3" y="24" letter-spacing=".3">letter-spacing:.3</text>
+ <text x="3" y="33">ws:0 - Two Words</text>
+ <text x="3" y="41" word-spacing="-3">ws:-3 - Two Words</text>
+ <text x="3" y="49" word-spacing="3">ws:3 - Two Words</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="6">
+ <text id="revision" x="10" y="57" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="78" height="58" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-text-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-01-b-isvalid.html
new file mode 100644
index 0000000000..800a0e6574
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-01-b-isvalid.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-text-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-text-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 160 120"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-text-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="14" y="10" font-size="10" fill="black">Basic test of 'textLength' </text>
+ <text x="10" y="20" font-size="10" fill="black">and 'lengthAdjust' attributes.</text>
+ <!-- Test cases 1&2: all defaults -->
+ <g id="test-1-2">
+ <!-- The text lines -->
+ <g font-size="8" fill="blue">
+ <text x="3" y="30">Line to Stretch</text>
+ <text x="75" y="30">this is a line to squeeze</text>
+ </g>
+ <!-- Length reference lines -->
+ <!-- (half ticks here only, as these lengths can validly vary slightly) -->
+ <g stroke="fuchsia">
+ <line x1="2" y1="32" x2="56" y2="32"/>
+ <!-- <line x1="39" y1="70" x2="39" y2="84" /> -->
+ <line x1="2" y1="32" x2="2" y2="36"/>
+ <!-- <line x1="145" y1="70" x2="145" y2="84" /> -->
+ <line x1="56" y1="32" x2="56" y2="36"/>
+ <line x1="74" y1="32" x2="158" y2="32"/>
+ <!-- <line x1="244" y1="70" x2="244" y2="84" /> -->
+ <line x1="74" y1="32" x2="74" y2="36"/>
+ <!-- <line x1="412" y1="70" x2="412" y2="84" /> -->
+ <line x1="158" y1="32" x2="158" y2="36"/>
+ </g>
+ <!-- Labels -->
+ <g font-size="6" fill="black">
+ <text x="6" y="38">textLength: default</text>
+ <text x="6" y="44">lengthAdjust: default</text>
+ <text x="76" y="38">textLength: default</text>
+ <text x="76" y="44">lengthAdjust: default</text>
+ </g>
+ </g>
+ <!-- Test cases 3&4: define textLength, default lengthAdjust-->
+ <g id="test-3-4" transform="translate(0,22)">
+ <!-- The text lines -->
+ <g font-size="8" fill="blue">
+ <text x="3" y="30" textLength="65">Line to Stretch</text>
+ <text x="75" y="30" textLength="65">this is a line to squeeze</text>
+ </g>
+ <!-- Length reference lines -->
+ <g stroke="fuchsia">
+ <line x1="2" y1="32" x2="69" y2="32"/>
+ <line x1="2" y1="32" x2="2" y2="36"/>
+ <line x1="69" y1="32" x2="69" y2="36"/>
+ <line x1="74" y1="32" x2="141" y2="32"/>
+ <line x1="74" y1="32" x2="74" y2="36"/>
+ <line x1="141" y1="32" x2="141" y2="36"/>
+ </g>
+ <!-- Labels -->
+ <g font-size="6" fill="black">
+ <text x="6" y="38">textLength: 25% longer</text>
+ <text x="6" y="44">lengthAdjust: default</text>
+ <text x="76" y="38">textLength: 15% shorter</text>
+ <text x="76" y="44">lengthAdjust: default</text>
+ </g>
+ </g>
+ <!-- Test cases 5&6: define textLength, lengthAdjust=spacing -->
+ <g id="test-5-6" transform="translate(0,44)">
+ <!-- The text lines -->
+ <g font-size="8" fill="blue">
+ <text x="3" y="30" textLength="65" lengthAdjust="spacing">Line to Stretch</text>
+ <text x="75" y="30" textLength="65" lengthAdjust="spacing">this is a line to squeeze</text>
+ </g>
+ <!-- Length reference lines -->
+ <g stroke="fuchsia">
+ <line x1="2" y1="32" x2="69" y2="32"/>
+ <line x1="2" y1="32" x2="2" y2="36"/>
+ <line x1="69" y1="32" x2="69" y2="36"/>
+ <line x1="74" y1="32" x2="141" y2="32"/>
+ <line x1="74" y1="32" x2="74" y2="36"/>
+ <line x1="141" y1="32" x2="141" y2="36"/>
+ </g>
+ <!-- Labels -->
+ <g font-size="6" fill="black">
+ <text x="3" y="38">textLength: 25% longer</text>
+ <text x="3" y="44">lengthAdjust: spacing</text>
+ <text x="76" y="38">textLength: 15% shorter</text>
+ <text x="76" y="44">lengthAdjust: spacing</text>
+ </g>
+ </g>
+ <!-- Test cases 7&8: define textLength, lengthAdjust=spacingAndGlyphs -->
+ <g id="test-7-8" transform="translate(0,66)">
+ <!-- The text lines -->
+ <g font-size="8" fill="blue">
+ <text x="3" y="30" textLength="65" lengthAdjust="spacingAndGlyphs">Line to Stretch</text>
+ <text x="75" y="30" textLength="65" lengthAdjust="spacingAndGlyphs">this is a line to squeeze</text>
+ </g>
+ <!-- Length reference lines -->
+ <g stroke="fuchsia">
+ <line x1="2" y1="32" x2="69" y2="32"/>
+ <line x1="2" y1="32" x2="2" y2="36"/>
+ <line x1="69" y1="32" x2="69" y2="36"/>
+ <line x1="74" y1="32" x2="141" y2="32"/>
+ <line x1="74" y1="32" x2="74" y2="36"/>
+ <line x1="141" y1="32" x2="141" y2="36"/>
+ </g>
+ <!-- Labels -->
+ <g font-size="6" fill="black">
+ <text x="6" y="38">textLength: 25% longer</text>
+ <text x="6" y="44">lengthAdjust: sAG</text>
+ <text x="76" y="38">textLength: 20% shorter</text>
+ <text x="76" y="44">lengthAdjust: sAG</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="8">
+ <text id="revision" x="10" y="117" stroke="none" fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="158" height="118" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-text-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-03-b-isvalid.html
new file mode 100644
index 0000000000..d7b3d08a9a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-03-b-isvalid.html
@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-text-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-text-03-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-text-03-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="FreeSerif" unicode-range="U+0-7F" font-weight="400">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/FreeSerif.svg#FreeSerif"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="FreeSerif" unicode-range="U+0-7F" font-weight="700">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/FreeSerifBold.svg#FreeSerifBold"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="FreeSerif" unicode-range="U+0-7F" font-weight="400" font-style="italic">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/FreeSerifItalic.svg#FreeSerifItalic"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="FreeSerif" unicode-range="U+0-7F" font-weight="700" font-style="italic">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/FreeSerifBoldItalic.svg#FreeSerifBoldItalic"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="FreeSerif, serif" font-size="18">
+ <text x="19" y="61" font-size="32" fill="blue">Plain</text>
+ <text x="142" y="61" font-size="32" font-style="italic" fill="blue">Italic</text>
+ <text x="257" y="60" font-size="32" font-weight="bold" fill="blue">Bold</text>
+ <text x="224" y="110" font-size="32" fill="blue" text-decoration="underline">Underline</text>
+ <text x="39" y="147" font-size="32" fill="fuchsia" text-decoration="line-through">Line through</text>
+ <text x="1" y="200" font-size="32" font-style="italic" font-weight="bold" fill="black" text-decoration="underline">Bold, italic and underlined</text>
+ <g>
+ <rect x="50" y="225" width="380" height="64" fill="none" stroke="black" stroke-width="2"/>
+ <g font-family="SVGFreeSansASCII,sans-serif">
+ <text x="55" y="245" font-size="24" fill="black">Each line of text which flows in a </text>
+ <text x="55" y="265" font-size="24" fill="black">rectangular box has to be broken</text>
+ <text x="55" y="285" font-size="24" fill="black">into separated lines.</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-text-04-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-04-t-isvalid.html
new file mode 100644
index 0000000000..91319e57b4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-04-t-isvalid.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-text-04-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-text-04-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-text-04-t.svg,v $</title>
+ <style>
+ @font-face {
+ font-family: embeded;
+ src: url(woffs/embeded-text-text-04.woff) format("woff");
+ }
+ </style>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <font id="embeded" horiz-adv-x="224">
+ <font-face font-family="embeded" units-per-em="1000" ascent="1000" descent="-250" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="800" d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z"/>
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="750" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="750" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="750" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/>
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="750" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/>
+ </font>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g font-size="16">
+ <g id="reference" transform="translate(130, 40)">
+ <text text-anchor="end" x="-30">Reference</text>
+ <g>
+ <use xlink:href="#marker" x="0" fill="#8888FF"/>
+ <use xlink:href="#marker" x="15" fill="#8888FF"/>
+ <use xlink:href="#marker" x="30" fill="#8888FF"/>
+ <use xlink:href="#marker" x="45" fill="#8888FF"/>
+ <text id="ref" font-family="embeded" font-size="20">1234</text>
+ </g>
+ </g>
+ <defs>
+ <rect id="marker" x="-4" y="-4" width="8" height="8"/>
+ </defs>
+ <g id="xAll" transform="translate(130, 80)">
+ <text text-anchor="end" x="-30">x all</text>
+ <use xlink:href="#marker" x="0" fill="orange"/>
+ <use xlink:href="#marker" x="20" fill="#8888FF"/>
+ <use xlink:href="#marker" x="40" fill="#8888FF"/>
+ <use xlink:href="#marker" x="60" fill="#8888FF"/>
+ <use xlink:href="#marker" x="80" fill="#8888FF"/>
+ <text font-family="embeded" font-size="20" x="20 40 60 80">1234</text>
+ </g>
+
+ <g id="xMore" transform="translate(130, 120)">
+ <text text-anchor="end" x="-30">x more</text>
+ <use xlink:href="#marker" x="0" fill="orange"/>
+ <use xlink:href="#marker" x="20" fill="#8888FF"/>
+ <use xlink:href="#marker" x="40" fill="#8888FF"/>
+ <use xlink:href="#marker" x="60" fill="#8888FF"/>
+ <use xlink:href="#marker" x="80" fill="#8888FF"/>
+ <use xlink:href="#marker" x="100" fill="orange"/>
+ <text font-family="embeded" font-size="20" x="20 40 60 80 100">1234</text>
+ </g>
+
+ <g id="xFewer" transform="translate(130, 160)">
+ <text text-anchor="end" x="-30">x fewer</text>
+ <use xlink:href="#marker" x="0" fill="orange"/>
+ <use xlink:href="#marker" x="20" fill="#8888FF"/>
+ <use xlink:href="#marker" x="40" fill="#8888FF"/>
+ <use xlink:href="#marker" x="60" fill="#8888FF"/>
+ <use xlink:href="#marker" x="75" fill="#8888FF"/>
+ <text font-family="embeded" font-size="20" x="20 40 60">1234</text>
+ </g>
+
+ <g id="yAll" transform="translate(130, 200)">
+ <text text-anchor="end" x="-30">y all</text>
+ <use xlink:href="#marker" x="0" y="-10" fill="#8888FF"/>
+ <use xlink:href="#marker" x="15" y="-5" fill="#8888FF"/>
+ <use xlink:href="#marker" x="30" y="5" fill="#8888FF"/>
+ <use xlink:href="#marker" x="45" y="10" fill="#8888FF"/>
+ <text font-family="embeded" font-size="20" y="-10 -5 5 10">1234</text>
+ </g>
+
+ <g id="yMore" transform="translate(130, 250)">
+ <text text-anchor="end" x="-30">y more</text>
+ <use xlink:href="#marker" x="0" y="-10" fill="#8888FF"/>
+ <use xlink:href="#marker" x="15" y="-5" fill="#8888FF"/>
+ <use xlink:href="#marker" x="30" y="5" fill="#8888FF"/>
+ <use xlink:href="#marker" x="45" y="10" fill="#8888FF"/>
+ <text font-family="embeded" font-size="20" y="-10 -5 5 10 20">1234</text>
+ </g>
+
+ <g id="yFewer" transform="translate(130, 300)">
+ <text text-anchor="end" x="-30">y fewer</text>
+ <use xlink:href="#marker" x="0" y="-10" fill="#8888FF"/>
+ <use xlink:href="#marker" x="15" y="-5" fill="#8888FF"/>
+ <use xlink:href="#marker" x="30" y="5" fill="#8888FF"/>
+ <use xlink:href="#marker" x="45" y="5" fill="#8888FF"/>
+ <text font-family="embeded" font-size="20" y="-10 -5 5">1234</text>
+ </g>
+
+ <g transform="translate(220, 0)">
+ <g id="xyAll" transform="translate(130, 80)">
+ <text text-anchor="end" x="-30">x/y all</text>
+ <use xlink:href="#marker" x="0" fill="orange"/>
+ <use xlink:href="#marker" x="20" y="-10" fill="#8888FF"/>
+ <use xlink:href="#marker" x="40" y="-5" fill="#8888FF"/>
+ <use xlink:href="#marker" x="60" y="5" fill="#8888FF"/>
+ <use xlink:href="#marker" x="80" y="10" fill="#8888FF"/>
+ <text font-family="embeded" font-size="20" x="20 40 60 80" y="-10 -5 5 10">1234</text>
+ </g>
+
+ <g id="xyMore" transform="translate(130, 120)">
+ <text text-anchor="end" x="-30">x/y more</text>
+ <use xlink:href="#marker" x="0" fill="orange"/>
+ <use xlink:href="#marker" x="20" y="-10" fill="#8888FF"/>
+ <use xlink:href="#marker" x="40" y="-5" fill="#8888FF"/>
+ <use xlink:href="#marker" x="60" y="5" fill="#8888FF"/>
+ <use xlink:href="#marker" x="80" y="10" fill="#8888FF"/>
+ <use xlink:href="#marker" x="100" y="20" fill="orange"/>
+ <text font-family="embeded" font-size="20" x="20 40 60 80 100" y="-10 -5 5 10 20">1234</text>
+ </g>
+
+ <g id="xyFewer" transform="translate(130, 160)">
+ <text text-anchor="end" x="-30">x/y fewer</text>
+ <use xlink:href="#marker" x="0" fill="orange"/>
+ <use xlink:href="#marker" x="20" y="-10" fill="#8888FF"/>
+ <use xlink:href="#marker" x="40" y="-5" fill="#8888FF"/>
+ <use xlink:href="#marker" x="60" y="5" fill="#8888FF"/>
+ <use xlink:href="#marker" x="75" y="5" fill="#8888FF"/>
+ <text font-family="embeded" font-size="20" x="20 40 60" y="-10 -5 5">1234</text>
+ </g>
+
+ <g id="xAllyFewer" transform="translate(130, 200)">
+ <text text-anchor="end" x="-30">x all y fewer</text>
+ <use xlink:href="#marker" x="0" fill="orange"/>
+ <use xlink:href="#marker" x="20" y="-10" fill="#8888FF"/>
+ <use xlink:href="#marker" x="40" y="-5" fill="#8888FF"/>
+ <use xlink:href="#marker" x="60" y="5" fill="#8888FF"/>
+ <use xlink:href="#marker" x="80" y="5" fill="#8888FF"/>
+ <text font-family="embeded" font-size="20" x="20 40 60 80" y="-10 -5 5">1234</text>
+ </g>
+
+ <g id="xFewerYall" transform="translate(130, 240)">
+ <text text-anchor="end" x="-30">x fewer y all</text>
+ <use xlink:href="#marker" x="0" fill="orange"/>
+ <use xlink:href="#marker" x="20" y="-10" fill="#8888FF"/>
+ <use xlink:href="#marker" x="40" y="-5" fill="#8888FF"/>
+ <use xlink:href="#marker" x="60" y="5" fill="#8888FF"/>
+ <use xlink:href="#marker" x="77.52" y="10" fill="#8888FF"/>
+ <text font-family="embeded" font-size="20" x="20 40 60" y="-10 -5 5 10">1234</text>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.12 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-text-05-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-05-t-isvalid.html
new file mode 100644
index 0000000000..8575bf4398
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-05-t-isvalid.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-text-05-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-text-05-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-text-05-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <style>
+ @font-face {
+ font-family: embeded;
+ src: url(woffs/embeded-text-text-05.woff) format("woff");
+ }
+ </style>
+ <g font-size="16">
+ <defs>
+ <font id="embeded" horiz-adv-x="224">
+ <font-face font-family="embeded" units-per-em="1000" panose-1="0 0 0 0 0 0 0 0 0 0" ascent="917" descent="-250" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="800" d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z"/>
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="1500" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="1500" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/>
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1500" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/>
+ </font>
+
+ </defs>
+
+ <defs>
+ <g id="marker">
+ <line y2="-15" stroke="fuchsia"/>
+ <rect x="-4" y="-4" width="8" height="8"/>
+ </g>
+ </defs>
+
+ <g id="legend" transform="translate(10, 40)">
+ <text y="30">1.x 1.y</text>
+ <text y="60">4.x 1.y</text>
+ <text y="90">2.x 1.y</text>
+ <text y="120">1.x 4.y</text>
+ <text y="150">4.x 4.y</text>
+ <text y="180">2.x 4.y</text>
+ <text y="210">1.x 2.y</text>
+ <text y="240">4.x 2.y</text>
+ <text y="270">2.x 2.y</text>
+ </g>
+
+ <g id="anchorStart" text-anchor="start" transform="translate(150, 40)">
+ <text y="-17" text-anchor="middle">text-anchor</text>
+ <text y="-3" text-anchor="middle">start</text>
+ <line x1="0" y1="10" x2="0" y2="290" stroke="fuchsia"/>
+
+ <g id="textContent">
+ <!-- 1.x 1.y -->
+ <use y="30" xlink:href="#marker" fill="#8888ff"/>
+ <text x="0" y="30" font-family="embeded" font-size="10">1234</text>
+
+ <!-- 4.x 1.y : four text chunks -->
+ <use x="10" y="60" xlink:href="#marker" fill="#8888ff"/>
+ <use x="20" y="60" xlink:href="#marker" fill="#8888ff"/>
+ <use x="30" y="60" xlink:href="#marker" fill="#8888ff"/>
+ <use x="40" y="60" xlink:href="#marker" fill="#8888ff"/>
+ <text x="10 20 30 40" y="60" font-family="embeded" font-size="10">1234</text>
+
+ <!-- 2.x 1.y : two text chunks -->
+ <use x="10" y="90" xlink:href="#marker" fill="#8888ff"/>
+ <use x="60" y="90" xlink:href="#marker" fill="#8888ff"/>
+ <text x="10 60" y="90" font-family="embeded" font-size="10">1234</text>
+
+ <!-- 1.x 4.y : four text chunks -->
+ <g transform="translate(0, 120)">
+ <use x="0" y="-10" xlink:href="#marker" fill="#8888ff"/>
+ <use x="15" y="-5" xlink:href="#marker" fill="#8888ff"/>
+ <use x="30" y="5" xlink:href="#marker" fill="#8888ff"/>
+ <use x="45" y="10" xlink:href="#marker" fill="#8888ff"/>
+ <text x="0" y="-10 -5 5 10" font-family="embeded" font-size="10">1234</text>
+ </g>
+
+ <!-- 4.x 4.y : four text chunks -->
+ <g transform="translate(0, 150)">
+ <use x="10" y="-10" xlink:href="#marker" fill="#8888ff"/>
+ <use x="20" y="-5" xlink:href="#marker" fill="#8888ff"/>
+ <use x="30" y="5" xlink:href="#marker" fill="#8888ff"/>
+ <use x="40" y="10" xlink:href="#marker" fill="#8888ff"/>
+ <text x="10 20 30 40" y="-10 -5 5 10" font-family="embeded" font-size="10">1234</text>
+ </g>
+
+ <!-- 2.x 4.y : four text chunks -->
+ <g transform="translate(0, 180)">
+ <use x="10" y="-10" xlink:href="#marker" fill="#8888ff"/>
+ <use x="20" y="-5" xlink:href="#marker" fill="#8888ff"/>
+ <use x="35" y="5" xlink:href="#marker" fill="#8888ff"/>
+ <use x="50" y="10" xlink:href="#marker" fill="#8888ff"/>
+ <text x="10 20" y="-10 -5 5 10" font-family="embeded" font-size="10">1234</text>
+ </g>
+
+ <!-- 1.x 2.y : two text chunks -->
+ <g transform="translate(0, 210)">
+ <use x="0" y="-10" xlink:href="#marker" fill="#8888ff"/>
+ <use x="15" y="5" xlink:href="#marker" fill="#8888ff"/>
+ <text x="0" y="-10 5" font-family="embeded" font-size="10">1234</text>
+ </g>
+
+ <!-- 4.x 2.y : four text chunks -->
+ <g transform="translate(0, 240)">
+ <use x="10" y="-10" xlink:href="#marker" fill="#8888ff"/>
+ <use x="20" y="-5" xlink:href="#marker" fill="#8888ff"/>
+ <use x="30" y="-5" xlink:href="#marker" fill="#8888ff"/>
+ <use x="40" y="-5" xlink:href="#marker" fill="#8888ff"/>
+ <text x="10 20 30 40" y="-10 -5" font-family="embeded" font-size="10">1234</text>
+ </g>
+
+ <!-- 2.x 2.y : two text chunks -->
+ <g transform="translate(0, 270)">
+ <use x="10" y="-10" xlink:href="#marker" fill="#8888ff"/>
+ <use x="60" y="-5" xlink:href="#marker" fill="#8888ff"/>
+ <text x="10 60" y="-10 -5" font-family="embeded" font-size="10">1234</text>
+ </g>
+
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-text-06-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-06-t-isvalid.html
new file mode 100644
index 0000000000..0d97c013f7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-06-t-isvalid.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-text-06-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-text-06-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-text-06-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <style>
+ @font-face {
+ font-family: embeded;
+ src: url(woffs/embeded-text-text-06.woff) format("woff");
+ }
+ </style>
+ <g font-size="10">
+ <defs>
+ <font id="embeded" horiz-adv-x="224">
+ <font-face font-family="embeded" units-per-em="1000" panose-1="0 0 0 0 0 0 0 0 0 0" ascent="917" descent="-250" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="800" d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z"/>
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="1500" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="1500" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/>
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1500" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/>
+ <glyph unicode="fi" glyph-name="fi" horiz-adv-x="1500" d="M 0 0 L 500 0 L 0 700 L 500 700 Z"/>
+ </font>
+ </defs>
+
+ <defs>
+ <g id="marker">
+ <line y2="-15" stroke="orange"/>
+ <rect x="-4" y="-4" width="8" height="8"/>
+ </g>
+ </defs>
+
+ <g transform="translate(20, 30)">
+ <g id="legend" transform="translate(10, 40)" font-size="12">
+ <text>x positioning</text>
+ <text y="40">y positioning</text>
+ <text y="140">x/y positioning</text>
+ </g>
+
+ <g transform="translate(100, 40)">
+ <use xlink:href="#marker" x="10" fill="#8888ff"/>
+ <use xlink:href="#marker" x="180" fill="orange"/>
+ <use xlink:href="#marker" x="40" fill="#8888ff"/>
+ <use xlink:href="#marker" x="70" fill="#8888ff"/>
+ <use xlink:href="#marker" x="100" fill="#8888ff"/>
+ <use xlink:href="#marker" x="130" fill="#8888ff"/>
+ <text x="10 180 40 70 100 130" y="0" font-family="embeded">fi1234</text>
+ </g>
+
+ <g transform="translate(100, 80)">
+ <use xlink:href="#marker" y="-10" fill="#8888ff"/>
+ <use xlink:href="#marker" x="15" y="50" fill="orange"/>
+ <use xlink:href="#marker" x="15" y="0" fill="#8888ff"/>
+ <use xlink:href="#marker" x="30" y="10" fill="#8888ff"/>
+ <use xlink:href="#marker" x="45" y="20" fill="#8888ff"/>
+ <use xlink:href="#marker" x="60" y="30" fill="#8888ff"/>
+ <text y="-10 50 0 10 20 30" x="0" font-family="embeded">fi1234</text>
+ </g>
+
+ <g transform="translate(100, 180)">
+ <use xlink:href="#marker" x="10" y="-10" fill="#8888ff"/>
+ <use xlink:href="#marker" x="180" y="50" fill="orange"/>
+ <use xlink:href="#marker" x="40" y="0" fill="#8888ff"/>
+ <use xlink:href="#marker" x="70" y="10" fill="#8888ff"/>
+ <use xlink:href="#marker" x="100" y="20" fill="#8888ff"/>
+ <use xlink:href="#marker" x="130" y="30" fill="#8888ff"/>
+ <text x="10 180 40 70 100 130" y="-10 50 0 10 20 30" font-family="embeded">fi1234</text>
+ </g>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.9 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-text-07-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-07-t-isvalid.html
new file mode 100644
index 0000000000..70414a516b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-07-t-isvalid.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-text-07-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-text-07-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-text-07-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="240 260 280 300 320 340 360" y="60 80 100 120 140 160 180 200" font-size="35">Multi X Y</text>
+ <text x="10" y="60" rotate="0 10 20 30 40 50 60" font-size="35">ROTATE</text>
+ <text x="10 30 50 70 90 110 130 150 170 190 210 230 250" y="300 290 280 270 260 250 240 230 220 210 200 190 180" rotate="0 -10 -20 -30 -40 -50 -60 -70 -80 -90 -100 -110 -120" font-size="35">Both Together</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-text-08-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-08-b-isvalid.html
new file mode 100644
index 0000000000..a0735eae15
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-08-b-isvalid.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-text-08-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-text-08-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-text-08-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="19" y="60" font-size="64" font-family="Verdana" fill="blue" stroke="fuchsia" stroke-width="2">Normal Text</text>
+ <text x="19" y="120" font-size="64" font-family="Verdana" fill="blue" stroke="fuchsia" stroke-width="2" fill-opacity="0.50">Fill opacity</text>
+ <text x="19" y="180" font-size="64" font-family="Verdana" fill="blue" stroke="fuchsia" stroke-width="2" stroke-opacity="0.50">Stroke opacity</text>
+ <text x="19" y="240" font-size="64" font-family="Verdana" fill="blue" stroke="fuchsia" stroke-width="2" opacity="0.50">Opacity</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-text-09-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-09-t-isvalid.html
new file mode 100644
index 0000000000..1512cb330a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-09-t-isvalid.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-text-09-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-text-09-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-text-09-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text x="240 260 280 300" y="60 80 100 120 140" font-size="35">Multi X Y</text>
+ <text x="10" y="60" rotate="0 10 20 30" font-size="35">ROTATE</text>
+ <text x="10 30 50 70 90 110 130 150" y="300 290 280 270 260 250 240 230" rotate="0 -10 -20 -30 -40 -50 -60 -70 -80 -90" font-size="35">Both Together</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-text-10-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-10-t-isvalid.html
new file mode 100644
index 0000000000..399223c58a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-10-t-isvalid.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-text-10-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-text-10-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-text-10-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text transform="rotate(90) translate(120 -100)" text-anchor="middle">Rotated 90 degrees</text>
+ <text transform="rotate(-90) translate(-120 140)" text-anchor="middle">Rotated -90 degrees</text>
+ <text transform="rotate(180) translate(-120 -250)" text-anchor="middle">Rotated 180 degrees</text>
+ <text transform="rotate(360) translate(120 230)" text-anchor="middle">Unrotated text</text>
+ <text transform="translate(250 180) rotate(85 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(75 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(65 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(55 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(45 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(35 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(25 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(15 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(5 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-5 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-15 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-25 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-35 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-45 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-55 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-65 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-75 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-85 0 0)">Rotated by 10 degrees</text>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-text-11-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-11-t-isvalid.html
new file mode 100644
index 0000000000..341dfc052a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-11-t-isvalid.html
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-text-11-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-text-11-t-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-text-11-t.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <!-- Note that picking a platform font (sans-serif) is one of the main purposes of this test -->
+ <g font-family="sans-serif">
+ <text transform="rotate(90) translate(120 -100)" text-anchor="middle">Rotated 90 degrees</text>
+ <text transform="rotate(-90) translate(-120 140)" text-anchor="middle">Rotated -90 degrees</text>
+ <text transform="rotate(180) translate(-120 -250)" text-anchor="middle">Rotated 180 degrees</text>
+ <text transform="rotate(360) translate(120 230)" text-anchor="middle">Unrotated text</text>
+ <text transform="translate(250 180) rotate(85 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(75 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(65 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(55 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(45 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(35 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(25 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(15 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(5 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-5 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-15 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-25 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-35 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-45 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-55 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-65 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-75 0 0)">Rotated by 10 degrees</text>
+ <text transform="translate(250 180) rotate(-85 0 0)">Rotated by 10 degrees</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.3 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-text-12-t-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-12-t-isvalid.html
new file mode 100644
index 0000000000..c92eb2e74e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-text-12-t-isvalid.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-text-12-t-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-text-12-t-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-text-12-t.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <style>
+ @font-face {
+ font-family: embeded;
+ src: url(woffs/embeded-text-text-05.woff) format("woff");
+ }
+ </style>
+ <g font-size="16">
+ <defs>
+ <font id="embeded" horiz-adv-x="224">
+ <font-face font-family="embeded" units-per-em="1000" panose-1="0 0 0 0 0 0 0 0 0 0" ascent="917" descent="-250" alphabetic="0"/>
+ <missing-glyph horiz-adv-x="800" d="M50 0V800H750V0H50ZM700 50V750H100V50H700Z"/>
+ <glyph unicode="1" glyph-name="gl_1" horiz-adv-x="1500" d="M 0 0 L 250 0 L 250 250 L 0 250 Z"/>
+ <glyph unicode="2" glyph-name="gl_2" horiz-adv-x="1500" d="M 0 0 L 500 0 L 500 500 L 0 500 Z"/>
+ <glyph unicode="3" glyph-name="gl_3" horiz-adv-x="1500" d="M 0 0 L 750 0 L 750 750 L 0 750 Z"/>
+ <glyph unicode="4" glyph-name="gl_4" horiz-adv-x="1500" d="M 0 0 L 1000 0 L 1000 1000 L 0 1000 Z"/>
+ </font>
+
+ </defs>
+
+ <defs>
+ <g id="marker">
+ <line y2="-15" stroke="fuchsia"/>
+ <rect x="-4" y="-4" width="8" height="8"/>
+ </g>
+ </defs>
+
+ <g id="legend" transform="translate(10, 40)">
+ <text y="30">1.x 1.y</text>
+ <text y="60">4.x 1.y</text>
+ <text y="90">2.x 1.y</text>
+ <text y="120">1.x 4.y</text>
+ <text y="150">4.x 4.y</text>
+ <text y="180">2.x 4.y</text>
+ <text y="210">1.x 2.y</text>
+ <text y="240">4.x 2.y</text>
+ <text y="270">2.x 2.y</text>
+ </g>
+
+ <defs>
+ <g id="textContent">
+ <!-- 1.x 1.y -->
+ <use y="30" xlink:href="#marker" fill="#8888ff"/>
+ <text x="0" y="30" font-family="embeded" font-size="10">1234</text>
+
+ <!-- 4.x 1.y : four text chunks -->
+ <use x="10" y="60" xlink:href="#marker" fill="#8888ff"/>
+ <use x="20" y="60" xlink:href="#marker" fill="#8888ff"/>
+ <use x="30" y="60" xlink:href="#marker" fill="#8888ff"/>
+ <use x="40" y="60" xlink:href="#marker" fill="#8888ff"/>
+ <text x="10 20 30 40" y="60" font-family="embeded" font-size="10">1234</text>
+
+ <!-- 2.x 1.y : two text chunks -->
+ <use x="10" y="90" xlink:href="#marker" fill="#8888ff"/>
+ <use x="60" y="90" xlink:href="#marker" fill="#8888ff"/>
+ <text x="10 60" y="90" font-family="embeded" font-size="10">1234</text>
+
+ <!-- 1.x 4.y : four text chunks -->
+ <g transform="translate(0, 120)">
+ <use x="0" y="-10" xlink:href="#marker" fill="#8888ff"/>
+ <use x="15" y="-5" xlink:href="#marker" fill="#8888ff"/>
+ <use x="30" y="5" xlink:href="#marker" fill="#8888ff"/>
+ <use x="45" y="10" xlink:href="#marker" fill="#8888ff"/>
+ <text x="0" y="-10 -5 5 10" font-family="embeded" font-size="10">1234</text>
+ </g>
+
+ <!-- 4.x 4.y : four text chunks -->
+ <g transform="translate(0, 150)">
+ <use x="10" y="-10" xlink:href="#marker" fill="#8888ff"/>
+ <use x="20" y="-5" xlink:href="#marker" fill="#8888ff"/>
+ <use x="30" y="5" xlink:href="#marker" fill="#8888ff"/>
+ <use x="40" y="10" xlink:href="#marker" fill="#8888ff"/>
+ <text x="10 20 30 40" y="-10 -5 5 10" font-family="embeded" font-size="10">1234</text>
+ </g>
+
+ <!-- 2.x 4.y : four text chunks -->
+ <g transform="translate(0, 180)">
+ <use x="10" y="-10" xlink:href="#marker" fill="#8888ff"/>
+ <use x="20" y="-5" xlink:href="#marker" fill="#8888ff"/>
+ <use x="35" y="5" xlink:href="#marker" fill="#8888ff"/>
+ <use x="50" y="10" xlink:href="#marker" fill="#8888ff"/>
+ <text x="10 20" y="-10 -5 5 10" font-family="embeded" font-size="10">1234</text>
+ </g>
+
+ <!-- 1.x 2.y : two text chunks -->
+ <g transform="translate(0, 210)">
+ <use x="0" y="-10" xlink:href="#marker" fill="#8888ff"/>
+ <use x="15" y="5" xlink:href="#marker" fill="#8888ff"/>
+ <text x="0" y="-10 5" font-family="embeded" font-size="10">1234</text>
+ </g>
+
+ <!-- 4.x 2.y : four text chunks -->
+ <g transform="translate(0, 240)">
+ <use x="10" y="-10" xlink:href="#marker" fill="#8888ff"/>
+ <use x="20" y="-5" xlink:href="#marker" fill="#8888ff"/>
+ <use x="30" y="-5" xlink:href="#marker" fill="#8888ff"/>
+ <use x="40" y="-5" xlink:href="#marker" fill="#8888ff"/>
+ <text x="10 20 30 40" y="-10 -5" font-family="embeded" font-size="10">1234</text>
+ </g>
+
+ <!-- 2.x 2.y : two text chunks -->
+ <g transform="translate(0, 270)">
+ <use x="10" y="-10" xlink:href="#marker" fill="#8888ff"/>
+ <use x="60" y="-5" xlink:href="#marker" fill="#8888ff"/>
+ <text x="10 60" y="-10 -5" font-family="embeded" font-size="10">1234</text>
+ </g>
+ </g>
+ </defs>
+
+ <g id="anchorMiddle" text-anchor="middle" transform="translate(250, 40)">
+ <text y="-17" text-anchor="middle">text-anchor</text>
+ <text y="-3" text-anchor="middle">middle</text>
+ <line x1="0" y1="10" x2="0" y2="290" stroke="fuchsia"/>
+ <use xlink:href="#textContent"/>
+ </g>
+
+ <g id="anchorEnd" text-anchor="end" transform="translate(350, 40)">
+ <text y="-17" text-anchor="middle">text-anchor</text>
+ <text y="-3" text-anchor="middle">end</text>
+ <line x1="0" y1="10" x2="0" y2="290" stroke="fuchsia"/>
+ <use xlink:href="#textContent"/>
+ </g>
+
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-tref-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-tref-01-b-isvalid.html
new file mode 100644
index 0000000000..2681a1d57d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-tref-01-b-isvalid.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-tref-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-tref-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-tref-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <!-- Test case label -->
+ <text x="75" y="25" font-size="12" fill="blue">Test 'tref' element with an external referenced string.</text>
+ <!-- External tref reference, to another file -->
+ <text x="75" y="200" font-size="18" fill="green">
+ <tref xlink:href="../images/text-extTref-BE-18-targ.svg#tref-external-reference"/>
+ </text>
+ <rect x="73" y="183" width="260" height="22" fill="none" stroke="black"/>
+ <text x="73" y="217" font-size="12" fill="black">'tref' to a string in another file</text>
+ <!-- Patch code -->
+ <!--
+ <text x="75" y="200" font-size="18" fill="green" >
+ Simple external referenced text.
+ </text>
+-->
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-tselect-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-tselect-01-b-isvalid.html
new file mode 100644
index 0000000000..8c01db9173
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-tselect-01-b-isvalid.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-tselect-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-tselect-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-tselect-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text font-size="16" x="10" y="20">Test single line and multiline text selection.</text>
+ <g font-size="16">
+ <text x="25" y="65">Here is a stand-alone 'text' element.</text>
+ <text x="25" y="90">Here is a second 'text' element just below.</text>
+ <text x="25" y="115">Because these are four separate 'text' elements,</text>
+ <text x="25" y="140">text selection should not go across lines here.</text>
+ <text>
+ <tspan x="25" y="190">However, these lines of text are achieved by using</tspan>
+ <tspan x="25" y="215">one 'tspan' per line, all contained within the same</tspan>
+ <tspan x="25" y="240">'text' element, so you should be able to select all</tspan>
+ <tspan x="25" y="265">four lines at the same time.</tspan>
+ </text>
+ </g>
+ <text id="revision" x="10" y="340" font-size="40" stroke="none" fill="black">$Revision: 1.8 $</text>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ </g>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-tselect-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-tselect-02-f-isvalid.html
new file mode 100644
index 0000000000..bee4bf91dd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-tselect-02-f-isvalid.html
@@ -0,0 +1,94 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-tselect-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-tselect-02-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" onload="doSelection(0,0);" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-tselect-02-f.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <script>
+ var startIndex = 0;
+ var numChars = 9;
+
+ function doSelection(indexDelta, numCharsDelta)
+ {
+ try
+ {
+ document.getElementById('text').selectSubString(startIndex+indexDelta, numChars+numCharsDelta);
+ }
+ catch(e)
+ {
+ if(e.code == DOMException.INDEX_SIZE_ERR)
+ {
+ // If there was an error, re-select the last range
+ document.getElementById('text').selectSubString(startIndex, numChars);
+ return;
+ }
+ }
+
+ startIndex += indexDelta;
+ numChars += numCharsDelta;
+
+ document.getElementById('info').firstChild.data = "StartIndex: " + startIndex + ". NumChars: " + numChars;
+ }
+ </script>
+ </defs>
+
+ <g transform="translate(0,60)">
+ <text id="info" font-size="16" x="10" y="70">StartIndex: 0 NumChars: 0</text>
+
+ <text id="text" font-size="48" y="128" x="10">
+ abc אבג 123 דהו def
+ </text>
+
+ <g id="buttons">
+ <rect x="10" y="160" width="100" height="20" fill="blue" onclick="doSelection(1,0);"/>
+ <text x="60" y="175" text-anchor="middle" font-size="16" fill="white" pointer-events="none">startIndex++</text>
+
+ <rect x="120" y="160" width="100" height="20" fill="blue" onclick="doSelection(-1,0);"/>
+ <text x="170" y="175" text-anchor="middle" font-size="16" fill="white" pointer-events="none">startIndex--</text>
+
+ <rect x="230" y="160" width="100" height="20" fill="blue" onclick="doSelection(0,1);"/>
+ <text x="280" y="175" text-anchor="middle" font-size="16" fill="white" pointer-events="none">numChars++</text>
+
+ <rect x="340" y="160" width="100" height="20" fill="blue" onclick="doSelection(0,-1);"/>
+ <text x="390" y="175" text-anchor="middle" font-size="16" fill="white" pointer-events="none">numChars--</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-tselect-03-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-tselect-03-f-isvalid.html
new file mode 100644
index 0000000000..b59de9d122
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-tselect-03-f-isvalid.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-tselect-03-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-tselect-03-f-manual.svg</h1>
+<svg version="1.1" baseProfile="full" onload="doSelection(0,0);" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-tselect-03-f.svg,v $</title>
+ <defs>
+ <style>
+ @font-face {
+ font-family: Ezra SIL SR;
+ src: url(woffs/EzraSILSR.woff) format("woff");
+ }
+ </style>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="SVGHebrew" unicode-range="U+000D-FEFF">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/Heb.svg#SVGHebrew"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <script>
+ var startIndex = 0;
+ var numChars = 9;
+
+ function doSelection(indexDelta, numCharsDelta)
+ {
+ try
+ {
+ document.getElementById('text').selectSubString(startIndex+indexDelta, numChars+numCharsDelta);
+ }
+ catch(e)
+ {
+ if(e.code == DOMException.INDEX_SIZE_ERR)
+ {
+ // If there was an error, re-select the last range
+ document.getElementById('text').selectSubString(startIndex, numChars);
+ return;
+ }
+ }
+
+ startIndex += indexDelta;
+ numChars += numCharsDelta;
+
+ document.getElementById('info').firstChild.data = "StartIndex: " + startIndex + ". NumChars: " + numChars;
+ }
+ </script>
+ </defs>
+
+ <g transform="translate(0,60)">
+ <text id="info" font-size="16" x="10" y="70">StartIndex: 0 NumChars: 0</text>
+
+ <text id="text" font-size="48" y="128" x="10" font-family="SVGHebrew, 'Ezra SIL SR', serif">
+ abc אבג 123 דהו def
+ </text>
+
+ <g id="buttons">
+ <rect x="10" y="160" width="100" height="20" fill="blue" onclick="doSelection(1,0);"/>
+ <text x="60" y="175" text-anchor="middle" font-size="14" fill="white" pointer-events="none">startIndex++</text>
+
+ <rect x="120" y="160" width="100" height="20" fill="blue" onclick="doSelection(-1,0);"/>
+ <text x="170" y="175" text-anchor="middle" font-size="14" fill="white" pointer-events="none">startIndex--</text>
+
+ <rect x="230" y="160" width="100" height="20" fill="blue" onclick="doSelection(0,1);"/>
+ <text x="280" y="175" text-anchor="middle" font-size="14" fill="white" pointer-events="none">numChars++</text>
+
+ <rect x="340" y="160" width="100" height="20" fill="blue" onclick="doSelection(0,-1);"/>
+ <text x="390" y="175" text-anchor="middle" font-size="14" fill="white" pointer-events="none">numChars--</text>
+ </g>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-tspan-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-tspan-01-b-isvalid.html
new file mode 100644
index 0000000000..c583e13e67
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-tspan-01-b-isvalid.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-tspan-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-tspan-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="basic" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-tspan-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <font-face font-family="FreeSerif" unicode-range="U+0-7F" font-weight="400">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/FreeSerif.svg#FreeSerif"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="FreeSerif" unicode-range="U+0-7F" font-weight="700">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/FreeSerifBold.svg#FreeSerifBold"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="FreeSerif" unicode-range="U+0-7F" font-weight="400" font-style="italic">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/FreeSerifItalic.svg#FreeSerifItalic"/>
+ </font-face-src>
+ </font-face>
+ <font-face font-family="FreeSerif" unicode-range="U+0-7F" font-weight="700" font-style="italic">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/FreeSerifBoldItalic.svg#FreeSerifBoldItalic"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <text x="25" y="20" font-size="16">Basics of tspan: changing visual properties and positioning.</text>
+ <!-- From example tspan01 - using tspan to change visual attributes -->
+ <g id="tspan01" font-size="16" font-family="FreeSerif, serif">
+ <text x="74" y="63.75" fill="blue">
+ You are<tspan font-weight="bold" fill="green"> not </tspan>a banana.
+ </text>
+ <rect x="47.5" y="74.25" width="310.5" height="53.5" fill="none" stroke="#000000"/>
+ <text x="65.25" y="90.75" font-size="16">Text: "You are not a banana."</text>
+ <text x="65.25" y="108" font-size="16">'tspan' changes visual attributes of "not",</text>
+ <text x="65.25" y="125.25" font-size="16">to green, bold.</text>
+ </g>
+ <!-- From example tspan02 - using tspan's dx and dy attributes
+ for incremental positioning adjustments -->
+ <g id="tspan02" font-size="16" font-family="FreeSerif, serif">
+ <text x="257.5" y="153.75" fill="blue">
+ But you<tspan dx="2em" dy="-10.75" font-weight="bold" fill="green">are</tspan><tspan dy="25.5" xml:space="preserve"> a peach!</tspan>
+ </text>
+ <rect x="225" y="179" width="245.5" height="53.5" fill="none" stroke="#000000"/>
+ <text x="238" y="195" font-size="16">Text: "But you are a peach!"</text>
+ <text x="238" y="212.25" font-size="16">Using dx,dy, 'tspan' raises "are",</text>
+ <text x="238" y="229.5" font-size="16">'tspan' lowers "a peach!"</text>
+ </g>
+ <!-- Example tspan03 - using tspan's x and y attributes
+ for multiline text and precise glyph positioning -->
+ <g id="tspan03" fill="#000000" font-size="16" font-family="FreeSerif, serif">
+ <text fill="rgb(255,164,0)">
+ <tspan x="35 53.75 72.5 91.25 110.5 128.75 147.5 166.25" y="200">Cute and </tspan>
+ <tspan x="63.13 81.88 100.63 119.38 138.13" y="230.5">fuzzy.</tspan>
+ </text>
+ <rect x="17.5" y="244.75" width="335.5" height="53.5" fill="none" stroke="#000000"/>
+ <text x="25.25" y="258" font-size="16">Text: "Cute and fuzzy."</text>
+ <text x="25.25" y="275.25" font-size="16">'tspan' char-by-char placement of "Cute and",</text>
+ <text x="25.25" y="292.5" font-size="16">'tspan' char-by-char "fuzzy", below it.</text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.10 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/text-tspan-02-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/text-tspan-02-b-isvalid.html
new file mode 100644
index 0000000000..3c48f01353
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/text-tspan-02-b-isvalid.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>text-tspan-02-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: text-tspan-02-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: text-tspan-02-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text font-size="35" fill="red" x="20" y="120" rotate="5,15,25,35,-10,-20,-30,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,70,60,50,40,30,20,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,55,-10,-10,-10,-10,-10,-10,-10,-10,-10,55,55,55,55,55,55,55,55,55">
+ Not all characters in the
+ <tspan x="20" y="180">text have a specified rotation</tspan>
+ </text>
+
+
+ <text font-size="35" fill="green" x="20" y="120" rotate="5,15,25,35,45,55" stroke="green" stroke-width="0.5">
+ Not
+
+ <tspan id="child1" rotate="-10,-20,-30,-40">
+ all characters
+
+ <tspan id="child2" rotate="70,60,50,40,30,20,10">
+ in
+
+ <tspan id="child3">
+ the
+ </tspan>
+ </tspan>
+
+ <tspan x="20" y="180" id="child4">
+ text
+ </tspan>
+
+ have a
+ </tspan>
+
+ <tspan id="child5" rotate="-10">
+ specified
+ </tspan>
+
+ rotation
+ </text>
+
+ <text id="rotation_values" font-size="8" xml:space="preserve">
+ <tspan x="30" y="135">
+5 15 25
+ </tspan>
+ <tspan x="80" y="130">
+-10 -20 -30
+ </tspan>
+ <tspan x="125" y="130">
+ -40 -40 -40 -40 -40 -40 -40 -40 -40 -40
+ </tspan>
+ <tspan x="295" y="145">
+70 60
+ </tspan>
+ <tspan x="340" y="140">
+40 30 20
+ </tspan>
+ <tspan x="15" y="190">
+-40 -40 -40 -40 -40 -40 -40 -40 -40
+ </tspan>
+ <tspan x="190" y="200">
+ -10 -10 -10 -10 -10 -10 -10 -10
+ </tspan>
+ <tspan x="275" y="190">
+-10
+ </tspan>
+ <tspan x="340" y="210">
+ 55 55 55 55 55 55 55 55
+ </tspan>
+ </text>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.11 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/types-basic-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/types-basic-01-f-isvalid.html
new file mode 100644
index 0000000000..0051cc3f95
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/types-basic-01-f-isvalid.html
@@ -0,0 +1,64 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>types-basic-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: types-basic-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: types-basic-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <polyline points="20,75 380,75" stroke="#999" stroke-width="1"/>
+ <polyline points="20,125 380,125" stroke="#999" stroke-width="1"/>
+
+ <rect width="300" height="50" x="50" y="75" fill="red"/>
+
+ <polyline points="50,100 150,100" stroke-width="50" stroke="#6F3"/>
+ <polyline points="150,100 250,100" stroke-width="5e1" stroke="#6C6"/>
+ <polyline points="250,100 350,100" stroke-width=".5e2" stroke="#39F"/>
+
+
+ <text x="50" y="200" font-size="20">Different forms of the &lt;number&gt; type</text>
+
+ <g text-anchor="middle" fill="#555">
+ <text x="100" y="110" font-size="20">50</text>
+ <text x="200" y="110" font-size="20" >5e1</text>
+ <text x="300" y="110" font-size="20">.5e2</text>
+ </g>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/types-basic-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/types-basic-02-f-isvalid.html
new file mode 100644
index 0000000000..341db7a1de
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/types-basic-02-f-isvalid.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>types-basic-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: types-basic-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: types-basic-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <style>
+ #swNoUnit { stroke-width: 20 }
+ #swUnit { stroke-width: 20px }
+ #swUpperCaseUnit { stroke-width: 20PX }
+ </style>
+
+ <g id="references" fill="none" stroke="red" stroke-width="19">
+ <circle r="40" transform="translate(100 100)"/>
+ <circle r="40" transform="translate(240 100)"/>
+ <circle r="40" transform="translate(380 100)"/>
+
+ <circle r="40" transform="translate(100 240)"/>
+ <circle r="40" transform="translate(240 240)"/>
+ <circle r="40" transform="translate(380 240)"/>
+ </g>
+
+ <!-- "For length values in SVG-specific properties and their corresponding presentation attributes, the length unit identifier is optional." -->
+ <circle r="40" id="swNoUnit" fill="none" stroke="lime" transform="translate(100 100)"/>
+ <circle r="40" id="swUnit" fill="none" stroke="lime" transform="translate(240 100)"/>
+ <circle r="40" id="swPresAttr" fill="none" stroke="lime" stroke-width="20" transform="translate(380 100)"/>
+
+ <!-- "In presentation attributes for all properties, whether defined in this specification or in CSS2, the length identifier, if specified, must be in lower case." -->
+ <g stroke-width="20">
+ <circle r="40" id="swUpperCaseUnitPresAttr" stroke-width="10PX" fill="none" stroke="lime" transform="translate(100 240)"/>
+ </g>
+
+ <!-- Test that units are case-insensitive when specified in CSS -->
+ <circle r="40" id="swUpperCaseUnit" fill="none" stroke="lime" transform="translate(240 240)"/>
+ <circle r="40" id="swUpperCaseUnitInline" style="stroke-width:20PX" fill="none" stroke="lime" transform="translate(380 240)"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-01-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-01-b-isvalid.html
new file mode 100644
index 0000000000..35ccad2113
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-01-b-isvalid.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>types-dom-01-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: types-dom-01-b-manual.svg</h1>
+<svg version="1.1" baseProfile="tiny" onload="testSVGLocatable()" id="svg-root"
+ width="100%" height="100%" viewBox="0 0 480 360"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2009 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: types-dom-01-b.svg,v $</title>
+ <defs>
+ <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <script type="text/ecmascript">
+ function testSVGLocatable() {
+ var rotText = document.getElementById("rotatedText");
+ var blueCircle = document.getElementById("blueCircle")
+ var matr = rotText.getScreenCTM();
+ document.getElementById("result1").firstChild.nodeValue = ".getScreenCTM(): " + matr.a.toFixed(2) + "," + matr.b.toFixed(2) + "," + matr.c.toFixed(2) + "," + matr.d.toFixed(2) + "," + matr.e.toFixed(2) + "," + matr.f.toFixed(2);
+ var matr = rotText.getCTM();
+ document.getElementById("result2").firstChild.nodeValue = ".getCTM(): " + matr.a.toFixed(2) + "," + matr.b.toFixed(2) + "," + matr.c.toFixed(2) + "," + matr.d.toFixed(2) + "," + matr.e.toFixed(2) + "," + matr.f.toFixed(2);
+ var matr = rotText.getTransformToElement(document.getElementById("parentGroup"));
+ document.getElementById("result3").firstChild.nodeValue = ".getTransformToElement(): " + matr.a.toFixed(2) + "," + matr.b.toFixed(2) + "," + matr.c.toFixed(2) + "," + matr.d.toFixed(2) + "," + matr.e.toFixed(2) + "," + matr.f.toFixed(2);
+ var bbox = blueCircle.getBBox();
+ document.getElementById("result4").firstChild.nodeValue = ".getBBox() for 'blueCircle': .x="+bbox.x+",.y="+bbox.y+",.width="+bbox.width+",.height="+bbox.height;
+ document.getElementById("result5").firstChild.nodeValue = ".farthestViewportElement of blueCircle="+blueCircle.farthestViewportElement.getAttributeNS(null,"id");
+ document.getElementById("result6").firstChild.nodeValue = ".nearestViewportElement of blueCircle="+blueCircle.nearestViewportElement.getAttributeNS(null,"id");
+ }
+ </script>
+ <g font-size="12">
+ <g id="parentGroup" transform="translate(70,-60)">
+ <text id="rotatedText" transform="scale(0.6),rotate(45)" font-size="20" x="30" y="150">Rotated Text for testing SVGLocatable</text>
+ <text id="otherText" transform="scale(0.7)" font-size="20" x="100" y="130">Some other text with id 'otherText'</text>
+ <svg id="nestedSVG" x="200" y="100" width="110" height="110" viewBox="-55 -55 110 110">
+ <circle id="blueCircle" cx="0" cy="0" r="50" fill="blue"/>
+ </svg>
+ </g>
+ <text id="result1" x="10" y="200"> </text>
+ <text id="result2" x="10" y="220"> </text>
+ <text id="result3" x="10" y="240"> </text>
+ <text id="result4" x="10" y="260"> </text>
+ <text id="result5" x="10" y="280"> </text>
+ <text id="result6" x="10" y="300"> </text>
+ </g>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <!--<g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-02-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-02-f-isvalid.html
new file mode 100644
index 0000000000..9072bacb93
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-02-f-isvalid.html
@@ -0,0 +1,134 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>types-dom-02-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: types-dom-02-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: types-dom-02-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='210' y='55' text-anchor='end'>animVal != baseVal:</text>
+
+ <g font-size='14' transform='translate(500)rotate(90)'>
+ <rect id='r1b' x='40' y='60' width='20' height='20'/>
+ <text x='70' y='75'>SVGAnimatedNumberList</text>
+ <rect id='r2b' x='40' y='90' width='20' height='20'/>
+ <text x='70' y='105'>SVGAnimatedLength</text>
+ <rect id='r3b' x='40' y='120' width='20' height='20'/>
+ <text x='70' y='135'>SVGAnimatedLengthList</text>
+ <rect id='r4b' x='40' y='150' width='20' height='20'/>
+ <text x='70' y='165'>SVGAnimatedAngle</text>
+ <rect id='r5b' x='40' y='180' width='20' height='20'/>
+ <text x='70' y='195'>SVGAnimatedRect</text>
+ <rect id='r6b' x='40' y='210' width='20' height='20'/>
+ <text x='70' y='225'>SVGAnimatedTransformList</text>
+ <rect id='r7b' x='40' y='240' width='20' height='20'/>
+ <text x='70' y='255'>SVGAnimatedPreserveAspectRatio</text>
+ </g>
+
+ <g display='none'>
+ <text id='text' rotate='0 20 40'>abc</text>
+ <circle id='circle' r='50'/>
+ <marker id='marker' orient='1.5708rad'/>
+ <svg id='svg' viewBox='10 20 30 40'/>
+ </g>
+
+ <script><![CDATA[
+ function $(id) { return document.getElementById(id); }
+
+ var text = $('text'),
+ circle = $('circle'),
+ marker = $('marker'),
+ svg = $('svg');
+
+ function expect_value(id, fn, value) {
+ try {
+ if (fn() === value) {
+ $(id).setAttribute('fill', 'green');
+ return;
+ }
+ } catch (e) {
+ }
+ $(id).setAttribute('fill', 'red');
+ }
+
+ // SVGAnimatedNumberList: rotate on text
+ expect_value
+ ('r1b',
+ function() { return text.rotate.animVal != text.rotate.baseVal; },
+ true);
+
+ // SVGAnimatedLength: r on circle
+ expect_value
+ ('r2b',
+ function() { return circle.r.animVal != text.rotate.baseVal; },
+ true);
+
+ // SVGAnimatedLengthList: x on text
+ expect_value
+ ('r3b',
+ function() { return text.x.animVal != text.x.baseVal; },
+ true);
+
+ // SVGAnimatedAngle: orient on marker
+ expect_value
+ ('r4b',
+ function() { return marker.orientAngle.animVal != marker.orientAngle.baseVal; },
+ true);
+
+ // SVGAnimatedRect: viewBox on svg
+ expect_value
+ ('r5b',
+ function() { return svg.viewBox.animVal != svg.viewBox.baseVal; },
+ true);
+
+ // SVGAnimatedTransformList: transform on circle
+ expect_value
+ ('r6b',
+ function() { return circle.transform.animVal != circle.transform.baseVal; },
+ true);
+
+ // SVGAnimatedPreserveAspectRatio: preserveAspectRatio on svg
+ expect_value
+ ('r7b',
+ function() { return svg.preserveAspectRatio.animVal != svg.preserveAspectRatio.baseVal; },
+ true);
+ ]]></script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.8 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-03-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-03-b-isvalid.html
new file mode 100644
index 0000000000..03623bf325
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-03-b-isvalid.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>types-dom-03-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: types-dom-03-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: types-dom-03-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='30'>Test that getBBox() works before SVGLoad</text>
+
+ <rect id='r' x='10' y='40' width='50' height='50'/>
+ <text id='t' visibility='hidden' x='1000' y='1000'>Abc</text>
+
+ <script><![CDATA[
+ function $(x) { return document.getElementById(x); }
+
+ var t = $('t'),
+ r = $('r'),
+ b1, b2, pass = false;
+
+ try {
+ b1 = t.getBBox();
+ b2 = r.getBBox();
+ if (b1.x > 0 && b1.y > 0 && b1.width > 0 && b1.height > 0
+ && b2.x == 10 && b2.y == 40 && b2.width == 50 && b2.height == 50) {
+ pass = true;
+ }
+ } catch (e) {
+ }
+ r.setAttribute('fill', pass ? 'green' : 'red');
+ ]]></script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-04-b-novalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-04-b-novalid.html
new file mode 100644
index 0000000000..123399b0ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-04-b-novalid.html
@@ -0,0 +1,226 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>types-dom-04-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: types-dom-04-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: types-dom-04-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='30'>Testing liveness of SVG DOM objects</text>
+
+ <g font-size='14' transform='translate(500)rotate(90)'>
+ <rect id='r1' x='40' y='60' width='20' height='20'/>
+ <text x='70' y='75'>SVGAnimatedNumberList</text>
+ <rect id='r2' x='40' y='90' width='20' height='20'/>
+ <text x='70' y='105'>SVGAnimatedLength</text>
+ <rect id='r3' x='40' y='120' width='20' height='20'/>
+ <text x='70' y='135'>SVGAnimatedLengthList</text>
+ <rect id='r4' x='40' y='150' width='20' height='20'/>
+ <text x='70' y='165'>SVGAnimatedAngle</text>
+ <rect id='r5' x='40' y='180' width='20' height='20'/>
+ <text x='70' y='195'>SVGAnimatedRect</text>
+ <rect id='r6' x='40' y='210' width='20' height='20'/>
+ <text x='70' y='225'>SVGAnimatedTransformList</text>
+ <rect id='r7' x='40' y='240' width='20' height='20'/>
+ <text x='70' y='255'>SVGAnimatedPreserveAspectRatio</text>
+ <rect id='r8' x='40' y='270' width='20' height='20'/>
+ <text x='70' y='285'>SVGAnimatedBoolean</text>
+ <rect id='r9' x='40' y='300' width='20' height='20'/>
+ <text x='70' y='315'>SVGAnimatedString</text>
+ <rect id='r10' x='40' y='330' width='20' height='20'/>
+ <text x='70' y='345'>SVGAnimatedEnumeration</text>
+ <rect id='r11' x='40' y='360' width='20' height='20'/>
+ <text x='70' y='375'>SVGAnimatedInteger</text>
+ <rect id='r12' x='40' y='390' width='20' height='20'/>
+ <text x='70' y='405'>SVGAnimatedNumber</text>
+ </g>
+
+ <g display='none'>
+ <text id='text' rotate='0 20 40' x='10 20' lengthAdjust='spacing'>abc</text>
+ <circle id='circle' r='50' transform='scale(1) scale(2)' class='one'/>
+ <marker id='marker' orient='30'/>
+ <svg id='svg' viewBox='10 20 30 40' preserveAspectRatio='none' externalResourcesRequired='false'/>
+ <filter>
+ <feTurbulence id='feTurbulence' baseFrequency='2 3' numOctaves='2'/>
+ </filter>
+ </g>
+
+ <script><![CDATA[
+ function $(id) { return document.getElementById(id); }
+
+ var text = $('text'),
+ circle = $('circle'),
+ marker = $('marker'),
+ svg = $('svg'),
+ feTurbulence = $('feTurbulence');
+
+ function expect_exception(id, fn, code) {
+ try {
+ fn();
+ } catch (e) {
+ if (e.code == code) {
+ $(id).setAttribute('fill', 'green');
+ return;
+ }
+ }
+ $(id).setAttribute('fill', 'red');
+ }
+
+ function expect_value(id, fn, value) {
+ try {
+ if (fn() === value) {
+ $(id).setAttribute('fill', 'green');
+ return;
+ }
+ } catch (e) {
+ }
+ $(id).setAttribute('fill', 'red');
+ }
+
+ // SVGAnimatedNumberList: rotate on text
+ expect_value
+ ('r1',
+ function() {
+ return text.rotate.baseVal.numberOfItems == 3
+ && (text.setAttribute('rotate', '0 20'), text.rotate.baseVal.numberOfItems == 2);
+ },
+ true);
+
+ // SVGAnimatedLength: r on circle
+ expect_value
+ ('r2',
+ function() {
+ return circle.r.baseVal.value == 50
+ && (circle.setAttribute('r', '100'), circle.r.baseVal.value == 100);
+ },
+ true);
+
+ // SVGAnimatedLengthList: x on text
+ expect_value
+ ('r3',
+ function() {
+ return text.x.baseVal.numberOfItems == 2
+ && (text.setAttribute('x', '10'), text.x.baseVal.numberOfItems == 1);
+ },
+ true);
+
+ // SVGAnimatedAngle: orient on marker
+ expect_value
+ ('r4',
+ function() {
+ return marker.orientAngle.baseVal.value == 30
+ && (marker.setAttribute('orient', '60'), marker.orientAngle.baseVal.value == 60);
+ },
+ true);
+
+ // SVGAnimatedRect: viewBox on svg
+ expect_value
+ ('r5',
+ function() {
+ return svg.viewBox.baseVal.x == 10
+ && (svg.setAttribute('viewBox', '20 30 40 50'), svg.viewBox.baseVal.x == 20);
+ },
+ true);
+
+ // SVGAnimatedTransformList: transform on circle
+ expect_value
+ ('r6',
+ function() {
+ return circle.transform.baseVal.numberOfItems == 2
+ && (circle.setAttribute('transform', 'scale(1)'), circle.transform.baseVal.numberOfItems == 1);
+ },
+ true);
+
+ // SVGAnimatedPreserveAspectRatio: preserveAspectRatio on svg
+ expect_value
+ ('r7',
+ function() {
+ return svg.preserveAspectRatio.baseVal.align == 1 /* none */
+ && (svg.setAttribute('preserveAspectRatio', 'xMidYMid'), svg.preserveAspectRatio.baseVal.align == 6);
+ },
+ true);
+
+ // SVGAnimatedBoolean: externalResourcesRequired on svg
+ expect_value
+ ('r8',
+ function() {
+ return !svg.externalResourcesRequired.baseVal
+ && (svg.setAttribute('externalResourcesRequired', 'true'), svg.externalResourcesRequired.baseVal);
+ },
+ true);
+
+ // SVGAnimatedString: class on circle
+ expect_value
+ ('r9',
+ function() {
+ return circle.className.baseVal == 'one'
+ && (circle.setAttribute('class', 'two'), circle.className.baseVal == 'two');
+ },
+ true);
+
+ // SVGAnimatedEnumeration: lengthAdjust on text
+ expect_value
+ ('r10',
+ function() {
+ return text.lengthAdjust.baseVal == 1 /* spacing*/
+ && (text.setAttribute('lengthAdjust', 'spacingAndGlyphs'), text.lengthAdjust.baseVal == 2);
+ },
+ true);
+
+ // SVGAnimatedInteger: numOctaves on feTurbulence
+ expect_value
+ ('r11',
+ function() {
+ return feTurbulence.numOctaves.baseVal == 2
+ && (feTurbulence.setAttribute('numOctaves', '1'), feTurbulence.numOctaves.baseVal == 1);
+ },
+ true);
+
+ // SVGAnimatedNumber: baseFrequency on feTurbulence
+ expect_value
+ ('r12',
+ function() {
+ return feTurbulence.baseFrequencyY.baseVal == 3
+ && (feTurbulence.setAttribute('baseFrequency', '4 5'), feTurbulence.baseFrequencyY.baseVal == 5);
+ },
+ true);
+ ]]></script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.7 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-05-b-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-05-b-isvalid.html
new file mode 100644
index 0000000000..22a540f71b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-05-b-isvalid.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>types-dom-05-b-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: types-dom-05-b-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: types-dom-05-b.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='10' y='30'>Test side effects of assigning to valueAsString</text>
+
+ <rect id='r1' x='10' y='40' width='30' height='30'/>
+ <rect id='r2' x='10' y='80' width='30' height='30'/>
+ <rect id='r3' x='10' y='120' width='30' height='30'/>
+ <rect id='r4' x='10' y='160' width='30' height='30'/>
+ <g font-size='15'>
+ <text x='50' y='60'>Valid string on SVGLength</text>
+ <text x='50' y='100'>Invalid string on SVGLength</text>
+ <text x='50' y='140'>Valid string on SVGAngle</text>
+ <text x='50' y='180'>Invalid string on SVGAngle</text>
+ </g>
+
+ <circle id='c' r='1em' display='none'/>
+ <marker id='m' orient='20rad' display='none'/>
+ <script>
+ var b,
+ c = document.getElementById('c');
+ m = document.getElementById('m');
+
+ b = false;
+ try {
+ if (c.r.baseVal.unitType != 3) { /* SVGLength.SVG_LENGTHTYPE_EMS */
+ throw 1;
+ }
+ c.r.baseVal.valueAsString = '2px';
+ if (c.r.baseVal.unitType == 5) { /* SVGLength.SVG_LENGTHTYPE_PX */
+ b = true;
+ }
+ } catch (e) {
+ }
+ document.getElementById('r1').setAttribute('fill', b ? 'green' : 'red');
+
+ b = false;
+ try {
+ c.r.baseVal.valueAsString = 'rubbish';
+ } catch (e) {
+ b = e.code == 12; // SYNTAX_ERR
+ }
+ document.getElementById('r2').setAttribute('fill', b ? 'green' : 'red');
+
+ b = false;
+ try {
+ if (m.orientAngle.baseVal.unitType != 3) { /* SVGAngle.SVG_ANGLETYPE_RAD */
+ throw 1;
+ }
+ m.orientAngle.baseVal.valueAsString = '2grad';
+ if (m.orientAngle.baseVal.unitType == 4) { /* SVGAngle.SVG_ANGLETYPE_GRAD */
+ b = true;
+ }
+ } catch (e) {
+ }
+ document.getElementById('r3').setAttribute('fill', b ? 'green' : 'red');
+
+ b = false;
+ try {
+ m.orientAngle.baseVal.valueAsString = 'rubbish';
+ } catch (e) {
+ b = e.code == 12; // SYNTAX_ERR
+ }
+ document.getElementById('r4').setAttribute('fill', b ? 'green' : 'red');
+ </script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-06-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-06-f-isvalid.html
new file mode 100644
index 0000000000..983ce09fa8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-06-f-isvalid.html
@@ -0,0 +1,119 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>types-dom-06-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: types-dom-06-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink" onload="runtest()">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: types-dom-06-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <defs>
+ <script type="application/ecmascript">
+ function runtest()
+ {
+ try {
+ var r1 = document.getElementById("r1");
+ var r2 = document.getElementById("r2");
+ var r3 = document.getElementById("r3");
+ var i0 = r1.requiredFeatures.getItem(0);
+ var i1 = r1.requiredFeatures.getItem(1);
+
+ if(i0 != "http://www.w3.org/TR/SVG11/feature#Shape")
+ {
+ r1.removeAttribute("requiredFeatures");
+ return;
+ }
+ if(i1 != "this.is.a.bogus.feature.string")
+ {
+ r1.removeAttribute("requiredFeatures");
+ return;
+ }
+ if(r1.requiredFeatures.numberOfItems != 2)
+ {
+ r1.removeAttribute("requiredFeatures");
+ return;
+ }
+ r2.requiredFeatures.appendItem(i1);
+ if(r1.requiredFeatures.numberOfItems != 2)
+ {
+ r1.removeAttribute("requiredFeatures");
+ return;
+ }
+ if(r2.requiredFeatures.numberOfItems != 1)
+ {
+ r1.removeAttribute("requiredFeatures");
+ return;
+ }
+ r3.requiredFeatures.insertItemBefore(i0,0);
+ if(r3.requiredFeatures.numberOfItems != 2)
+ {
+ r3.setAttribute("fill", "red");
+ return;
+ }
+ if(r1.requiredFeatures.numberOfItems != 2)
+ {
+ r1.removeAttribute("requiredFeatures");
+ return;
+ }
+ }
+ catch(e)
+ {
+ var f = document.getElementById("fail");
+ f.setAttribute("fill", "red");
+ }
+ }
+ </script>
+ </defs>
+
+ <text x="50%" y="70" text-anchor="middle">SVGStringList DOM</text>
+
+ <!-- background images -->
+ <g>
+ <rect width="100" height="100" fill="lime" transform="translate(80 100)"/>
+ <rect width="100" height="100" fill="lime" transform="translate(190 100)"/>
+ <rect width="100" height="100" fill="red" transform="translate(300 100)"/>
+ </g>
+
+ <!-- tests -->
+ <rect id="r1" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Shape this.is.a.bogus.feature.string" width="100" height="100" fill="red" transform="translate(100 100)"/>
+ <rect id="r2" width="100" height="100" fill="red" transform="translate(190 100)"/>
+ <rect id="r3" width="100" height="100" fill="lime" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Shape" transform="translate(300 100)"/>
+
+ <rect id="fail" width="100%" height="100%" fill="none"/>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.6 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-07-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-07-f-isvalid.html
new file mode 100644
index 0000000000..e5edef0d70
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-07-f-isvalid.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>types-dom-07-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: types-dom-07-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: types-dom-07-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+
+ <text x='210' y='55' text-anchor='end'>animVal is read only:</text>
+
+ <g font-size='14' transform='translate(500)rotate(90)'>
+ <rect id='r1a' x='40' y='60' width='20' height='20'/>
+ <text x='70' y='75'>SVGAnimatedNumberList</text>
+ <rect id='r2a' x='40' y='90' width='20' height='20'/>
+ <text x='70' y='105'>SVGAnimatedLength</text>
+ <rect id='r3a' x='40' y='120' width='20' height='20'/>
+ <text x='70' y='135'>SVGAnimatedLengthList</text>
+ <rect id='r4a' x='40' y='150' width='20' height='20'/>
+ <text x='70' y='165'>SVGAnimatedAngle</text>
+ <rect id='r5a' x='40' y='180' width='20' height='20'/>
+ <text x='70' y='195'>SVGAnimatedRect</text>
+ <rect id='r6a' x='40' y='210' width='20' height='20'/>
+ <text x='70' y='225'>SVGAnimatedTransformList</text>
+ <rect id='r7a' x='40' y='240' width='20' height='20'/>
+ <text x='70' y='255'>SVGAnimatedPreserveAspectRatio</text>
+ </g>
+
+ <g display='none'>
+ <text id='text' rotate='0 20 40'>abc</text>
+ <circle id='circle' r='50'/>
+ <marker id='marker' orient='1.5708rad'/>
+ <svg id='svg' viewBox='10 20 30 40'/>
+ </g>
+
+ <script><![CDATA[
+ function $(id) { return document.getElementById(id); }
+
+ var text = $('text'),
+ circle = $('circle'),
+ marker = $('marker'),
+ svg = $('svg');
+
+ function expect_exception(id, fn, code) {
+ try {
+ fn();
+ } catch (e) {
+ if (e.code == code) {
+ $(id).setAttribute('fill', 'green');
+ return;
+ }
+ }
+ $(id).setAttribute('fill', 'red');
+ }
+
+ // SVGAnimatedNumberList: rotate on text
+ expect_exception
+ ('r1a',
+ function() { text.rotate.animVal.clear(); },
+ 7 /* DOMException.NO_MODIFICATION_ALLOWED_ERR */);
+
+ // SVGAnimatedLength: r on circle
+ expect_exception
+ ('r2a',
+ function() { circle.r.animVal.value = 123; },
+ 7 /* DOMException.NO_MODIFICATION_ALLOWED_ERR */);
+
+ // SVGAnimatedLengthList: x on text
+ expect_exception
+ ('r3a',
+ function() { text.x.animVal.clear(); },
+ 7 /* DOMException.NO_MODIFICATION_ALLOWED_ERR */);
+
+ // SVGAnimatedAngle: orient on marker
+ expect_exception
+ ('r4a',
+ function() { marker.orientAngle.animVal.value = 123; },
+ 7 /* DOMException.NO_MODIFICATION_ALLOWED_ERR */);
+
+ // SVGAnimatedRect: viewBox on svg
+ expect_exception
+ ('r5a',
+ function() { svg.viewBox.animVal.x = 123; },
+ 7 /* DOMException.NO_MODIFICATION_ALLOWED_ERR */);
+
+ // SVGAnimatedTransformList: transform on circle
+ expect_exception
+ ('r6a',
+ function() { circle.transform.animVal.clear(); },
+ 7 /* DOMException.NO_MODIFICATION_ALLOWED_ERR */);
+
+ // SVGAnimatedPreserveAspectRatio: preserveAspectRatio on svg
+ expect_exception
+ ('r7a',
+ function() { svg.preserveAspectRatio.animVal.align = 1; },
+ 7 /* DOMException.NO_MODIFICATION_ALLOWED_ERR */);
+ ]]></script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.2 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved --><!--
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>-->
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-08-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-08-f-isvalid.html
new file mode 100644
index 0000000000..2f46c1cbeb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-08-f-isvalid.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>types-dom-08-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: types-dom-08-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%"
+ viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: types-dom-08-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <defs>
+ <rect id="myRect" x="0" y="0" width="60" height="40"/>
+ </defs>
+
+ <g id="body">
+ <g id="wrap" transform="translate(300,100)">
+ <g id="group1" transform="translate(10, 20)" fill="#ff0">
+ <rect id="rect1" transform="scale(2)" x="10" y="10" width="50" height="50"/>
+ <rect id="rect2" x="10" y="10" width="100" height="100"/>
+ <g id="group2" transform="translate(10, 20)">
+ <rect id="rect3" x="0" y="10" width="150" height="50"/>
+ <circle id="circle1" cx="20" cy="20" r="100" />
+ </g>
+ </g>
+ <rect id="rect4" x="10" y="10" width="400" height="0"/>
+ <use id="myUse" xlink:href="#myRect" x="-30" y="-20" fill="#ff0"/>
+ <g id="emptyG"/>
+ <line id="thickLine" stroke-width="10" x2="100" y2="0" stroke="#ff0"/>
+ </g>
+
+ <circle id="circle2" cx="20" cy="20" r="100" />
+
+ <text x="240" y="40" text-anchor="middle" >SVGLocatable.getBBox() - basic test</text>
+
+ <rect x="330" y="315" width="130" height="40" stroke="blue" fill="none"/>
+ <g fill="black">
+ <text id="TestStatus" x="333" y="350" font-size="40">failed</text>
+ </g>
+ </g>
+
+ <script><![CDATA[
+ var svg_ns = "http://www.w3.org/2000/svg";
+ var xlink_ns = "http://www.w3.org/1999/xlink";
+
+ var count=0;
+ var topsvg = document.documentElement;
+ var startY = 80;
+ var rowHeight = 12;
+ var fontSize = "10";
+ var isPassed = true;
+
+ function drawString( text, color )
+ {
+ node_to_insert=document.createElementNS(svg_ns,"text");
+ node_to_insert.setAttributeNS(null,"font-size",fontSize);
+ var xVal = 5;
+ node_to_insert.setAttributeNS(null,"x", xVal.toString());
+ var yVal = startY + count++ * rowHeight;
+ node_to_insert.setAttributeNS(null, "y", yVal.toString());
+ node_to_insert.setAttributeNS(null, "fill", color );
+ node_to_insert.appendChild(document.createTextNode(text));
+ document.getElementById( "test-body-content" ).appendChild(node_to_insert);
+
+ }
+
+ function verifyBBox( bbox, x, y, width, height, epsilon )
+ {
+ if
+ (
+ ( Math.abs(bbox.x - x ) < epsilon ) &&
+ ( Math.abs(bbox.y - y ) < epsilon ) &&
+ ( Math.abs(bbox.width - width ) < epsilon ) &&
+ ( Math.abs(bbox.height - height ) < epsilon )
+ )
+ {
+ return "green";
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "Results do not match expected values ( " + x + ", " + y + ", " + width + ", " + height + " )", "red" );
+ return "red";
+ }
+ }
+
+ function displayGetBBox( )
+ {
+ drawString( "getBBox()", "black" );
+ var bbox = document.getElementById( "group1" ).getBBox( );
+ drawString( "[group1] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height, verifyBBox( bbox, -70, -60, 230, 200, 1 / 65535 ) );
+
+ bbox = document.getElementById( "rect1" ).getBBox( );
+ drawString( "[rect1] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height, verifyBBox( bbox, 10, 10, 50, 50, 1 / 65535 ));
+
+ bbox = document.getElementById( "rect2" ).getBBox( );
+ drawString( "[rect2] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, 10, 10, 100, 100, 1 / 65535 ));
+
+ bbox = document.getElementById( "group2" ).getBBox( );
+ drawString( "[group2] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height, verifyBBox( bbox, -80, -80, 230, 200, 1 / 65535 ));
+
+ bbox = document.getElementById( "rect3" ).getBBox( );
+ drawString( "[rect3] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, 0, 10, 150, 50, 1 / 65535 ));
+
+ bbox = document.getElementById( "circle1" ).getBBox( );
+ drawString( "[circle1] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, -80, -80, 200, 200, 1 / 65535 ));
+
+ bbox = document.getElementById( "rect4" ).getBBox( );
+ drawString( "[rect4] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height, verifyBBox( bbox, 10, 10, 400, 0, 1 / 65535 ));
+
+ bbox = document.getElementById( "myUse" ).getBBox( );
+ drawString( "[myUse] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, -30, -20, 60, 40, 1 / 65535 ));
+
+ bbox = document.getElementById( "thickLine" ).getBBox( );
+ drawString( "[thickLine] " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, 0, 0, 100, 0, 1 / 65535 ));
+
+ }
+
+ displayGetBBox();
+
+ // remove from tree, get bbox
+ drawString( "node removed from tree, should still have bounding box", "black" );
+ circle = document.getElementById( "circle2" );
+ document.getElementById( "body" ).removeChild(circle);
+ bbox = circle.getBBox( );
+ drawString( "[circle2]: " + bbox.x + " " + bbox.y + " " + bbox.width + " " + bbox.height , verifyBBox( bbox, -80, -80, 200, 200, 1 / 65535 ));
+
+ var emptyG = document.getElementById( "emptyG" );
+ bbox = emptyG.getBBox( );
+ if ( bbox == null )
+ {
+ drawString( "[emptyG]: null" , "green");
+ }
+ else
+ {
+ isPassed = false;
+ drawString( "Results do not match expected values (null)" , "red");
+ }
+
+
+ if( isPassed )
+ {
+ var status = document.getElementById("TestStatus");
+ status.firstChild.nodeValue = "passed" ;
+ status.setAttribute( "fill", "green");
+ }
+ ]]></script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.1 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svgfittoviewbox-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svgfittoviewbox-01-f-isvalid.html
new file mode 100644
index 0000000000..e158b9d8f0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svgfittoviewbox-01-f-isvalid.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>types-dom-svgfittoviewbox-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: types-dom-svgfittoviewbox-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= SVG 1.1 2nd Edition Test Case =-->
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: types-dom-svgfittoviewbox-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-size="18">
+ <svg id="testSvg" viewBox="0 0 300 200" preserveAspectRatio="xMinYMin slice" />
+ <text id="failText" x="100" y="100" font-size="80" fill="red">FAIL</text>
+ <text id="passText" x="350" y="300" font-size="50" display="none">PASS</text>
+ <script>
+ <![CDATA[
+
+ try
+ {
+ var testElement = document.getElementById("testSvg");
+ var viewBox = testElement.viewBox.baseVal;
+ var preserveAspectRatioAlign = testElement.preserveAspectRatio.baseVal.align;
+ var passingTests = 0;
+
+ if ((0 == viewBox.x) && (0 == viewBox.y) && (300 == viewBox.width) && (200 == viewBox.height))
+ {
+ passingTests++;
+ }
+
+ if (SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_XMINYMIN == preserveAspectRatioAlign && SVGPreserveAspectRatio.SVG_MEETORSLICE_SLICE == testElement.preserveAspectRatio.baseVal.meetOrSlice)
+ {
+ passingTests++;
+ }
+
+ if (2 == passingTests)
+ {
+ document.getElementById("failText").setAttribute("display", "none");
+ document.getElementById("passText").setAttribute("display", "inline");
+ }
+ }
+ catch(ex)
+ {
+ alert("ERROR: " + ex.message);
+
+ }
+ ]]>
+
+ </script>
+
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svglengthlist-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svglengthlist-01-f-isvalid.html
new file mode 100644
index 0000000000..a6638a7719
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svglengthlist-01-f-isvalid.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>types-dom-svglengthlist-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: types-dom-svglengthlist-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: types-dom-svglengthlist-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text id="test" />
+ <g transform="translate(96, 96)" font-size="100">
+ <text id="failText" fill="red">FAIL</text>
+ <text id="passText" fill="green" display="none">PASS</text>
+ </g>
+ <script><![CDATA[
+ try
+ {
+ var testElement = document.getElementById("test");
+ var svgList = testElement.x.baseVal;
+ var passingTests = 0;
+
+ try
+ {
+ svgList.getItem(5);
+ }
+ catch (ex)
+ {
+ if (DOMException.INDEX_SIZE_ERR == ex.code)
+ {
+ passingTests++;
+ }
+ }
+
+ try
+ {
+ var svgElement = testElement.ownerSVGElement;
+ var svgLength = svgElement.createSVGLength();
+ svgLength.valueAsString = "100px";
+ svgList.replaceItem(svgLength, 5);
+ }
+ catch (ex)
+ {
+ if (DOMException.INDEX_SIZE_ERR == ex.code)
+ {
+ passingTests++;
+ }
+ }
+
+ try
+ {
+ svgList.removeItem(5);
+ }
+ catch (ex)
+ {
+ if (DOMException.INDEX_SIZE_ERR == ex.code)
+ {
+ passingTests++;
+ }
+ }
+
+ if (3 == passingTests)
+ {
+ document.getElementById("failText").setAttribute("display", "none");
+ document.getElementById("passText").setAttribute("display", "inline");
+ }
+ }
+ catch(ex)
+ {
+ alert("ERROR: " + ex.message);
+ }]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svgnumberlist-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svgnumberlist-01-f-isvalid.html
new file mode 100644
index 0000000000..7590ecb8a7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svgnumberlist-01-f-isvalid.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>types-dom-svgnumberlist-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: types-dom-svgnumberlist-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: types-dom-svgnumberlist-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <text id="test" />
+ <g transform="translate(96, 96)" font-size="100">
+ <text id="failText" fill="red">FAIL</text>
+ <text id="passText" fill="green" display="none">PASS</text>
+ </g>
+ <script><![CDATA[
+ try
+ {
+ var testElement = document.getElementById("test");
+ var svgList = testElement.rotate.baseVal;
+ var passingTests = 0;
+
+ try
+ {
+ svgList.getItem(5);
+ }
+ catch (ex)
+ {
+ if (DOMException.INDEX_SIZE_ERR == ex.code)
+ {
+ passingTests++;
+ }
+ }
+
+ try
+ {
+ var svgElement = testElement.ownerSVGElement;
+ var svgNumber = svgElement.createSVGNumber();
+ svgNumber.value = 100;
+ svgList.replaceItem(svgNumber, 5);
+ }
+ catch (ex)
+ {
+ if (DOMException.INDEX_SIZE_ERR == ex.code)
+ {
+ passingTests++;
+ }
+ }
+
+ try
+ {
+ svgList.removeItem(5);
+ }
+ catch (ex)
+ {
+ if (DOMException.INDEX_SIZE_ERR == ex.code)
+ {
+ passingTests++;
+ }
+ }
+
+ if (3 == passingTests)
+ {
+ document.getElementById("failText").setAttribute("display", "none");
+ document.getElementById("passText").setAttribute("display", "inline");
+ }
+ }
+ catch(ex)
+ {
+ alert("ERROR: " + ex.message);
+ }]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svgstringlist-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svgstringlist-01-f-isvalid.html
new file mode 100644
index 0000000000..0118e06878
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svgstringlist-01-f-isvalid.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>types-dom-svgstringlist-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: types-dom-svgstringlist-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: types-dom-svgstringlist-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <svg id="test" />
+ <g transform="translate(96, 96)" font-size="100">
+ <text id="failText" fill="red">FAIL</text>
+ <text id="passText" fill="green" display="none">PASS</text>
+ </g>
+ <script><![CDATA[
+ try
+ {
+ var testElement = document.getElementById("test");
+ var svgList = testElement.requiredExtensions;
+ var passingTests = 0;
+
+ try
+ {
+ svgList.getItem(5);
+ }
+ catch (ex)
+ {
+ if (DOMException.INDEX_SIZE_ERR == ex.code)
+ {
+ passingTests++;
+ }
+ }
+
+ try
+ {
+ svgList.replaceItem("fakeValue", 5);
+ }
+ catch (ex)
+ {
+ if (DOMException.INDEX_SIZE_ERR == ex.code)
+ {
+ passingTests++;
+ }
+ }
+
+ try
+ {
+ svgList.removeItem(5);
+ }
+ catch (ex)
+ {
+ if (DOMException.INDEX_SIZE_ERR == ex.code)
+ {
+ passingTests++;
+ }
+ }
+
+ if (3 == passingTests)
+ {
+ document.getElementById("failText").setAttribute("display", "none");
+ document.getElementById("passText").setAttribute("display", "inline");
+ }
+ }
+ catch(ex)
+ {
+
+ alert("ERROR: " + ex.message);
+
+ }]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.4 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svgtransformable-01-f-isvalid.html b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svgtransformable-01-f-isvalid.html
new file mode 100644
index 0000000000..2e52606973
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html-svg/types-dom-svgtransformable-01-f-isvalid.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html lang='en'>
+<head>
+ <title>types-dom-svgtransformable-01-f-manual.svg</title>
+ <meta charset='utf-8'>
+</head>
+<body>
+ <h1>Source SVG: types-dom-svgtransformable-01-f-manual.svg</h1>
+<svg id="svg-root" width="100%" height="100%" viewBox="0 0 480 360" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!--======================================================================-->
+ <!--= Copyright 2008 World Wide Web Consortium, (Massachusetts =-->
+ <!--= Institute of Technology, European Research Consortium for =-->
+ <!--= Informatics and Mathematics (ERCIM), Keio University). =-->
+ <!--= All Rights Reserved. =-->
+ <!--= See http://www.w3.org/Consortium/Legal/. =-->
+ <!--======================================================================-->
+
+ <title id="test-title">$RCSfile: types-dom-svgtransformable-01-f.svg,v $</title>
+ <defs>
+ <font-face
+ font-family="SVGFreeSansASCII"
+ unicode-range="U+0-7F">
+ <font-face-src>
+ <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
+ </font-face-src>
+ </font-face>
+ </defs>
+ <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
+ <g id="test" transform="translate(10)" />
+ <g transform="translate(100, 100)" font-size="80">
+ <text id="failText" fill="red">FAIL</text>
+ <text id="passText" fill="green" display="none">PASS</text>
+ </g>
+ <script><![CDATA[
+ try
+ {
+ var testElement = document.getElementById("test");
+ var passingTests = 0;
+
+ if (SVGTransform.SVG_TRANSFORM_TRANSLATE == testElement.transform.baseVal.getItem(0).type)
+ {
+ passingTests++;
+ }
+
+ var svgElement = testElement.ownerSVGElement;
+ var svgTransform = svgElement.createSVGTransform();
+ svgTransform.setRotate(45, 0, 0);
+ testElement.transform.baseVal.clear();
+ testElement.transform.baseVal.appendItem(svgTransform);
+
+ if (SVGTransform.SVG_TRANSFORM_ROTATE == testElement.transform.baseVal.getItem(0).type)
+ {
+ passingTests++;
+ }
+
+ if (2 == passingTests)
+ {
+ document.getElementById("failText").setAttribute("display", "none");
+ document.getElementById("passText").setAttribute("display", "inline");
+ }
+ }
+ catch(ex)
+ {
+ alert('ERROR: ' + ex.message);
+ }]]>
+ </script>
+ </g>
+ <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
+ <text id="revision" x="10" y="340" stroke="none"
+ fill="black">$Revision: 1.5 $</text>
+ </g>
+ <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
+ <!-- comment out this watermark once the test is approved -->
+ <g id="draft-watermark">
+ <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
+ <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
+ text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
+ </g>
+</svg>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/Makefile b/testing/web-platform/tests/conformance-checkers/html/Makefile
new file mode 100644
index 0000000000..332591348f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/Makefile
@@ -0,0 +1,20 @@
+PYTHON=python
+PYTHONFLAGS=
+META_EXTENSIONS=http://help.whatwg.org/extensions/meta-name/
+CURL=curl
+CURLFLAGS=
+PYTHON=python
+PYTHONFLAGS=
+
+.PHONY: ins-del-datetime .FORCE
+
+all: ins-del-datetime tools/meta-extensions elements/meta/names-registered-isvalid.html
+
+ins-del-datetime: tools/ins-del-datetime.py
+ $(PYTHON) $(PYTHONFLAGS) $<
+
+tools/meta-extensions: .FORCE
+ $(CURL) $(CURLFLAGS) $(META_EXTENSIONS) > $@
+
+elements/meta/names-registered-isvalid.html: .FORCE
+ $(PYTHON) $(PYTHONFLAGS) tools/meta-name.py
diff --git a/testing/web-platform/tests/conformance-checkers/html/attributes/accesskey/duplicate-key-labels-novalid.html b/testing/web-platform/tests/conformance-checkers/html/attributes/accesskey/duplicate-key-labels-novalid.html
new file mode 100644
index 0000000000..1c9800d627
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/attributes/accesskey/duplicate-key-labels-novalid.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<head><meta charset="UTF-8">
+<title>accesskey attribute with duplicate key labels</title>
+</head>
+<body>
+<a href=url accesskey="a b ぬ c ぬ">foo</a>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/attributes/accesskey/multi-character-key-label-novalid.html b/testing/web-platform/tests/conformance-checkers/html/attributes/accesskey/multi-character-key-label-novalid.html
new file mode 100644
index 0000000000..303e1ea92e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/attributes/accesskey/multi-character-key-label-novalid.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<head><meta charset="UTF-8">
+<title>accesskey attribute with multi-character key label</title>
+</head>
+<body>
+<a href=url accesskey="a b ほげ">foo</a>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/attributes/data/no-characters-after-hyphen-novalid.html b/testing/web-platform/tests/conformance-checkers/html/attributes/data/no-characters-after-hyphen-novalid.html
new file mode 100644
index 0000000000..b30b1f9a71
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/attributes/data/no-characters-after-hyphen-novalid.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>starts with the string "data-", has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters</title>
+<p data-=""> <!-- no characters after the hypen -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/attributes/data/not-xml-serializable-novalid.html b/testing/web-platform/tests/conformance-checkers/html/attributes/data/not-xml-serializable-novalid.html
new file mode 100644
index 0000000000..7bcbfcbf5e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/attributes/data/not-xml-serializable-novalid.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>starts with the string "data-", has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters</title>
+<p data-z:foo=""><!-- not serializable as XML -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/attributes/data/value-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/attributes/data/value-isvalid.html
new file mode 100644
index 0000000000..96f0917d48
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/attributes/data/value-isvalid.html
@@ -0,0 +1,7 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>valid data-</title>
+<!-- starts with the string "data-", has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters -->
+<p data-z="">
+<!-- starts with the string "data-", has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters -->
+<p data-78zxyabc123-foo_bar_baz="">
diff --git a/testing/web-platform/tests/conformance-checkers/html/attributes/lang/deprecated-tag-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/attributes/lang/deprecated-tag-haswarn.html
new file mode 100644
index 0000000000..4fc1aaaafc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/attributes/lang/deprecated-tag-haswarn.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>must be a valid BCP 47 language tag, or the empty string</title>
+<meta charset=utf-8>
+</head>
+<body lang=mo><!-- deprecated subtag -->
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/attributes/lang/empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/attributes/lang/empty-isvalid.html
new file mode 100644
index 0000000000..f88354d019
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/attributes/lang/empty-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="">
+<head>
+<meta charset=utf-8>
+<title>must be a valid BCP 47 language tag, or the empty string</title>
+</head>
+<body>
+<p></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/attributes/lang/extlang-bad-novalid.html b/testing/web-platform/tests/conformance-checkers/html/attributes/lang/extlang-bad-novalid.html
new file mode 100644
index 0000000000..7908f08c3f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/attributes/lang/extlang-bad-novalid.html
@@ -0,0 +1,9 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>must be a valid BCP 47 language tag, or the empty string</title>
+<meta charset=utf-8>
+</head>
+<body lang=bat-smg><!-- bad extlang -->
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/attributes/lang/xmllang-different-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/attributes/lang/xmllang-different-value-novalid.html
new file mode 100644
index 0000000000..8e9f82fe51
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/attributes/lang/xmllang-different-value-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html xml:lang="en" lang="fr">
+<head>
+<meta charset=utf-8>
+<title>When "xml:lang" is specified, the element must also have "lang" present with the same value</title>
+</head>
+<body>
+<p></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/attributes/lang/xmllang-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/attributes/lang/xmllang-only-novalid.html
new file mode 100644
index 0000000000..7f4571ef12
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/attributes/lang/xmllang-only-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html xml:lang="en">
+<head>
+<meta charset=utf-8>
+<title>When "xml:lang" is specified, the element must also have "lang" present with the same value</title>
+</head>
+<body>
+<p></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/attributes/lang/xmllang-same-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/attributes/lang/xmllang-same-isvalid.html
new file mode 100644
index 0000000000..71418a5f62
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/attributes/lang/xmllang-same-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html xml:lang="en" lang="en">
+<head>
+<meta charset=utf-8>
+<title>When "xml:lang" is specified, the element must also have "lang" present with the same value</title>
+</head>
+<body>
+<p></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/attributes/role/unrecognized-role-name-novalid.html b/testing/web-platform/tests/conformance-checkers/html/attributes/role/unrecognized-role-name-novalid.html
new file mode 100644
index 0000000000..b7b7f726b8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/attributes/role/unrecognized-role-name-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>The attribute value MUST allow a token list as the value</title>
+<input type=checkbox aria-checked=true role="switch menuitemcheckbox checkbox input">
+<!-- "switch" & "input" are unrecognized; "checkbox" is superfluous -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/attributes/spellcheck/value-bad-novalid.html b/testing/web-platform/tests/conformance-checkers/html/attributes/spellcheck/value-bad-novalid.html
new file mode 100644
index 0000000000..6cbf57e787
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/attributes/spellcheck/value-bad-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>spellcheck="badvalue"</title>
+</head>
+<body>
+<p spellcheck="badvalue"></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/attributes/spellcheck/value-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/attributes/spellcheck/value-isvalid.html
new file mode 100644
index 0000000000..2ce71c581b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/attributes/spellcheck/value-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>valid spellcheck</title>
+</head>
+<body>
+<p spellcheck="true"></p>
+<p spellcheck="false"></p>
+</body>
+</html>
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>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href-and-target-missing-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href-and-target-missing-novalid.html
new file mode 100644
index 0000000000..32085fc8d2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href-and-target-missing-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta charset=utf-8>
+<base>
+<title>base element missing href and target attribute</title>
+</head>
+<body>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href-empty-isvalid.html
new file mode 100644
index 0000000000..c3b766dfd6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty href is valid</title>
+<base href="">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..6528b43cec
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: fragment-backslash</title>
+<base href="#\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..b5079588ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: fragment-contains-hash</title>
+<base href="http://foo/path#f#g">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-pile-of-poo-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-pile-of-poo-isvalid.html
new file mode 100644
index 0000000000..2ac59a318b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-pile-of-poo-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: fragment-contains-pile-of-poo</title>
+<base href="http://example.com/foo#💩">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-question-mark-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-question-mark-isvalid.html
new file mode 100644
index 0000000000..7c04791257
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-contains-question-mark-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: fragment-contains-question-mark</title>
+<base href="http://foo/abcd#foo?bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-empty-hash-only-no-path-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-empty-hash-only-no-path-relative-isvalid.html
new file mode 100644
index 0000000000..3d09700665
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-empty-hash-only-no-path-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: fragment-empty-hash-only-no-path-relative</title>
+<base href="#">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..84150eadc1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: fragment-leading-space</title>
+<base href="http://f:21/b# e">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-non-ascii-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-non-ascii-relative-isvalid.html
new file mode 100644
index 0000000000..15858fde1a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-non-ascii-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: fragment-non-ascii-relative</title>
+<base href="#β">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-semicolon-question-mark-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-semicolon-question-mark-relative-isvalid.html
new file mode 100644
index 0000000000..68a838c8d0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-semicolon-question-mark-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: fragment-semicolon-question-mark-relative</title>
+<base href="#;?">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-slash-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-slash-relative-isvalid.html
new file mode 100644
index 0000000000..7edb0b4ed4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/fragment-slash-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: fragment-slash-relative</title>
+<base href="#/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-192.0x00A80001-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-192.0x00A80001-isvalid.html
new file mode 100644
index 0000000000..75de62fdc8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-192.0x00A80001-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-192.0x00A80001</title>
+<base href="http://192.0x00A80001">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-broken-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-broken-isvalid.html
new file mode 100644
index 0000000000..dc2e02080b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-broken-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-IP-address-broken</title>
+<base href="http://192.168.0.257/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-fullwidth-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-fullwidth-isvalid.html
new file mode 100644
index 0000000000..64535576d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-fullwidth-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-IP-address-fullwidth</title>
+<base href="http://0Xc0.0250.01">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-percent-encoded-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-percent-encoded-isvalid.html
new file mode 100644
index 0000000000..8a092380d4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-IP-address-percent-encoded-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-IP-address-percent-encoded</title>
+<base href="http://%30%78%63%30%2e%30%32%35%30.01">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-cr-novalid.html
new file mode 100644
index 0000000000..cb631459e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-cr</title>
+<base href="http://example. org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..fc44eee8a9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-double-percent-encoded</title>
+<base href="http://%41.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..eaee5db8a1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-double-percent-encoded-percent-encoded</title>
+<base href="http://%ef%bc%85%ef%bc%94%ef%bc%91.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-novalid.html
new file mode 100644
index 0000000000..08ce416ef2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-empty</title>
+<base href="http://">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..d41591fabe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-empty-userinfo-empty</title>
+<base href="http://@/www.example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..47941b7235
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-empty-with-userinfo</title>
+<base href="http://user:pass@/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-exotic-dot-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-exotic-dot-isvalid.html
new file mode 100644
index 0000000000..d0d1f0a1d1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-exotic-dot-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-exotic-dot</title>
+<base href="http://www.foo。bar.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-exotic-whitespace-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-exotic-whitespace-isvalid.html
new file mode 100644
index 0000000000..adcc57480e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-exotic-whitespace-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-exotic-whitespace</title>
+<base href="http://GOO​⁠goo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-fullwidth-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-fullwidth-isvalid.html
new file mode 100644
index 0000000000..65108edd47
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-fullwidth-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-fullwidth</title>
+<base href="http://Go.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..c25a1a3ffa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-hostname-in-brackets</title>
+<base href="http://[www.google.com]/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-idn-unicode-han-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-idn-unicode-han-isvalid.html
new file mode 100644
index 0000000000..576badf53f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-idn-unicode-han-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-idn-unicode-han</title>
+<base href="http://你好你好">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..4b20692017
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-invalid-unicode</title>
+<base href="http://﷐zyx.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..4533dbc887
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-invalid-unicode-percent-encoded</title>
+<base href="http://%ef%b7%90zyx.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-ipv6-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-ipv6-isvalid.html
new file mode 100644
index 0000000000..112eacd95a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-ipv6-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-ipv6</title>
+<base href="http://[2001::1]">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-ipv6-port-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-ipv6-port-isvalid.html
new file mode 100644
index 0000000000..3495478c74
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-ipv6-port-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-ipv6-port</title>
+<base href="http://[2001::1]:80">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-is-pile-of-poo-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-is-pile-of-poo-isvalid.html
new file mode 100644
index 0000000000..f286407a0b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-is-pile-of-poo-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: host-is-pile-of-poo</title>
+<base href="http://💩">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-newline-novalid.html
new file mode 100644
index 0000000000..44e53c36fc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-newline</title>
+<base href="http://example.
+org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-space-novalid.html
new file mode 100644
index 0000000000..4b02459e3c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-space</title>
+<base href="http://example .org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..1839ee2688
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-square-brackets-port-contains-colon</title>
+<base href="http://[1::2]:3:4">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-tab-novalid.html
new file mode 100644
index 0000000000..335d7c842d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-tab</title>
+<base href="http://example .org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..94a2327129
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-u0000-percent-encoded</title>
+<base href="http://%00.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..bc934e6702
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-u0000-percent-encoded-percent-encoded</title>
+<base href="http://%ef%bc%85%ef%bc%90%ef%bc%90.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..819a99d538
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-bare-percent-sign</title>
+<base href="http://example.com/foo%">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-colon-colon-number-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-colon-colon-number-relative-isvalid.html
new file mode 100644
index 0000000000..643b01f07d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-colon-colon-number-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-colon-colon-number-relative</title>
+<base href="::23">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-colon-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-colon-relative-isvalid.html
new file mode 100644
index 0000000000..f1254de8d2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-colon-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-colon-relative</title>
+<base href=":">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-contains-pile-of-poo-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-contains-pile-of-poo-isvalid.html
new file mode 100644
index 0000000000..f491b503f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-contains-pile-of-poo-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-contains-pile-of-poo</title>
+<base href="http💩//:foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-contains-space-novalid.html
new file mode 100644
index 0000000000..87c76dd305
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-contains-space</title>
+<base href="/a/ /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..785ecad748
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-leading-backslash-at-sign</title>
+<base href="http://foo.com/\@">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..1e61b71c38
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-leading-colon-backslash</title>
+<base href=":\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..5ae57974b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-leading-colon-chars-backslash</title>
+<base href=":foo.com\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-chars-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-chars-relative-isvalid.html
new file mode 100644
index 0000000000..11b94a6e1c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-chars-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-leading-colon-chars-relative</title>
+<base href=":foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-colon-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-colon-relative-isvalid.html
new file mode 100644
index 0000000000..0589f8ae2d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-colon-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-leading-colon-colon-relative</title>
+<base href="::">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-hash-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-hash-relative-isvalid.html
new file mode 100644
index 0000000000..7114dd5f5c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-hash-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-leading-colon-hash-relative</title>
+<base href=":#">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-letter-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-letter-relative-isvalid.html
new file mode 100644
index 0000000000..279c2ce4c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-letter-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-leading-colon-letter-relative</title>
+<base href=":a">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-number-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-number-relative-isvalid.html
new file mode 100644
index 0000000000..c66670292f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-number-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-leading-colon-number-relative</title>
+<base href=":23">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-slash-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-slash-relative-isvalid.html
new file mode 100644
index 0000000000..77ec3dd2d0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-colon-slash-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-leading-colon-slash-relative</title>
+<base href=":/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-space-novalid.html
new file mode 100644
index 0000000000..3a6cc2f33a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-leading-space</title>
+<base href="http://f:21/ b">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-non-ascii-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-non-ascii-isvalid.html
new file mode 100644
index 0000000000..e9d396b02e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-non-ascii-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-non-ascii</title>
+<base href="http://example.com/©zbar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-dot-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-dot-isvalid.html
new file mode 100644
index 0000000000..5921992d46
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-dot-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-percent-encoded-dot</title>
+<base href="http://example.com/foo/%2e">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..c9cfe23289
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-percent-encoded-malformed</title>
+<base href="http://example.com/foo/%2e%2">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-mixed-case-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-mixed-case-isvalid.html
new file mode 100644
index 0000000000..677a564bac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-mixed-case-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-percent-encoded-mixed-case</title>
+<base href="http://example.com/%3A%3a%3C%3c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-multiple-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-multiple-isvalid.html
new file mode 100644
index 0000000000..75a512babc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-multiple-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-percent-encoded-multiple</title>
+<base href="http://example.com/foo%41%7a">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-slash-plus-slashes-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-slash-plus-slashes-relative-isvalid.html
new file mode 100644
index 0000000000..f5ed17b902
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-slash-plus-slashes-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-percent-encoded-slash-plus-slashes-relative</title>
+<base href="/a/%2f/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-slash-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-slash-relative-isvalid.html
new file mode 100644
index 0000000000..79e89e3abe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-slash-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-percent-encoded-slash-relative</title>
+<base href="/a%2fc">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-space-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-space-isvalid.html
new file mode 100644
index 0000000000..cc9b8b850e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-space-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-percent-encoded-space</title>
+<base href="http://example.com/%20foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-u0000-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-u0000-isvalid.html
new file mode 100644
index 0000000000..515a7528ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-u0000-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-percent-encoded-u0000</title>
+<base href="http://example.com/foo%00">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-u0091-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-u0091-isvalid.html
new file mode 100644
index 0000000000..16cec3605e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-percent-encoded-u0091-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-percent-encoded-u0091</title>
+<base href="http://example.com/foo%91">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..79af6ae6f8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-relative-square-brackets</title>
+<base href="[61:24:74]:98">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-simple-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-simple-relative-isvalid.html
new file mode 100644
index 0000000000..7e4c99fab1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-simple-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-simple-relative</title>
+<base href="/a/b/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-colon-number-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-colon-number-relative-isvalid.html
new file mode 100644
index 0000000000..3834395ce8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-colon-number-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-slash-colon-number-relative</title>
+<base href="/:23">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-only-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-only-relative-isvalid.html
new file mode 100644
index 0000000000..83a89c09ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-only-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-slash-only-relative</title>
+<base href="/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-pile-of-poo-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-pile-of-poo-isvalid.html
new file mode 100644
index 0000000000..e0e6855b3c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-slash-pile-of-poo-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-slash-pile-of-poo</title>
+<base href="/💩">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-starts-with-pile-of-poo-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-starts-with-pile-of-poo-isvalid.html
new file mode 100644
index 0000000000..204b8b096a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-starts-with-pile-of-poo-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-starts-with-pile-of-poo</title>
+<base href="💩http://foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-tab-novalid.html
new file mode 100644
index 0000000000..21f8b6e5d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-tab</title>
+<base href="http://example.com/foo bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..3a24cb6e41
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-trailing-space</title>
+<base href="http://f:21/b ?">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-u0091-novalid.html
new file mode 100644
index 0000000000..78383c870f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-u0091</title>
+<base href="http://example.com/foo‘">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-u202E-u202D-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-u202E-u202D-isvalid.html
new file mode 100644
index 0000000000..5d865b6409
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-u202E-u202D-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-u202E-u202D</title>
+<base href="http://example.com/‮/foo/‭/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-uFEFF-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-uFEFF-isvalid.html
new file mode 100644
index 0000000000..03c3a969ff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-uFEFF-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-uFEFF</title>
+<base href="http://example.com//foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-unicode-han-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-unicode-han-isvalid.html
new file mode 100644
index 0000000000..e6c290bc26
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/path-unicode-han-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: path-unicode-han</title>
+<base href="http://example.com/你好你好">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-0-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-0-isvalid.html
new file mode 100644
index 0000000000..6dd7298b55
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-0-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: port-0</title>
+<base href="http://f:0/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-00000000000000-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-00000000000000-isvalid.html
new file mode 100644
index 0000000000..314c8ad777
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-00000000000000-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: port-00000000000000</title>
+<base href="http://f:00000000000000/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-00000000000000000000080-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-00000000000000000000080-isvalid.html
new file mode 100644
index 0000000000..34dd3d5624
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-00000000000000000000080-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: port-00000000000000000000080</title>
+<base href="http://f:00000000000000000000080/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-999999-novalid.html
new file mode 100644
index 0000000000..95393fab21
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-999999</title>
+<base href="http://f:999999/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-cr-novalid.html
new file mode 100644
index 0000000000..e5fe6bf688
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-cr</title>
+<base href="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..3bc673fe64
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-leading-colon-bracket-colon</title>
+<base href="http://2001::1]:80">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..c526a758ff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-leading-colon</title>
+<base href="http://2001::1">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..2270e65c9c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-leading-dash</title>
+<base href="http://foo:-80/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..9d5ef78404
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-multiple-letters</title>
+<base href="http://f:fifty-two/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-newline-novalid.html
new file mode 100644
index 0000000000..bef3487e4d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-newline</title>
+<base href="http://f:
+/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-none-but-colon-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-none-but-colon-isvalid.html
new file mode 100644
index 0000000000..4307c492cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-none-but-colon-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: port-none-but-colon</title>
+<base href="http://f:/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-single-letter-novalid.html
new file mode 100644
index 0000000000..8daa066d60
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-single-letter</title>
+<base href="http://f:b/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-space-novalid.html
new file mode 100644
index 0000000000..77a3d57620
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-space</title>
+<base href="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-tab-novalid.html
new file mode 100644
index 0000000000..e14664a74b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-tab</title>
+<base href="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-contains-pile-of-poo-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-contains-pile-of-poo-isvalid.html
new file mode 100644
index 0000000000..7ea7f41087
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-contains-pile-of-poo-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: query-contains-pile-of-poo</title>
+<base href="http://example.com/foo?💩">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-contains-question-mark-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-contains-question-mark-isvalid.html
new file mode 100644
index 0000000000..f78635c4e9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-contains-question-mark-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: query-contains-question-mark</title>
+<base href="http://foo/abcd?efgh?ijkl">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-empty-no-path-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-empty-no-path-relative-isvalid.html
new file mode 100644
index 0000000000..82b66f0644
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-empty-no-path-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: query-empty-no-path-relative</title>
+<base href="?">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-leading-space-novalid.html
new file mode 100644
index 0000000000..d26d8e1965
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: query-leading-space</title>
+<base href="http://f:21/b? d">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..d099a9f0e4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: query-trailing-space</title>
+<base href="http://f:21/b?d #">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..a1e740045a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-contains-fragment-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>href warning: scheme-data-contains-fragment</title>
+<base href="data:text/html,test#test">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-no-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-no-slash-isvalid.html
new file mode 100644
index 0000000000..e13d2677b4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-no-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-data-no-slash</title>
+<base href="data:text/plain,foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..1f938779ac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-data-single-slash</title>
+<base href="data:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..fda3e3d039
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-file-backslash</title>
+<base href="file:c:\foo\bar.html">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-host-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-host-empty-isvalid.html
new file mode 100644
index 0000000000..a90aa6c716
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-host-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-host-empty</title>
+<base href="file:///foo/bar.txt">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-host-included-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-host-included-isvalid.html
new file mode 100644
index 0000000000..322773e2e9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-host-included-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-host-included</title>
+<base href="file://server/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-no-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-no-slash-isvalid.html
new file mode 100644
index 0000000000..3a31f957e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-no-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-no-slash</title>
+<base href="file:test">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-scheme-only-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-scheme-only-isvalid.html
new file mode 100644
index 0000000000..af318cdd9d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-scheme-only-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-scheme-only</title>
+<base href="file:">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..87d17ed6c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-single-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-file-single-slash-c-bar</title>
+<base href="file:/C|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-single-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-single-slash-isvalid.html
new file mode 100644
index 0000000000..f67878f46c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-single-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-single-slash</title>
+<base href="file:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-only-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-only-isvalid.html
new file mode 100644
index 0000000000..a8c329f33d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-only-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-slash-only</title>
+<base href="file:/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..5ca23afb76
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-abc-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-file-slash-slash-abc-bar</title>
+<base href="file://abc|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-c-bar-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-c-bar-isvalid.html
new file mode 100644
index 0000000000..4d96a67da6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-c-bar-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-slash-slash-c-bar</title>
+<base href="file://C|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-only-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-only-isvalid.html
new file mode 100644
index 0000000000..dcef904aa5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-only-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-slash-slash-only</title>
+<base href="file://">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-slash-only-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-slash-only-isvalid.html
new file mode 100644
index 0000000000..ffe97bb721
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-slash-slash-slash-only-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-slash-slash-slash-only</title>
+<base href="file:///">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..06b8933be9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-triple-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-file-triple-slash-c-bar</title>
+<base href="file:///C|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-uppercase-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-uppercase-isvalid.html
new file mode 100644
index 0000000000..58bb4a4799
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-file-uppercase-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-file-uppercase</title>
+<base href="File://foo/bar.html">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..49285d8082
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-ftp-no-slash</title>
+<base href="ftp:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..7ff694c98b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-ftp-single-slash</title>
+<base href="ftp:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftps-no-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftps-no-slash-isvalid.html
new file mode 100644
index 0000000000..bc0ac07fe8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftps-no-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-ftps-no-slash</title>
+<base href="ftps:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftps-single-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftps-single-slash-isvalid.html
new file mode 100644
index 0000000000..758a74e172
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ftps-single-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-ftps-single-slash</title>
+<base href="ftps:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-gopher-no-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-gopher-no-slash-isvalid.html
new file mode 100644
index 0000000000..ec35f0abb5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-gopher-no-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-gopher-no-slash</title>
+<base href="gopher:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-gopher-single-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-gopher-single-slash-isvalid.html
new file mode 100644
index 0000000000..aa97811b3f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-gopher-single-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-gopher-single-slash</title>
+<base href="gopher:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..5923cf1df1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-http-backslash</title>
+<base href="http:\\foo.com\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..8146e78bb6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-http-no-slash-colon</title>
+<base href="http::@c:29">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..6084b413f4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-http-no-slash</title>
+<base href="http:foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..21f612d8a8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-http-no-slash-square-bracket</title>
+<base href="http:[61:27]/:foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..4684b7b2bc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-http-single-slash</title>
+<base href="http:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..76c139dfda
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-https-no-slash</title>
+<base href="https:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..49d14bcec7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-https-single-slash</title>
+<base href="https:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-javascript-single-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-javascript-single-slash-isvalid.html
new file mode 100644
index 0000000000..cb6b793bcf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-javascript-single-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-javascript-single-slash</title>
+<base href="javascript:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-mailto-no-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-mailto-no-slash-isvalid.html
new file mode 100644
index 0000000000..5c96deb162
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-mailto-no-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-mailto-no-slash</title>
+<base href="mailto:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-mailto-single-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-mailto-single-slash-isvalid.html
new file mode 100644
index 0000000000..ca07ab15f2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-mailto-single-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-mailto-single-slash</title>
+<base href="mailto:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-none-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-none-relative-isvalid.html
new file mode 100644
index 0000000000..672de82fb2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-none-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-none-relative</title>
+<base href="foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-isvalid.html
new file mode 100644
index 0000000000..d565575b57
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private</title>
+<base href="a:foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-no-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-no-slash-isvalid.html
new file mode 100644
index 0000000000..207a8d6cbe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-no-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-no-slash</title>
+<base href="madeupscheme:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-isvalid.html
new file mode 100644
index 0000000000..8e0552b703
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-path</title>
+<base href="foo:/bar.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-chars-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-chars-isvalid.html
new file mode 100644
index 0000000000..6fa812d783
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-chars-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-path-leading-slashes-chars</title>
+<base href="foo://///////bar.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-colon-slashes-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-colon-slashes-isvalid.html
new file mode 100644
index 0000000000..3e5a44a005
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-colon-slashes-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-path-leading-slashes-colon-slashes</title>
+<base href="foo:////://///">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-only-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-only-isvalid.html
new file mode 100644
index 0000000000..8d6c0c9f8d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-path-leading-slashes-only-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-path-leading-slashes-only</title>
+<base href="foo://///////">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-single-letter-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-single-letter-isvalid.html
new file mode 100644
index 0000000000..bc82b8b7fe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-single-letter-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-single-letter</title>
+<base href="c:/foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-single-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-single-slash-isvalid.html
new file mode 100644
index 0000000000..c3639a432c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-single-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-single-slash</title>
+<base href="madeupscheme:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-slash-isvalid.html
new file mode 100644
index 0000000000..d56b355cf9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-slash</title>
+<base href="foo:/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-slash-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-slash-slash-isvalid.html
new file mode 100644
index 0000000000..39a6b25cf7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-private-slash-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-private-slash-slash</title>
+<base href="foo://">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-schemeless-relative-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-schemeless-relative-isvalid.html
new file mode 100644
index 0000000000..d86d3f68ca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-schemeless-relative-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-schemeless-relative</title>
+<base href="//foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..e6097e4f79
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-cr</title>
+<base href="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..acc6c91ffa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-newline</title>
+<base href="a:
+foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..c03abd547c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-space</title>
+<base href="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..0e1f91bce6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-tab</title>
+<base href="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ws-single-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ws-single-slash-isvalid.html
new file mode 100644
index 0000000000..63e24e9b6b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-ws-single-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-ws-single-slash</title>
+<base href="ws:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-wss-no-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-wss-no-slash-isvalid.html
new file mode 100644
index 0000000000..2c4e88c3aa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-wss-no-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-wss-no-slash</title>
+<base href="wss:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-wss-single-slash-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-wss-single-slash-isvalid.html
new file mode 100644
index 0000000000..a2b2b6fd59
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/scheme-wss-single-slash-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: scheme-wss-single-slash</title>
+<base href="wss:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..99a6d72075
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: userinfo-backslash</title>
+<base href="http://a\b:c\d@foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-empty-isvalid.html
new file mode 100644
index 0000000000..8f641cf94b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: userinfo-empty</title>
+<base href="http://@www.example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-host-port-path-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-host-port-path-isvalid.html
new file mode 100644
index 0000000000..e28a20b518
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-host-port-path-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: userinfo-host-port-path</title>
+<base href="http://a:b@c:29/d">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-isvalid.html
new file mode 100644
index 0000000000..6f1d9eaea6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: userinfo</title>
+<base href="http://user:pass@foo:21/bar;par?b#c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..31a68b170a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: userinfo-password-bad-chars</title>
+<base href="http://&a:foo(b]c@d:2/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..0fa8f05058
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: userinfo-password-contains-pile-of-poo</title>
+<base href="http://foo:💩@example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-empty-isvalid.html
new file mode 100644
index 0000000000..cedf7ae3b8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-password-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: userinfo-password-empty</title>
+<base href="http://a:@www.example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-user-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-user-empty-isvalid.html
new file mode 100644
index 0000000000..b6f323d2d0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-user-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: userinfo-user-empty</title>
+<base href="http://:b@www.example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..c3a16ce863
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: userinfo-username-contains-at-sign</title>
+<base href="http://::@c@d:2">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-percent-encoded-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-percent-encoded-isvalid.html
new file mode 100644
index 0000000000..2c2dfebd2e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-percent-encoded-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: userinfo-username-contains-percent-encoded</title>
+<base href="http://%25DOMAIN:foobar@foodomain.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..0ff54c4c9d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: userinfo-username-contains-pile-of-poo</title>
+<base href="http://💩:foo@example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-non-alpha-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-non-alpha-isvalid.html
new file mode 100644
index 0000000000..f750703373
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/base/href/userinfo-username-non-alpha-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href: userinfo-username-non-alpha</title>
+<base href="http://foo.com:b@d/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/bdo/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/bdo/model-isvalid.html
new file mode 100644
index 0000000000..17a9d2c971
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/bdo/model-isvalid.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;bdo&gt;</title>
+</head>
+<body>
+ <!-- is structured inline; requires 'dir', test all attrs -->
+ <p><bdo dir="ltr"
+ lang="en"
+ style=""
+ class="class"
+ id="foo">text</bdo></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><bdo dir="ltr" class="class" lang="en">text</bdo></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <bdo dir="ltr"></bdo></p>
+ <p>text <dfn><bdo dir="ltr"></bdo></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><bdo dir="ltr"><a>text</a></bdo></p>
+ <p><dfn><bdo dir="ltr"><a>text</a></bdo></dfn></p>
+
+ <!-- cannot contain structured inline -->
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/bdo/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/bdo/model-novalid.html
new file mode 100644
index 0000000000..5dee57cf7a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/bdo/model-novalid.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;bdo&gt;</title>
+</head>
+<body>
+ <!-- not a block -->
+ <bdo dir="ltr">text</bdo>
+
+ <!-- 'dir' attribute required -->
+ <p><bdo>text</bdo></p>
+
+ <!-- cannot contain structured inline -->
+ <p><bdo dir="ltr"><ul><li>text</li></ul></bdo></p>
+
+ <!-- cannot contain interactive if parent forbids interactive -->
+ <p><a><bdo dir="ltr"><a>text</a></bdo></a></p>
+ <p><a><dfn><bdo dir="ltr"><a>text</a></bdo></dfn></a></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite-empty-isvalid.html
new file mode 100644
index 0000000000..698d8634a8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty cite is valid</title>
+<blockquote cite=""></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite-isvalid.html
new file mode 100644
index 0000000000..7771905359
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid cite</title>
+<blockquote cite="a:foo.com"></blockquote><!-- scheme-private -->
+<blockquote cite="foo:/"></blockquote><!-- scheme-private-slash -->
+<blockquote cite="foo://"></blockquote><!-- scheme-private-slash-slash -->
+<blockquote cite="foo:/bar.com/"></blockquote><!-- scheme-private-path -->
+<blockquote cite="foo://///////"></blockquote><!-- scheme-private-path-leading-slashes-only -->
+<blockquote cite="foo://///////bar.com/"></blockquote><!-- scheme-private-path-leading-slashes-chars -->
+<blockquote cite="foo:////://///"></blockquote><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<blockquote cite="c:/foo"></blockquote><!-- scheme-private-single-letter -->
+<blockquote cite="madeupscheme:/example.com/"></blockquote><!-- scheme-private-single-slash -->
+<blockquote cite="file:/example.com/"></blockquote><!-- scheme-file-single-slash -->
+<blockquote cite="ftps:/example.com/"></blockquote><!-- scheme-ftps-single-slash -->
+<blockquote cite="gopher:/example.com/"></blockquote><!-- scheme-gopher-single-slash -->
+<blockquote cite="ws:/example.com/"></blockquote><!-- scheme-ws-single-slash -->
+<blockquote cite="wss:/example.com/"></blockquote><!-- scheme-wss-single-slash -->
+<blockquote cite="javascript:/example.com/"></blockquote><!-- scheme-javascript-single-slash -->
+<blockquote cite="mailto:/example.com/"></blockquote><!-- scheme-mailto-single-slash -->
+<blockquote cite="madeupscheme:example.com/"></blockquote><!-- scheme-private-no-slash -->
+<blockquote cite="ftps:example.com/"></blockquote><!-- scheme-ftps-no-slash -->
+<blockquote cite="gopher:example.com/"></blockquote><!-- scheme-gopher-no-slash -->
+<blockquote cite="wss:example.com/"></blockquote><!-- scheme-wss-no-slash -->
+<blockquote cite="mailto:example.com/"></blockquote><!-- scheme-mailto-no-slash -->
+<blockquote cite="data:text/plain,foo"></blockquote><!-- scheme-data-no-slash -->
+<blockquote cite="http://user:pass@foo:21/bar;par?b#c"></blockquote><!-- userinfo -->
+<blockquote cite="http://[2001::1]"></blockquote><!-- host-ipv6 -->
+<blockquote cite="http://[2001::1]:80"></blockquote><!-- host-ipv6-port -->
+<blockquote cite="http://f:/c"></blockquote><!-- port-none-but-colon -->
+<blockquote cite="http://f:0/c"></blockquote><!-- port-0 -->
+<blockquote cite="http://f:00000000000000/c"></blockquote><!-- port-00000000000000 -->
+<blockquote cite="http://f:00000000000000000000080/c"></blockquote><!-- port-00000000000000000000080 -->
+<blockquote cite="http://a:b@c:29/d"></blockquote><!-- userinfo-host-port-path -->
+<blockquote cite="http://foo.com:b@d/"></blockquote><!-- userinfo-username-non-alpha -->
+<blockquote cite="http://foo/abcd?efgh?ijkl"></blockquote><!-- query-contains-question-mark -->
+<blockquote cite="http://foo/abcd#foo?bar"></blockquote><!-- fragment-contains-question-mark -->
+<blockquote cite="http://example.com/foo/%2e"></blockquote><!-- path-percent-encoded-dot -->
+<blockquote cite="http://example.com/%20foo"></blockquote><!-- path-percent-encoded-space -->
+<blockquote cite="http://example.com/©zbar"></blockquote><!-- path-non-ascii -->
+<blockquote cite="http://example.com/foo%41%7a"></blockquote><!-- path-percent-encoded-multiple -->
+<blockquote cite="http://example.com/foo%91"></blockquote><!-- path-percent-encoded-u0091 -->
+<blockquote cite="http://example.com/foo%00"></blockquote><!-- path-percent-encoded-u0000 -->
+<blockquote cite="http://example.com/%3A%3a%3C%3c"></blockquote><!-- path-percent-encoded-mixed-case -->
+<blockquote cite="http://example.com/你好你好"></blockquote><!-- path-unicode-han -->
+<blockquote cite="http://example.com//foo"></blockquote><!-- path-uFEFF -->
+<blockquote cite="http://example.com/‮/foo/‭/bar"></blockquote><!-- path-u202E-u202D -->
+<blockquote cite="http://💩"></blockquote><!-- host-is-pile-of-poo -->
+<blockquote cite="http💩//:foo"></blockquote><!-- path-contains-pile-of-poo -->
+<blockquote cite="http://example.com/foo?💩"></blockquote><!-- query-contains-pile-of-poo -->
+<blockquote cite="http://example.com/foo#💩"></blockquote><!-- fragment-contains-pile-of-poo -->
+<blockquote cite="http://192.0x00A80001"></blockquote><!-- host-192.0x00A80001 -->
+<blockquote cite="http://%25DOMAIN:foobar@foodomain.com"></blockquote><!-- userinfo-username-contains-percent-encoded -->
+<blockquote cite="http://@www.example.com"></blockquote><!-- userinfo-empty -->
+<blockquote cite="http://:b@www.example.com"></blockquote><!-- userinfo-user-empty -->
+<blockquote cite="http://a:@www.example.com"></blockquote><!-- userinfo-password-empty -->
+<blockquote cite="http://GOO​⁠goo.com"></blockquote><!-- host-exotic-whitespace -->
+<blockquote cite="http://www.foo。bar.com"></blockquote><!-- host-exotic-dot -->
+<blockquote cite="http://Go.com"></blockquote><!-- host-fullwidth -->
+<blockquote cite="http://你好你好"></blockquote><!-- host-idn-unicode-han -->
+<blockquote cite="http://192.168.0.257/"></blockquote><!-- host-IP-address-broken -->
+<blockquote cite="//foo/bar"></blockquote><!-- scheme-schemeless-relative -->
+<blockquote cite="/"></blockquote><!-- path-slash-only-relative -->
+<blockquote cite="/a/b/c"></blockquote><!-- path-simple-relative -->
+<blockquote cite="/a%2fc"></blockquote><!-- path-percent-encoded-slash-relative -->
+<blockquote cite="/a/%2f/c"></blockquote><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<blockquote cite="?"></blockquote><!-- query-empty-no-path-relative -->
+<blockquote cite="#"></blockquote><!-- fragment-empty-hash-only-no-path-relative -->
+<blockquote cite="#/"></blockquote><!-- fragment-slash-relative -->
+<blockquote cite="#;?"></blockquote><!-- fragment-semicolon-question-mark-relative -->
+<blockquote cite="#β"></blockquote><!-- fragment-non-ascii-relative -->
+<blockquote cite="foo.com"></blockquote><!-- scheme-none-relative -->
+<blockquote cite=":"></blockquote><!-- path-colon-relative -->
+<blockquote cite=":a"></blockquote><!-- path-leading-colon-letter-relative -->
+<blockquote cite=":foo.com"></blockquote><!-- path-leading-colon-chars-relative -->
+<blockquote cite=":/"></blockquote><!-- path-leading-colon-slash-relative -->
+<blockquote cite=":#"></blockquote><!-- path-leading-colon-hash-relative -->
+<blockquote cite=":23"></blockquote><!-- path-leading-colon-number-relative -->
+<blockquote cite="/:23"></blockquote><!-- path-slash-colon-number-relative -->
+<blockquote cite="::"></blockquote><!-- path-leading-colon-colon-relative -->
+<blockquote cite="::23"></blockquote><!-- path-colon-colon-number-relative -->
+<blockquote cite="💩http://foo"></blockquote><!-- path-starts-with-pile-of-poo -->
+<blockquote cite="/💩"></blockquote><!-- path-slash-pile-of-poo -->
+<blockquote cite="File://foo/bar.html"></blockquote><!-- scheme-file-uppercase -->
+<blockquote cite="file://C|/foo/bar"></blockquote><!-- scheme-file-slash-slash-c-bar -->
+<blockquote cite="file://server/foo/bar"></blockquote><!-- scheme-file-host-included -->
+<blockquote cite="file:///foo/bar.txt"></blockquote><!-- scheme-file-host-empty -->
+<blockquote cite="file:"></blockquote><!-- scheme-file-scheme-only -->
+<blockquote cite="file:/"></blockquote><!-- scheme-file-slash-only -->
+<blockquote cite="file://"></blockquote><!-- scheme-file-slash-slash-only -->
+<blockquote cite="file:///"></blockquote><!-- scheme-file-slash-slash-slash-only -->
+<blockquote cite="file:test"></blockquote><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..3d54700702
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: fragment-backslash</title>
+<blockquote cite="#\"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..d754a5f0ee
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: fragment-contains-hash</title>
+<blockquote cite="http://foo/path#f#g"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..d5943ed30c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: fragment-leading-space</title>
+<blockquote cite="http://f:21/b# e"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-cr-novalid.html
new file mode 100644
index 0000000000..ca67dfd5de
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-cr</title>
+<blockquote cite="http://example. org"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..9fd5b80a67
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-double-percent-encoded</title>
+<blockquote cite="http://%41.com"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..b88dd6848d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-double-percent-encoded-percent-encoded</title>
+<blockquote cite="http://%ef%bc%85%ef%bc%94%ef%bc%91.com"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-empty-novalid.html
new file mode 100644
index 0000000000..d5745e8bb9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-empty</title>
+<blockquote cite="http://"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..5cfe6d18a5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-empty-userinfo-empty</title>
+<blockquote cite="http://@/www.example.com"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..c6b78986aa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-empty-with-userinfo</title>
+<blockquote cite="http://user:pass@/"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..f3fedf4aea
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-hostname-in-brackets</title>
+<blockquote cite="http://[www.google.com]/"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..c898f0a0d3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-invalid-unicode</title>
+<blockquote cite="http://﷐zyx.com"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..5701cee95c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-invalid-unicode-percent-encoded</title>
+<blockquote cite="http://%ef%b7%90zyx.com"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-newline-novalid.html
new file mode 100644
index 0000000000..8d82bfb3c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-newline</title>
+<blockquote cite="http://example.
+org"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-space-novalid.html
new file mode 100644
index 0000000000..16a942e4a6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-space</title>
+<blockquote cite="http://example .org"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..30ee45d591
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-square-brackets-port-contains-colon</title>
+<blockquote cite="http://[1::2]:3:4"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-tab-novalid.html
new file mode 100644
index 0000000000..2ce8d10bfe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-tab</title>
+<blockquote cite="http://example .org"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..f9366ece0c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-u0000-percent-encoded</title>
+<blockquote cite="http://%00.com"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..be3016d9fc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-u0000-percent-encoded-percent-encoded</title>
+<blockquote cite="http://%ef%bc%85%ef%bc%90%ef%bc%90.com"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..2bf77ec03d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-bare-percent-sign</title>
+<blockquote cite="http://example.com/foo%"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-contains-space-novalid.html
new file mode 100644
index 0000000000..59bbbfecf9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-contains-space</title>
+<blockquote cite="/a/ /c"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..6aa8ada46c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-leading-backslash-at-sign</title>
+<blockquote cite="http://foo.com/\@"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..4b055ab47b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-leading-colon-backslash</title>
+<blockquote cite=":\"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..d87b41796e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-leading-colon-chars-backslash</title>
+<blockquote cite=":foo.com\"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-leading-space-novalid.html
new file mode 100644
index 0000000000..3d719228d2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-leading-space</title>
+<blockquote cite="http://f:21/ b"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..28f0fb78fe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-percent-encoded-malformed</title>
+<blockquote cite="http://example.com/foo/%2e%2"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..75717a0aa9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-relative-square-brackets</title>
+<blockquote cite="[61:24:74]:98"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-tab-novalid.html
new file mode 100644
index 0000000000..a963adb9b0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-tab</title>
+<blockquote cite="http://example.com/foo bar"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..cd6b5cf08f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-trailing-space</title>
+<blockquote cite="http://f:21/b ?"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-u0091-novalid.html
new file mode 100644
index 0000000000..d0eb4bb447
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-u0091</title>
+<blockquote cite="http://example.com/foo‘"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-999999-novalid.html
new file mode 100644
index 0000000000..1797e6467c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-999999</title>
+<blockquote cite="http://f:999999/c"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-cr-novalid.html
new file mode 100644
index 0000000000..9a50760ebf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-cr</title>
+<blockquote cite="http://f: /c"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..083eb40cee
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-leading-colon-bracket-colon</title>
+<blockquote cite="http://2001::1]:80"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..439411bcfe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-leading-colon</title>
+<blockquote cite="http://2001::1"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..bb5fa178bf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-leading-dash</title>
+<blockquote cite="http://foo:-80/"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..51f552ade4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-multiple-letters</title>
+<blockquote cite="http://f:fifty-two/c"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-newline-novalid.html
new file mode 100644
index 0000000000..47b709ba2d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-newline</title>
+<blockquote cite="http://f:
+/c"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-single-letter-novalid.html
new file mode 100644
index 0000000000..3764232b84
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-single-letter</title>
+<blockquote cite="http://f:b/c"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-space-novalid.html
new file mode 100644
index 0000000000..19d2372913
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-space</title>
+<blockquote cite="http://f: /c"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-tab-novalid.html
new file mode 100644
index 0000000000..04330da767
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-tab</title>
+<blockquote cite="http://f: /c"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/query-leading-space-novalid.html
new file mode 100644
index 0000000000..5d28efaf43
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: query-leading-space</title>
+<blockquote cite="http://f:21/b? d"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..ce0f5ff053
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: query-trailing-space</title>
+<blockquote cite="http://f:21/b?d #"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..0eef9512a3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/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>
+<blockquote cite="data:text/html,test#test"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..ac25010256
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-data-single-slash</title>
+<blockquote cite="data:/example.com/"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..f00000b9bd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-file-backslash</title>
+<blockquote cite="file:c:\foo\bar.html"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..cbf91993e3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-file-single-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-file-single-slash-c-bar</title>
+<blockquote cite="file:/C|/foo/bar"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..389e67e792
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-file-slash-slash-abc-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-file-slash-slash-abc-bar</title>
+<blockquote cite="file://abc|/foo/bar"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..b5a84d960c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-file-triple-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-file-triple-slash-c-bar</title>
+<blockquote cite="file:///C|/foo/bar"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..191211f0fd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-ftp-no-slash</title>
+<blockquote cite="ftp:example.com/"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..5ba4d67794
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-ftp-single-slash</title>
+<blockquote cite="ftp:/example.com/"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..9ba1e317b4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-backslash</title>
+<blockquote cite="http:\\foo.com\"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..ba549fc28c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-no-slash-colon</title>
+<blockquote cite="http::@c:29"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..e103deb13b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-no-slash</title>
+<blockquote cite="http:foo.com"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..744a4f5326
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-no-slash-square-bracket</title>
+<blockquote cite="http:[61:27]/:foo"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..2b787b2736
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-single-slash</title>
+<blockquote cite="http:/example.com/"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..7a09e93d5e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-https-no-slash</title>
+<blockquote cite="https:example.com/"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..ef32ee1e73
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-https-single-slash</title>
+<blockquote cite="https:/example.com/"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..cafe0190b5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-trailing-cr</title>
+<blockquote cite="a: foo.com"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..075d073f0e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-trailing-newline</title>
+<blockquote cite="a:
+foo.com"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..1ccfb41ae7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-trailing-space</title>
+<blockquote cite="a: foo.com"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..2c81a25df1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-trailing-tab</title>
+<blockquote cite="a: foo.com"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..dc16d1467b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-backslash</title>
+<blockquote cite="http://a\b:c\d@foo.com"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..4b5c9826d8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-password-bad-chars</title>
+<blockquote cite="http://&a:foo(b]c@d:2/"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..52388a2c20
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-password-contains-pile-of-poo</title>
+<blockquote cite="http://foo:💩@example.com"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..76b235fbc5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-username-contains-at-sign</title>
+<blockquote cite="http://::@c@d:2"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..cdf71cc0b4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/cite/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-username-contains-pile-of-poo</title>
+<blockquote cite="http://💩:foo@example.com"></blockquote>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/model-isvalid.html
new file mode 100644
index 0000000000..62497d33d7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/model-isvalid.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;blockquote&gt;</title>
+</head>
+<body>
+ <!-- is block, contains blocks -->
+ <blockquote cite="url" class="class" id="id" lang="en">
+ <h2>header</h2>
+ <p>text</p>
+ <p>text2</p>
+ </blockquote>
+
+ <!-- can contain interactive -->
+ <blockquote><p><a>text</a></p></blockquote>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/model-novalid.html
new file mode 100644
index 0000000000..2985ed899b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/blockquote/model-novalid.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;blockquote&gt;</title>
+</head>
+<body>
+ <!-- is block, contains blocks -->
+ <blockquote cite="url" class="class" id="id" lang="en">
+ <h2>header</h2>
+ <p>text</p>
+ <p>text2</p>
+ </blockquote>
+
+ <!-- is structured inline -->
+ <p>paragraph
+ <blockquote>
+ <h2>header</h2>
+ <p>text</p>
+ </blockquote>
+ </p>
+
+ <!-- can contain interactive -->
+ <blockquote><p><a>text</a></p></blockquote>
+ <p>paragraph
+ <blockquote>
+ <p><a>text</a></p>
+ </blockquote>
+ </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/br/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/br/model-isvalid.html
new file mode 100644
index 0000000000..cdde875d6d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/br/model-isvalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;br&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p>text <br class="class" lang="en"></p>
+
+ <!-- is strictly inline -->
+ <p>text <dfn><br class="class" lang="en"></dfn></p>
+
+ <!-- must be empty -->
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/br/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/br/model-novalid.html
new file mode 100644
index 0000000000..c27c261f8f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/br/model-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;br&gt;</title>
+</head>
+<body>
+ <br></br>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction-empty-novalid.html
new file mode 100644
index 0000000000..7c324e5f1f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty formaction is not valid</title>
+<button formaction=""></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction-isvalid.html
new file mode 100644
index 0000000000..f2affb4a34
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid formaction</title>
+<button formaction="a:foo.com"></button><!-- scheme-private -->
+<button formaction="foo:/"></button><!-- scheme-private-slash -->
+<button formaction="foo://"></button><!-- scheme-private-slash-slash -->
+<button formaction="foo:/bar.com/"></button><!-- scheme-private-path -->
+<button formaction="foo://///////"></button><!-- scheme-private-path-leading-slashes-only -->
+<button formaction="foo://///////bar.com/"></button><!-- scheme-private-path-leading-slashes-chars -->
+<button formaction="foo:////://///"></button><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<button formaction="c:/foo"></button><!-- scheme-private-single-letter -->
+<button formaction="madeupscheme:/example.com/"></button><!-- scheme-private-single-slash -->
+<button formaction="file:/example.com/"></button><!-- scheme-file-single-slash -->
+<button formaction="ftps:/example.com/"></button><!-- scheme-ftps-single-slash -->
+<button formaction="gopher:/example.com/"></button><!-- scheme-gopher-single-slash -->
+<button formaction="ws:/example.com/"></button><!-- scheme-ws-single-slash -->
+<button formaction="wss:/example.com/"></button><!-- scheme-wss-single-slash -->
+<button formaction="javascript:/example.com/"></button><!-- scheme-javascript-single-slash -->
+<button formaction="mailto:/example.com/"></button><!-- scheme-mailto-single-slash -->
+<button formaction="madeupscheme:example.com/"></button><!-- scheme-private-no-slash -->
+<button formaction="ftps:example.com/"></button><!-- scheme-ftps-no-slash -->
+<button formaction="gopher:example.com/"></button><!-- scheme-gopher-no-slash -->
+<button formaction="wss:example.com/"></button><!-- scheme-wss-no-slash -->
+<button formaction="mailto:example.com/"></button><!-- scheme-mailto-no-slash -->
+<button formaction="data:text/plain,foo"></button><!-- scheme-data-no-slash -->
+<button formaction="http://user:pass@foo:21/bar;par?b#c"></button><!-- userinfo -->
+<button formaction="http://[2001::1]"></button><!-- host-ipv6 -->
+<button formaction="http://[2001::1]:80"></button><!-- host-ipv6-port -->
+<button formaction="http://f:/c"></button><!-- port-none-but-colon -->
+<button formaction="http://f:0/c"></button><!-- port-0 -->
+<button formaction="http://f:00000000000000/c"></button><!-- port-00000000000000 -->
+<button formaction="http://f:00000000000000000000080/c"></button><!-- port-00000000000000000000080 -->
+<button formaction="http://a:b@c:29/d"></button><!-- userinfo-host-port-path -->
+<button formaction="http://foo.com:b@d/"></button><!-- userinfo-username-non-alpha -->
+<button formaction="http://foo/abcd?efgh?ijkl"></button><!-- query-contains-question-mark -->
+<button formaction="http://foo/abcd#foo?bar"></button><!-- fragment-contains-question-mark -->
+<button formaction="http://example.com/foo/%2e"></button><!-- path-percent-encoded-dot -->
+<button formaction="http://example.com/%20foo"></button><!-- path-percent-encoded-space -->
+<button formaction="http://example.com/©zbar"></button><!-- path-non-ascii -->
+<button formaction="http://example.com/foo%41%7a"></button><!-- path-percent-encoded-multiple -->
+<button formaction="http://example.com/foo%91"></button><!-- path-percent-encoded-u0091 -->
+<button formaction="http://example.com/foo%00"></button><!-- path-percent-encoded-u0000 -->
+<button formaction="http://example.com/%3A%3a%3C%3c"></button><!-- path-percent-encoded-mixed-case -->
+<button formaction="http://example.com/你好你好"></button><!-- path-unicode-han -->
+<button formaction="http://example.com//foo"></button><!-- path-uFEFF -->
+<button formaction="http://example.com/‮/foo/‭/bar"></button><!-- path-u202E-u202D -->
+<button formaction="http://💩"></button><!-- host-is-pile-of-poo -->
+<button formaction="http💩//:foo"></button><!-- path-contains-pile-of-poo -->
+<button formaction="http://example.com/foo?💩"></button><!-- query-contains-pile-of-poo -->
+<button formaction="http://example.com/foo#💩"></button><!-- fragment-contains-pile-of-poo -->
+<button formaction="http://192.0x00A80001"></button><!-- host-192.0x00A80001 -->
+<button formaction="http://%25DOMAIN:foobar@foodomain.com"></button><!-- userinfo-username-contains-percent-encoded -->
+<button formaction="http://@www.example.com"></button><!-- userinfo-empty -->
+<button formaction="http://:b@www.example.com"></button><!-- userinfo-user-empty -->
+<button formaction="http://a:@www.example.com"></button><!-- userinfo-password-empty -->
+<button formaction="http://GOO​⁠goo.com"></button><!-- host-exotic-whitespace -->
+<button formaction="http://www.foo。bar.com"></button><!-- host-exotic-dot -->
+<button formaction="http://Go.com"></button><!-- host-fullwidth -->
+<button formaction="http://你好你好"></button><!-- host-idn-unicode-han -->
+<button formaction="http://192.168.0.257/"></button><!-- host-IP-address-broken -->
+<button formaction="//foo/bar"></button><!-- scheme-schemeless-relative -->
+<button formaction="/"></button><!-- path-slash-only-relative -->
+<button formaction="/a/b/c"></button><!-- path-simple-relative -->
+<button formaction="/a%2fc"></button><!-- path-percent-encoded-slash-relative -->
+<button formaction="/a/%2f/c"></button><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<button formaction="?"></button><!-- query-empty-no-path-relative -->
+<button formaction="#"></button><!-- fragment-empty-hash-only-no-path-relative -->
+<button formaction="#/"></button><!-- fragment-slash-relative -->
+<button formaction="#;?"></button><!-- fragment-semicolon-question-mark-relative -->
+<button formaction="#β"></button><!-- fragment-non-ascii-relative -->
+<button formaction="foo.com"></button><!-- scheme-none-relative -->
+<button formaction=":"></button><!-- path-colon-relative -->
+<button formaction=":a"></button><!-- path-leading-colon-letter-relative -->
+<button formaction=":foo.com"></button><!-- path-leading-colon-chars-relative -->
+<button formaction=":/"></button><!-- path-leading-colon-slash-relative -->
+<button formaction=":#"></button><!-- path-leading-colon-hash-relative -->
+<button formaction=":23"></button><!-- path-leading-colon-number-relative -->
+<button formaction="/:23"></button><!-- path-slash-colon-number-relative -->
+<button formaction="::"></button><!-- path-leading-colon-colon-relative -->
+<button formaction="::23"></button><!-- path-colon-colon-number-relative -->
+<button formaction="💩http://foo"></button><!-- path-starts-with-pile-of-poo -->
+<button formaction="/💩"></button><!-- path-slash-pile-of-poo -->
+<button formaction="File://foo/bar.html"></button><!-- scheme-file-uppercase -->
+<button formaction="file://C|/foo/bar"></button><!-- scheme-file-slash-slash-c-bar -->
+<button formaction="file://server/foo/bar"></button><!-- scheme-file-host-included -->
+<button formaction="file:///foo/bar.txt"></button><!-- scheme-file-host-empty -->
+<button formaction="file:"></button><!-- scheme-file-scheme-only -->
+<button formaction="file:/"></button><!-- scheme-file-slash-only -->
+<button formaction="file://"></button><!-- scheme-file-slash-slash-only -->
+<button formaction="file:///"></button><!-- scheme-file-slash-slash-slash-only -->
+<button formaction="file:test"></button><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction-whitespace-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction-whitespace-only-novalid.html
new file mode 100644
index 0000000000..37b4f02a48
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction-whitespace-only-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty formaction is not valid</title>
+<button formaction="
+"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..f8dd366818
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: fragment-backslash</title>
+<button formaction="#\"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..34aa42935c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: fragment-contains-hash</title>
+<button formaction="http://foo/path#f#g"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..d5571acf0d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: fragment-leading-space</title>
+<button formaction="http://f:21/b# e"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-cr-novalid.html
new file mode 100644
index 0000000000..99b23b4a79
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-cr</title>
+<button formaction="http://example. org"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..f0a118b85a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-double-percent-encoded</title>
+<button formaction="http://%41.com"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..71cc7d12ba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-double-percent-encoded-percent-encoded</title>
+<button formaction="http://%ef%bc%85%ef%bc%94%ef%bc%91.com"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-empty-novalid.html
new file mode 100644
index 0000000000..728cf8754f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-empty</title>
+<button formaction="http://"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..04279b9598
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-empty-userinfo-empty</title>
+<button formaction="http://@/www.example.com"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..5dea89f119
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-empty-with-userinfo</title>
+<button formaction="http://user:pass@/"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..477d3871b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-hostname-in-brackets</title>
+<button formaction="http://[www.google.com]/"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..52b2381dfe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-invalid-unicode</title>
+<button formaction="http://﷐zyx.com"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..6728b889d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-invalid-unicode-percent-encoded</title>
+<button formaction="http://%ef%b7%90zyx.com"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-newline-novalid.html
new file mode 100644
index 0000000000..7906dd2678
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-newline</title>
+<button formaction="http://example.
+org"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-space-novalid.html
new file mode 100644
index 0000000000..4aee6d7c4b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-space</title>
+<button formaction="http://example .org"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..27cb190901
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-square-brackets-port-contains-colon</title>
+<button formaction="http://[1::2]:3:4"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-tab-novalid.html
new file mode 100644
index 0000000000..e4bc59fffc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-tab</title>
+<button formaction="http://example .org"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..3d70426399
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-u0000-percent-encoded</title>
+<button formaction="http://%00.com"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..29836a9b8c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-u0000-percent-encoded-percent-encoded</title>
+<button formaction="http://%ef%bc%85%ef%bc%90%ef%bc%90.com"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..09febe38a5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-bare-percent-sign</title>
+<button formaction="http://example.com/foo%"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-contains-space-novalid.html
new file mode 100644
index 0000000000..a8e6d07bfb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-contains-space</title>
+<button formaction="/a/ /c"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..f2c1e3bc4d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-leading-backslash-at-sign</title>
+<button formaction="http://foo.com/\@"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..9fbe511ec1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-leading-colon-backslash</title>
+<button formaction=":\"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..8715819918
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-leading-colon-chars-backslash</title>
+<button formaction=":foo.com\"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-leading-space-novalid.html
new file mode 100644
index 0000000000..eda9780b94
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-leading-space</title>
+<button formaction="http://f:21/ b"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..d3d373ad8f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-percent-encoded-malformed</title>
+<button formaction="http://example.com/foo/%2e%2"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..afb7e3032a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-relative-square-brackets</title>
+<button formaction="[61:24:74]:98"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-tab-novalid.html
new file mode 100644
index 0000000000..85313dc98b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-tab</title>
+<button formaction="http://example.com/foo bar"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..4b47774e3a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-trailing-space</title>
+<button formaction="http://f:21/b ?"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-u0091-novalid.html
new file mode 100644
index 0000000000..cc3929c6ad
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-u0091</title>
+<button formaction="http://example.com/foo‘"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-999999-novalid.html
new file mode 100644
index 0000000000..8a997594d1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-999999</title>
+<button formaction="http://f:999999/c"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-cr-novalid.html
new file mode 100644
index 0000000000..6596879d57
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-cr</title>
+<button formaction="http://f: /c"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..2bda92d12f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-leading-colon-bracket-colon</title>
+<button formaction="http://2001::1]:80"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..c5f0924d87
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-leading-colon</title>
+<button formaction="http://2001::1"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..e0e1a6bd37
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-leading-dash</title>
+<button formaction="http://foo:-80/"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..8a01f322ec
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-multiple-letters</title>
+<button formaction="http://f:fifty-two/c"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-newline-novalid.html
new file mode 100644
index 0000000000..088183e5de
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-newline</title>
+<button formaction="http://f:
+/c"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-single-letter-novalid.html
new file mode 100644
index 0000000000..b73404884f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-single-letter</title>
+<button formaction="http://f:b/c"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-space-novalid.html
new file mode 100644
index 0000000000..1f0886661c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-space</title>
+<button formaction="http://f: /c"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-tab-novalid.html
new file mode 100644
index 0000000000..69ab282abf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-tab</title>
+<button formaction="http://f: /c"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/query-leading-space-novalid.html
new file mode 100644
index 0000000000..a18576e99c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: query-leading-space</title>
+<button formaction="http://f:21/b? d"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..f26027f9cd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: query-trailing-space</title>
+<button formaction="http://f:21/b?d #"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..3e48f2db48
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/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>
+<button formaction="data:text/html,test#test"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..612d200191
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-data-single-slash</title>
+<button formaction="data:/example.com/"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..63d96e3b01
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-file-backslash</title>
+<button formaction="file:c:\foo\bar.html"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..85cf8539b5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-file-single-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-file-single-slash-c-bar</title>
+<button formaction="file:/C|/foo/bar"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..af53544e7b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-file-slash-slash-abc-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-file-slash-slash-abc-bar</title>
+<button formaction="file://abc|/foo/bar"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..901f6b05fa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-file-triple-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-file-triple-slash-c-bar</title>
+<button formaction="file:///C|/foo/bar"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..1f094e3fc7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-ftp-no-slash</title>
+<button formaction="ftp:example.com/"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..98389130df
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-ftp-single-slash</title>
+<button formaction="ftp:/example.com/"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..4bfbe65fdd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-http-backslash</title>
+<button formaction="http:\\foo.com\"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..648420993e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-http-no-slash-colon</title>
+<button formaction="http::@c:29"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..146d185720
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-http-no-slash</title>
+<button formaction="http:foo.com"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..fe7de88779
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-http-no-slash-square-bracket</title>
+<button formaction="http:[61:27]/:foo"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..b2d7ef0fb1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-http-single-slash</title>
+<button formaction="http:/example.com/"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..85b13467b6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-https-no-slash</title>
+<button formaction="https:example.com/"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..61ba3d6a30
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-https-single-slash</title>
+<button formaction="https:/example.com/"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..098a02a717
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-trailing-cr</title>
+<button formaction="a: foo.com"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..4aec7d6c5b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-trailing-newline</title>
+<button formaction="a:
+foo.com"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..b08683c0cf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-trailing-space</title>
+<button formaction="a: foo.com"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..515d31626d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-trailing-tab</title>
+<button formaction="a: foo.com"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..658db365c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: userinfo-backslash</title>
+<button formaction="http://a\b:c\d@foo.com"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..62d5c23312
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: userinfo-password-bad-chars</title>
+<button formaction="http://&a:foo(b]c@d:2/"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..b20b35cc55
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: userinfo-password-contains-pile-of-poo</title>
+<button formaction="http://foo:💩@example.com"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..9cd569d30b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: userinfo-username-contains-at-sign</title>
+<button formaction="http://::@c@d:2"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..cde70e15ee
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/button/formaction/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: userinfo-username-contains-pile-of-poo</title>
+<button formaction="http://💩:foo@example.com"></button>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/canvas/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/canvas/model-isvalid.html
new file mode 100644
index 0000000000..cff96ccfc2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/canvas/model-isvalid.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>canvas with flow content and flow parent</title>
+<div><canvas><p>foo</p></canvas></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/canvas/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/canvas/model-novalid.html
new file mode 100644
index 0000000000..34a7e5ba5c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/canvas/model-novalid.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>canvas with flow content and phrasing parent</title>
+<span><canvas><p>foo</p></canvas></span>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/cite/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/cite/model-isvalid.html
new file mode 100644
index 0000000000..60fc8b7443
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/cite/model-isvalid.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;cite&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><cite class="class" lang="en">text</cite></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><cite class="class" lang="en">text</cite></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <cite></cite></p>
+ <p>text <dfn><cite></cite></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><cite><a>text</a></cite></p>
+ <p><dfn><cite><a>text</a></cite></dfn></p>
+
+ <!-- cannot contain structured inline -->
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/cite/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/cite/model-novalid.html
new file mode 100644
index 0000000000..f1070dc454
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/cite/model-novalid.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;cite&gt;</title>
+</head>
+<body>
+ <!-- not a block -->
+ <cite>text</cite>
+
+ <!-- cannot contain structured inline -->
+ <p><cite><ul><li>text</li></ul></cite></p>
+
+ <!-- cannot contain interactive if parent forbids interactive -->
+ <p><a><cite><a>text</a></cite></a></p>
+ <p><a><dfn><cite><a>text</a></cite></dfn></a></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/code/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/code/model-isvalid.html
new file mode 100644
index 0000000000..0912e07d7d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/code/model-isvalid.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;code&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><code class="class" lang="en">text</code></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><code class="class" lang="en">text</code></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <code></code></p>
+ <p>text <dfn><code></code></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><code><a>text</a></code></p>
+ <p><dfn><code><a>text</a></code></dfn></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/code/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/code/model-novalid.html
new file mode 100644
index 0000000000..5d473d17f0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/code/model-novalid.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;code&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><code class="class" lang="en">text</code></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><code class="class" lang="en">text</code></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <code></code></p>
+ <p>text <dfn><code></code></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><code><a>text</a></code></p>
+ <p><dfn><code><a>text</a></code></dfn></p>
+
+ <!-- cannot contain structured inline -->
+ <p><code>text <ul><li>list</li></ul> <em>elem</em></code></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dd/dd-hgroup-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dd/dd-hgroup-isvalid.html
new file mode 100644
index 0000000000..9db467c3e8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dd/dd-hgroup-isvalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid hgroup in dd</title>
+<body>
+<dl><dt>text<dd><hgroup><h1>text</h1></hgroup></dl> <!-- hgroup-in-dd -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite-empty-isvalid.html
new file mode 100644
index 0000000000..cc8201c6e4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty cite is valid</title>
+<del cite=""></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite-isvalid.html
new file mode 100644
index 0000000000..39ad46d17b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid cite</title>
+<del cite="a:foo.com"></del><!-- scheme-private -->
+<del cite="foo:/"></del><!-- scheme-private-slash -->
+<del cite="foo://"></del><!-- scheme-private-slash-slash -->
+<del cite="foo:/bar.com/"></del><!-- scheme-private-path -->
+<del cite="foo://///////"></del><!-- scheme-private-path-leading-slashes-only -->
+<del cite="foo://///////bar.com/"></del><!-- scheme-private-path-leading-slashes-chars -->
+<del cite="foo:////://///"></del><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<del cite="c:/foo"></del><!-- scheme-private-single-letter -->
+<del cite="madeupscheme:/example.com/"></del><!-- scheme-private-single-slash -->
+<del cite="file:/example.com/"></del><!-- scheme-file-single-slash -->
+<del cite="ftps:/example.com/"></del><!-- scheme-ftps-single-slash -->
+<del cite="gopher:/example.com/"></del><!-- scheme-gopher-single-slash -->
+<del cite="ws:/example.com/"></del><!-- scheme-ws-single-slash -->
+<del cite="wss:/example.com/"></del><!-- scheme-wss-single-slash -->
+<del cite="javascript:/example.com/"></del><!-- scheme-javascript-single-slash -->
+<del cite="mailto:/example.com/"></del><!-- scheme-mailto-single-slash -->
+<del cite="madeupscheme:example.com/"></del><!-- scheme-private-no-slash -->
+<del cite="ftps:example.com/"></del><!-- scheme-ftps-no-slash -->
+<del cite="gopher:example.com/"></del><!-- scheme-gopher-no-slash -->
+<del cite="wss:example.com/"></del><!-- scheme-wss-no-slash -->
+<del cite="mailto:example.com/"></del><!-- scheme-mailto-no-slash -->
+<del cite="data:text/plain,foo"></del><!-- scheme-data-no-slash -->
+<del cite="http://user:pass@foo:21/bar;par?b#c"></del><!-- userinfo -->
+<del cite="http://[2001::1]"></del><!-- host-ipv6 -->
+<del cite="http://[2001::1]:80"></del><!-- host-ipv6-port -->
+<del cite="http://f:/c"></del><!-- port-none-but-colon -->
+<del cite="http://f:0/c"></del><!-- port-0 -->
+<del cite="http://f:00000000000000/c"></del><!-- port-00000000000000 -->
+<del cite="http://f:00000000000000000000080/c"></del><!-- port-00000000000000000000080 -->
+<del cite="http://a:b@c:29/d"></del><!-- userinfo-host-port-path -->
+<del cite="http://foo.com:b@d/"></del><!-- userinfo-username-non-alpha -->
+<del cite="http://foo/abcd?efgh?ijkl"></del><!-- query-contains-question-mark -->
+<del cite="http://foo/abcd#foo?bar"></del><!-- fragment-contains-question-mark -->
+<del cite="http://example.com/foo/%2e"></del><!-- path-percent-encoded-dot -->
+<del cite="http://example.com/%20foo"></del><!-- path-percent-encoded-space -->
+<del cite="http://example.com/©zbar"></del><!-- path-non-ascii -->
+<del cite="http://example.com/foo%41%7a"></del><!-- path-percent-encoded-multiple -->
+<del cite="http://example.com/foo%91"></del><!-- path-percent-encoded-u0091 -->
+<del cite="http://example.com/foo%00"></del><!-- path-percent-encoded-u0000 -->
+<del cite="http://example.com/%3A%3a%3C%3c"></del><!-- path-percent-encoded-mixed-case -->
+<del cite="http://example.com/你好你好"></del><!-- path-unicode-han -->
+<del cite="http://example.com//foo"></del><!-- path-uFEFF -->
+<del cite="http://example.com/‮/foo/‭/bar"></del><!-- path-u202E-u202D -->
+<del cite="http://💩"></del><!-- host-is-pile-of-poo -->
+<del cite="http💩//:foo"></del><!-- path-contains-pile-of-poo -->
+<del cite="http://example.com/foo?💩"></del><!-- query-contains-pile-of-poo -->
+<del cite="http://example.com/foo#💩"></del><!-- fragment-contains-pile-of-poo -->
+<del cite="http://192.0x00A80001"></del><!-- host-192.0x00A80001 -->
+<del cite="http://%25DOMAIN:foobar@foodomain.com"></del><!-- userinfo-username-contains-percent-encoded -->
+<del cite="http://@www.example.com"></del><!-- userinfo-empty -->
+<del cite="http://:b@www.example.com"></del><!-- userinfo-user-empty -->
+<del cite="http://a:@www.example.com"></del><!-- userinfo-password-empty -->
+<del cite="http://GOO​⁠goo.com"></del><!-- host-exotic-whitespace -->
+<del cite="http://www.foo。bar.com"></del><!-- host-exotic-dot -->
+<del cite="http://Go.com"></del><!-- host-fullwidth -->
+<del cite="http://你好你好"></del><!-- host-idn-unicode-han -->
+<del cite="http://192.168.0.257/"></del><!-- host-IP-address-broken -->
+<del cite="//foo/bar"></del><!-- scheme-schemeless-relative -->
+<del cite="/"></del><!-- path-slash-only-relative -->
+<del cite="/a/b/c"></del><!-- path-simple-relative -->
+<del cite="/a%2fc"></del><!-- path-percent-encoded-slash-relative -->
+<del cite="/a/%2f/c"></del><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<del cite="?"></del><!-- query-empty-no-path-relative -->
+<del cite="#"></del><!-- fragment-empty-hash-only-no-path-relative -->
+<del cite="#/"></del><!-- fragment-slash-relative -->
+<del cite="#;?"></del><!-- fragment-semicolon-question-mark-relative -->
+<del cite="#β"></del><!-- fragment-non-ascii-relative -->
+<del cite="foo.com"></del><!-- scheme-none-relative -->
+<del cite=":"></del><!-- path-colon-relative -->
+<del cite=":a"></del><!-- path-leading-colon-letter-relative -->
+<del cite=":foo.com"></del><!-- path-leading-colon-chars-relative -->
+<del cite=":/"></del><!-- path-leading-colon-slash-relative -->
+<del cite=":#"></del><!-- path-leading-colon-hash-relative -->
+<del cite=":23"></del><!-- path-leading-colon-number-relative -->
+<del cite="/:23"></del><!-- path-slash-colon-number-relative -->
+<del cite="::"></del><!-- path-leading-colon-colon-relative -->
+<del cite="::23"></del><!-- path-colon-colon-number-relative -->
+<del cite="💩http://foo"></del><!-- path-starts-with-pile-of-poo -->
+<del cite="/💩"></del><!-- path-slash-pile-of-poo -->
+<del cite="File://foo/bar.html"></del><!-- scheme-file-uppercase -->
+<del cite="file://C|/foo/bar"></del><!-- scheme-file-slash-slash-c-bar -->
+<del cite="file://server/foo/bar"></del><!-- scheme-file-host-included -->
+<del cite="file:///foo/bar.txt"></del><!-- scheme-file-host-empty -->
+<del cite="file:"></del><!-- scheme-file-scheme-only -->
+<del cite="file:/"></del><!-- scheme-file-slash-only -->
+<del cite="file://"></del><!-- scheme-file-slash-slash-only -->
+<del cite="file:///"></del><!-- scheme-file-slash-slash-slash-only -->
+<del cite="file:test"></del><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..a51b0575af
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: fragment-backslash</title>
+<del cite="#\"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..d0b217dc49
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: fragment-contains-hash</title>
+<del cite="http://foo/path#f#g"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..b54fd21d28
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: fragment-leading-space</title>
+<del cite="http://f:21/b# e"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-cr-novalid.html
new file mode 100644
index 0000000000..2da16c9a3c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-cr</title>
+<del cite="http://example. org"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..18898a5332
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-double-percent-encoded</title>
+<del cite="http://%41.com"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..dd81e9a486
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-double-percent-encoded-percent-encoded</title>
+<del cite="http://%ef%bc%85%ef%bc%94%ef%bc%91.com"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-empty-novalid.html
new file mode 100644
index 0000000000..afe922a105
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-empty</title>
+<del cite="http://"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..7e703bf923
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-empty-userinfo-empty</title>
+<del cite="http://@/www.example.com"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..281333e076
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-empty-with-userinfo</title>
+<del cite="http://user:pass@/"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..169318e969
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-hostname-in-brackets</title>
+<del cite="http://[www.google.com]/"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..e7c77a4159
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-invalid-unicode</title>
+<del cite="http://﷐zyx.com"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..5591088fcf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-invalid-unicode-percent-encoded</title>
+<del cite="http://%ef%b7%90zyx.com"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-newline-novalid.html
new file mode 100644
index 0000000000..692baaa922
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-newline</title>
+<del cite="http://example.
+org"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-space-novalid.html
new file mode 100644
index 0000000000..efadf49d07
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-space</title>
+<del cite="http://example .org"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..54aaf1246b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-square-brackets-port-contains-colon</title>
+<del cite="http://[1::2]:3:4"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-tab-novalid.html
new file mode 100644
index 0000000000..cf8d7e2ae4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-tab</title>
+<del cite="http://example .org"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..20e4287a41
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-u0000-percent-encoded</title>
+<del cite="http://%00.com"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..9f80ee3e38
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-u0000-percent-encoded-percent-encoded</title>
+<del cite="http://%ef%bc%85%ef%bc%90%ef%bc%90.com"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..f21b2f6f60
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-bare-percent-sign</title>
+<del cite="http://example.com/foo%"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-contains-space-novalid.html
new file mode 100644
index 0000000000..cd189d60c6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-contains-space</title>
+<del cite="/a/ /c"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..dd0c500d7f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-leading-backslash-at-sign</title>
+<del cite="http://foo.com/\@"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..f34c59b3bc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-leading-colon-backslash</title>
+<del cite=":\"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..c7e492f652
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-leading-colon-chars-backslash</title>
+<del cite=":foo.com\"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-leading-space-novalid.html
new file mode 100644
index 0000000000..32480867d3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-leading-space</title>
+<del cite="http://f:21/ b"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..67bcccff31
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-percent-encoded-malformed</title>
+<del cite="http://example.com/foo/%2e%2"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..f63045a202
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-relative-square-brackets</title>
+<del cite="[61:24:74]:98"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-tab-novalid.html
new file mode 100644
index 0000000000..c45140beaf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-tab</title>
+<del cite="http://example.com/foo bar"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..88d758405e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-trailing-space</title>
+<del cite="http://f:21/b ?"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-u0091-novalid.html
new file mode 100644
index 0000000000..1dc17517fb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-u0091</title>
+<del cite="http://example.com/foo‘"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-999999-novalid.html
new file mode 100644
index 0000000000..a654a888c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-999999</title>
+<del cite="http://f:999999/c"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-cr-novalid.html
new file mode 100644
index 0000000000..872d3f3cf4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-cr</title>
+<del cite="http://f: /c"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..f5f9364403
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-leading-colon-bracket-colon</title>
+<del cite="http://2001::1]:80"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..66b076f269
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-leading-colon</title>
+<del cite="http://2001::1"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..b3d1f79098
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-leading-dash</title>
+<del cite="http://foo:-80/"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..d830e1118c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-multiple-letters</title>
+<del cite="http://f:fifty-two/c"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-newline-novalid.html
new file mode 100644
index 0000000000..3da1891dda
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-newline</title>
+<del cite="http://f:
+/c"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-single-letter-novalid.html
new file mode 100644
index 0000000000..e7463d52b5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-single-letter</title>
+<del cite="http://f:b/c"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-space-novalid.html
new file mode 100644
index 0000000000..3756f82ed6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-space</title>
+<del cite="http://f: /c"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-tab-novalid.html
new file mode 100644
index 0000000000..e85fb7bf1e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-tab</title>
+<del cite="http://f: /c"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/query-leading-space-novalid.html
new file mode 100644
index 0000000000..a05f6bdd42
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: query-leading-space</title>
+<del cite="http://f:21/b? d"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..c7cf9e808c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: query-trailing-space</title>
+<del cite="http://f:21/b?d #"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..fa04644fd1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/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>
+<del cite="data:text/html,test#test"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..185133b664
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-data-single-slash</title>
+<del cite="data:/example.com/"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..d0cb7986c9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-file-backslash</title>
+<del cite="file:c:\foo\bar.html"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..72a65284a3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-file-single-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-file-single-slash-c-bar</title>
+<del cite="file:/C|/foo/bar"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..85679a2ee1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-file-slash-slash-abc-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-file-slash-slash-abc-bar</title>
+<del cite="file://abc|/foo/bar"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..23c40bd720
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-file-triple-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-file-triple-slash-c-bar</title>
+<del cite="file:///C|/foo/bar"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..fd4cbdaf07
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-ftp-no-slash</title>
+<del cite="ftp:example.com/"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..2e373739e3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-ftp-single-slash</title>
+<del cite="ftp:/example.com/"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..f3d6c90b58
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-backslash</title>
+<del cite="http:\\foo.com\"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..b86a891cbe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-no-slash-colon</title>
+<del cite="http::@c:29"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..12fd2cedb4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-no-slash</title>
+<del cite="http:foo.com"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..25625e7f4a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-no-slash-square-bracket</title>
+<del cite="http:[61:27]/:foo"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..6f95f1e0c4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-single-slash</title>
+<del cite="http:/example.com/"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..6abda3c88a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-https-no-slash</title>
+<del cite="https:example.com/"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..0e7f0addb0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-https-single-slash</title>
+<del cite="https:/example.com/"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..363641fc30
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-trailing-cr</title>
+<del cite="a: foo.com"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..ec8f0c04e9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-trailing-newline</title>
+<del cite="a:
+foo.com"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..31f418ca78
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-trailing-space</title>
+<del cite="a: foo.com"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..66d8ce3e06
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-trailing-tab</title>
+<del cite="a: foo.com"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..99ba1d5e4f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-backslash</title>
+<del cite="http://a\b:c\d@foo.com"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..f0ab910ac8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-password-bad-chars</title>
+<del cite="http://&a:foo(b]c@d:2/"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..16b6d271cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-password-contains-pile-of-poo</title>
+<del cite="http://foo:💩@example.com"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..06392ba644
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-username-contains-at-sign</title>
+<del cite="http://::@c@d:2"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..e8bfa2b67e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/cite/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-username-contains-pile-of-poo</title>
+<del cite="http://💩:foo@example.com"></del>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-0004-02-29-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-0004-02-29-haswarn.html
new file mode 100644
index 0000000000..c760319697
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-0004-02-29-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-0004-02-29</title>
+<del datetime="0004-02-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-0005-02-29-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-0005-02-29-novalid.html
new file mode 100644
index 0000000000..f8b973fd40
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-0005-02-29-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-0005-02-29</title>
+<del datetime="0005-02-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-0214-09-29-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-0214-09-29-haswarn.html
new file mode 100644
index 0000000000..2f7a26ea10
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-0214-09-29-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-0214-09-29</title>
+<del datetime="0214-09-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-1900-02-29-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-1900-02-29-novalid.html
new file mode 100644
index 0000000000..d645c2256b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-1900-02-29-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-1900-02-29</title>
+<del datetime="1900-02-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-1969-02-29-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-1969-02-29-novalid.html
new file mode 100644
index 0000000000..7821eaea15
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-1969-02-29-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-1969-02-29</title>
+<del datetime="1969-02-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-20014-09-29-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-20014-09-29-haswarn.html
new file mode 100644
index 0000000000..7b4099df6c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-20014-09-29-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-20014-09-29</title>
+<del datetime="20014-09-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-2014-02-29-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-2014-02-29-novalid.html
new file mode 100644
index 0000000000..8a7909960a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-2014-02-29-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-2014-02-29</title>
+<del datetime="2014-02-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-2100-02-29-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-2100-02-29-novalid.html
new file mode 100644
index 0000000000..3b732b5b36
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-2100-02-29-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-2100-02-29</title>
+<del datetime="2100-02-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-2200-02-29-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-2200-02-29-novalid.html
new file mode 100644
index 0000000000..8c5ef2e344
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-2200-02-29-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-2200-02-29</title>
+<del datetime="2200-02-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-01-32-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-01-32-novalid.html
new file mode 100644
index 0000000000..1c4e3d3971
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-01-32-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-01-32</title>
+<del datetime="2002-01-32"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-03-32-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-03-32-novalid.html
new file mode 100644
index 0000000000..651c0bb667
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-03-32-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-03-32</title>
+<del datetime="2002-03-32"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-04-31-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-04-31-novalid.html
new file mode 100644
index 0000000000..f3ab114015
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-04-31-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-04-31</title>
+<del datetime="2002-04-31"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-05-32-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-05-32-novalid.html
new file mode 100644
index 0000000000..c4caeade95
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-05-32-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-05-32</title>
+<del datetime="2002-05-32"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-06-31-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-06-31-novalid.html
new file mode 100644
index 0000000000..3583295f3d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-06-31-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-06-31</title>
+<del datetime="2002-06-31"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-07-32-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-07-32-novalid.html
new file mode 100644
index 0000000000..0948cf5742
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-07-32-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-07-32</title>
+<del datetime="2002-07-32"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-08-32-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-08-32-novalid.html
new file mode 100644
index 0000000000..09830a8335
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-08-32-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-08-32</title>
+<del datetime="2002-08-32"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-09-31-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-09-31-novalid.html
new file mode 100644
index 0000000000..55c600cfa2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-09-31-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-09-31</title>
+<del datetime="2002-09-31"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-10-32-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-10-32-novalid.html
new file mode 100644
index 0000000000..6aeefece6e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-10-32-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-10-32</title>
+<del datetime="2002-10-32"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-11-31-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-11-31-novalid.html
new file mode 100644
index 0000000000..bfb4c572dd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-11-31-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-11-31</title>
+<del datetime="2002-11-31"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-12-32-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-12-32-novalid.html
new file mode 100644
index 0000000000..03b511c2f1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-12-32-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-12-32</title>
+<del datetime="2002-12-32"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-missing-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-missing-separator-novalid.html
new file mode 100644
index 0000000000..8e31abfa6d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-missing-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-missing-separator</title>
+<del datetime="2014-0220"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-one-digit-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-one-digit-novalid.html
new file mode 100644
index 0000000000..b8994f93cd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-one-digit-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-one-digit</title>
+<del datetime="2002-09-9"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-three-digits-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-three-digits-novalid.html
new file mode 100644
index 0000000000..8ee427c5c8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-day-three-digits-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-three-digits</title>
+<del datetime="2002-11-009"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-iso8601-YYYYMMDD-no-hyphen-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-iso8601-YYYYMMDD-no-hyphen-novalid.html
new file mode 100644
index 0000000000..493d9de78e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-iso8601-YYYYMMDD-no-hyphen-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-iso8601-YYYYMMDD-no-hyphen</title>
+<del datetime="20020929"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-leading-bom-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-leading-bom-novalid.html
new file mode 100644
index 0000000000..48855e5542
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-leading-bom-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-leading-bom</title>
+<del datetime="2002-09-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-leading-whitespace-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-leading-whitespace-novalid.html
new file mode 100644
index 0000000000..5deaf01e4a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-leading-whitespace-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-leading-whitespace</title>
+<del datetime=" 2002-09-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-00-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-00-novalid.html
new file mode 100644
index 0000000000..798e23b8ff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-00-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-month-00</title>
+<del datetime="2002-00-15"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-13-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-13-novalid.html
new file mode 100644
index 0000000000..63a8b4e710
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-13-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-month-13</title>
+<del datetime="2002-13-15"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-missing-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-missing-separator-novalid.html
new file mode 100644
index 0000000000..b852207e5d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-missing-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-month-missing-separator</title>
+<del datetime="201402-20"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-one-digit-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-one-digit-novalid.html
new file mode 100644
index 0000000000..baf20b49cf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-one-digit-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-month-one-digit</title>
+<del datetime="2002-9-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-three-digits-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-three-digits-novalid.html
new file mode 100644
index 0000000000..0ff8f8987f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-month-three-digits-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-month-three-digits</title>
+<del datetime="2002-011-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-non-ascii-digit-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-non-ascii-digit-novalid.html
new file mode 100644
index 0000000000..73ef392761
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-non-ascii-digit-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-non-ascii-digit</title>
+<del datetime="2002-09-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-trailing-U+0000-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-trailing-U+0000-novalid.html
new file mode 100644
index 0000000000..4870c3dd38
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-trailing-U+0000-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-trailing-U+0000</title>
+<del datetime="2002-09-29&#x0000;"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-trailing-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-trailing-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..4c38689078
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-trailing-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-trailing-pile-of-poo</title>
+<del datetime="2002-09-29💩"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-trailing-whitespace-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-trailing-whitespace-novalid.html
new file mode 100644
index 0000000000..70269cc348
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-trailing-whitespace-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-trailing-whitespace</title>
+<del datetime="2002-09-29 "></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-wrong-day-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-wrong-day-separator-novalid.html
new file mode 100644
index 0000000000..8455171080
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-wrong-day-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-wrong-day-separator</title>
+<del datetime="2014-02:20"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-wrong-month-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-wrong-month-separator-novalid.html
new file mode 100644
index 0000000000..797cae4956
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-wrong-month-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-wrong-month-separator</title>
+<del datetime="2014:02-20"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-year-0000-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-year-0000-novalid.html
new file mode 100644
index 0000000000..267903239d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-year-0000-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-year-0000</title>
+<del datetime="0000-12-09"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-year-five-digits-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-year-five-digits-haswarn.html
new file mode 100644
index 0000000000..ed42c90530
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-year-five-digits-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-year-five-digits</title>
+<del datetime="12014-09-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-year-negative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-year-negative-novalid.html
new file mode 100644
index 0000000000..459f745a8f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-year-negative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-year-negative</title>
+<del datetime="-2002-09-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/date-year-three-digits-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-year-three-digits-novalid.html
new file mode 100644
index 0000000000..9574f97ded
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/date-year-three-digits-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-year-three-digits</title>
+<del datetime="782-09-29"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/datetime-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/datetime-isvalid.html
new file mode 100644
index 0000000000..cfb960c784
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/datetime-isvalid.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid datetime</title>
+<del datetime="2002-09-29"></del> <!-- date -->
+<del datetime="2000-02-29"></del> <!-- date-2000-02-29 -->
+<del datetime="2400-02-29"></del> <!-- date-2400-02-29 -->
+<del datetime="1968-02-29"></del> <!-- date-1968-02-29 -->
+<del datetime="1900-02-28"></del> <!-- date-1900-02-28 -->
+<del datetime="2100-02-28"></del> <!-- date-2100-02-28 -->
+<del datetime="2200-02-28"></del> <!-- date-2200-02-28 -->
+<del datetime="2014-02-28"></del> <!-- date-2014-02-28 -->
+<del datetime="2002-01-31"></del> <!-- date-day-01-31 -->
+<del datetime="2002-03-31"></del> <!-- date-day-03-31 -->
+<del datetime="2002-05-31"></del> <!-- date-day-05-31 -->
+<del datetime="2002-07-31"></del> <!-- date-day-07-31 -->
+<del datetime="2002-08-31"></del> <!-- date-day-08-31 -->
+<del datetime="2002-10-31"></del> <!-- date-day-10-31 -->
+<del datetime="2002-12-31"></del> <!-- date-day-12-31 -->
+<del datetime="2002-04-30"></del> <!-- date-day-04-30 -->
+<del datetime="2002-06-30"></del> <!-- date-day-06-30 -->
+<del datetime="2002-09-30"></del> <!-- date-day-09-30 -->
+<del datetime="2002-11-30"></del> <!-- date-day-11-30 -->
+<del datetime="2011-11-12T14:54Z"></del> <!-- global-date-and-time-no-seconds -->
+<del datetime="2011-11-12T14:54:39+0000"></del> <!-- global-date-and-time-with-seconds -->
+<del datetime="2011-11-12T06:54:39.9-08:00"></del> <!-- global-date-and-time-with-one-digit-fraction -->
+<del datetime="2011-11-12T06:54:39.92+07:00"></del> <!-- global-date-and-time-with-two-digit-fraction -->
+<del datetime="2011-11-12T06:54:39.929-06:00"></del> <!-- global-date-and-time-with-three-digit-fraction -->
+<del datetime="2011-11-12 14:54Z"></del> <!-- global-date-and-time-space -->
+<del datetime="2011-11-12T06:54:39+0900"></del> <!-- global-date-and-time-timezone -->
+<del datetime="2011-11-12T06:54:39-0830"></del> <!-- global-date-and-time-timezone-30 -->
+<del datetime="2011-11-12T06:54:39-0845"></del> <!-- global-date-and-time-timezone-45 -->
+<del datetime="2011-11-12T06:54:39-08:00"></del> <!-- global-date-and-time-timezone-with-colon -->
+<del datetime="2011-11-12T06:54:39-0800"></del> <!-- global-date-and-time-timezone-without-colon -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/duration-P-form-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/duration-P-form-novalid.html
new file mode 100644
index 0000000000..b7487e706e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/duration-P-form-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>duration-P-form</title>
+<del datetime="PT4H18M3S"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/duration-time-component-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/duration-time-component-novalid.html
new file mode 100644
index 0000000000..98a484d0fa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/duration-time-component-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>duration-time-component</title>
+<del datetime="4h 18m 3s"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-2400-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-2400-novalid.html
new file mode 100644
index 0000000000..5a3328aa9b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-2400-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-2400</title>
+<del datetime="2011-11-12T24:00:00+08:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-60-minutes-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-60-minutes-novalid.html
new file mode 100644
index 0000000000..5d4641c524
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-60-minutes-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-60-minutes</title>
+<del datetime="2011-11-12T00:60:00+08:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-60-seconds-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-60-seconds-novalid.html
new file mode 100644
index 0000000000..ec897dca82
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-60-seconds-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-60-seconds</title>
+<del datetime="2011-11-12T00:00:60+08:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-bad-fraction-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-bad-fraction-separator-novalid.html
new file mode 100644
index 0000000000..43fd39e7f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-bad-fraction-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-bad-fraction-separator</title>
+<del datetime="2011-11-12T14:54:39,929+0000"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-four-digit-fraction-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-four-digit-fraction-novalid.html
new file mode 100644
index 0000000000..d17ece6f8b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-four-digit-fraction-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-four-digit-fraction</title>
+<del datetime="2011-11-12T06:54:39.9291-08:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-hour-one-digit-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-hour-one-digit-novalid.html
new file mode 100644
index 0000000000..5fcad23577
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-hour-one-digit-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-hour-one-digit</title>
+<del datetime="2011-11-12T6:54:39-08:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-hour-three-digits-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-hour-three-digits-novalid.html
new file mode 100644
index 0000000000..3683a20df3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-hour-three-digits-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-hour-three-digits</title>
+<del datetime="2011-11-12T016:54:39-08:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-iso8601-hh-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-iso8601-hh-novalid.html
new file mode 100644
index 0000000000..95f4b3df08
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-iso8601-hh-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-iso8601-hh</title>
+<del datetime="2011-11-12T14Z"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-iso8601-hhmm-no-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-iso8601-hhmm-no-colon-novalid.html
new file mode 100644
index 0000000000..9b1c4df19b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-iso8601-hhmm-no-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-iso8601-hhmm-no-colon</title>
+<del datetime="2011-11-12T1454Z"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-iso8601-hhmmss-no-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-iso8601-hhmmss-no-colon-novalid.html
new file mode 100644
index 0000000000..4a66109f63
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-iso8601-hhmmss-no-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-iso8601-hhmmss-no-colon</title>
+<del datetime="2011-11-12T145439Z"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-lowercase-z-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-lowercase-z-novalid.html
new file mode 100644
index 0000000000..525f670a8d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-lowercase-z-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-lowercase-z</title>
+<del datetime="2011-11-12T14:54z"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-minutes-one-digit-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-minutes-one-digit-novalid.html
new file mode 100644
index 0000000000..ae1d238df7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-minutes-one-digit-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-minutes-one-digit</title>
+<del datetime="2011-11-12T16:4:39-08:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-minutes-three-digits-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-minutes-three-digits-novalid.html
new file mode 100644
index 0000000000..459d029c19
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-minutes-three-digits-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-minutes-three-digits</title>
+<del datetime="2011-11-12T16:354:39-08:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-missing-minutes-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-missing-minutes-separator-novalid.html
new file mode 100644
index 0000000000..32b980237b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-missing-minutes-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-missing-minutes-separator</title>
+<del datetime="2011-11-12T1454Z"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-missing-seconds-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-missing-seconds-separator-novalid.html
new file mode 100644
index 0000000000..16694a381a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-missing-seconds-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-missing-seconds-separator</title>
+<del datetime="2011-11-12T14:5439Z"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-nbsp-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-nbsp-novalid.html
new file mode 100644
index 0000000000..2074fcf466
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-nbsp-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-nbsp</title>
+<del datetime="2011-11-12 14:54Z"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-seconds-one-digit-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-seconds-one-digit-novalid.html
new file mode 100644
index 0000000000..f879efad84
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-seconds-one-digit-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-seconds-one-digit</title>
+<del datetime="2011-11-12T16:54:9-08:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-seconds-three-digits-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-seconds-three-digits-novalid.html
new file mode 100644
index 0000000000..2d616bd8c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-seconds-three-digits-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-seconds-three-digits</title>
+<del datetime="2011-11-12T16:54:039-08:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-space-before-timezone-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-space-before-timezone-novalid.html
new file mode 100644
index 0000000000..c9da89f049
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-space-before-timezone-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-space-before-timezone</title>
+<del datetime="2011-11-12T06:54:39 08:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-60-minutes-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-60-minutes-novalid.html
new file mode 100644
index 0000000000..26c4efd6ce
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-60-minutes-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-60-minutes</title>
+<del datetime="2011-11-12T06:54:39-08:60"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-iso8601-two-digit-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-iso8601-two-digit-novalid.html
new file mode 100644
index 0000000000..307afcac7e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-iso8601-two-digit-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-iso8601-two-digit</title>
+<del datetime="2011-11-12T06:54:39-08"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-lowercase-t-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-lowercase-t-novalid.html
new file mode 100644
index 0000000000..a705cd02ef
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-lowercase-t-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-lowercase-t</title>
+<del datetime="2011-11-12t14:54Z"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-minus-1300-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-minus-1300-haswarn.html
new file mode 100644
index 0000000000..ba2da94271
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-minus-1300-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-minus-1300</title>
+<del datetime="2011-11-12T00:00:00-1300"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-minus-2400-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-minus-2400-novalid.html
new file mode 100644
index 0000000000..8db2fa3ea6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-minus-2400-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-minus-2400</title>
+<del datetime="2011-11-12T06:54:39-24:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-minutes-15-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-minutes-15-haswarn.html
new file mode 100644
index 0000000000..c371fb9024
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-minutes-15-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-minutes-15</title>
+<del datetime="2011-11-12T00:00:00+08:15"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-multiple-spaces-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-multiple-spaces-novalid.html
new file mode 100644
index 0000000000..be4acace10
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-multiple-spaces-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-multiple-spaces</title>
+<del datetime="2011-11-12 14:54Z"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-non-T-character-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-non-T-character-novalid.html
new file mode 100644
index 0000000000..420ea8a0f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-non-T-character-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-non-T-character</title>
+<del datetime="2011-11-12+14:54Z"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-offset-colon-start-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-offset-colon-start-novalid.html
new file mode 100644
index 0000000000..b91337fbbc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-offset-colon-start-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-offset-colon-start</title>
+<del datetime="2011-11-12T06:54:39.929:08:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-offset-space-start-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-offset-space-start-novalid.html
new file mode 100644
index 0000000000..81ace2b96d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-offset-space-start-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-offset-space-start</title>
+<del datetime="2011-11-12T06:54:39.929 08:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-one-digit-hour-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-one-digit-hour-novalid.html
new file mode 100644
index 0000000000..cec77816f2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-one-digit-hour-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-one-digit-hour</title>
+<del datetime="2011-11-12T06:54:39-5:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-one-digit-minute-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-one-digit-minute-novalid.html
new file mode 100644
index 0000000000..c4755de178
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-one-digit-minute-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-one-digit-minute</title>
+<del datetime="2011-11-12T06:54:39-05:0"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-plus-1500-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-plus-1500-haswarn.html
new file mode 100644
index 0000000000..df2835a864
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-plus-1500-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-plus-1500</title>
+<del datetime="2011-11-12T00:00:00+1500"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-plus-2400-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-plus-2400-novalid.html
new file mode 100644
index 0000000000..304557f30b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-plus-2400-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-plus-2400</title>
+<del datetime="2011-11-12T06:54:39-24:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-three-digit-hour-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-three-digit-hour-novalid.html
new file mode 100644
index 0000000000..407eac2fa6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-three-digit-hour-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-three-digit-hour</title>
+<del datetime="2011-11-12T06:54:39-005:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-three-digit-minute-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-three-digit-minute-novalid.html
new file mode 100644
index 0000000000..eb0c21ac08
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-three-digit-minute-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-three-digit-minute</title>
+<del datetime="2011-11-12T06:54:39-05:000"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-with-seconds-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-with-seconds-novalid.html
new file mode 100644
index 0000000000..616f3d2072
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-timezone-with-seconds-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-with-seconds</title>
+<del datetime="2011-11-12T06:54:39-08:00:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-with-both-T-and-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-with-both-T-and-space-novalid.html
new file mode 100644
index 0000000000..667c9bc378
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-with-both-T-and-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-with-both-T-and-space</title>
+<del datetime="2011-11-12T 14:54Z"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-wrong-minutes-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-wrong-minutes-separator-novalid.html
new file mode 100644
index 0000000000..e359813648
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-wrong-minutes-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-wrong-minutes-separator</title>
+<del datetime="2011-11-12T14-54Z"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-wrong-seconds-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-wrong-seconds-separator-novalid.html
new file mode 100644
index 0000000000..474a0505d1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-wrong-seconds-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-wrong-seconds-separator</title>
+<del datetime="2011-11-12T14:54-39Z"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-zero-digit-fraction-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-zero-digit-fraction-novalid.html
new file mode 100644
index 0000000000..9e143966e9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/global-date-and-time-zero-digit-fraction-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-zero-digit-fraction</title>
+<del datetime="2011-11-12T06:54:39.-08:00"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/local-date-and-time-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/local-date-and-time-novalid.html
new file mode 100644
index 0000000000..ec87440529
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/local-date-and-time-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>local-date-and-time</title>
+<del datetime="2011-11-12T14:54"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/model-isvalid.html
new file mode 100644
index 0000000000..194678a657
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/model-isvalid.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;del&gt;</title>
+</head>
+<body>
+
+
+ <!-- can contain strictly inline while in strictly inline context -->
+ <p><dfn>strictly inline
+ <del>
+ <em>text</em>
+ </del>
+ </dfn></p>
+
+ <!-- can contain interactive if ancestor does not forbid it -->
+ <p>paragraph
+ <del>
+ <a>link</a>
+ </del>
+ </p>
+ <p><dfn>strictly inline
+ <del>
+ <a>link</a>
+ </del>
+ </dfn></p>
+
+ <div><del><p>foo</p></del></div><!-- with flow content and flow parent -->
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/model-novalid.html
new file mode 100644
index 0000000000..0cf5c1797b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/model-novalid.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;del&gt;</title>
+</head>
+<body>
+ <!-- can contain inline while in inline context -->
+ <p>paragraph
+ <del>
+ <em>some</em> <ul><li>inline</li></ul> content
+ </del>
+ </p>
+
+ <!-- can contain strictly inline while in strictly inline context -->
+ <p><dfn>strictly inline
+ <del>
+ <em>text</em>
+ </del>
+ </dfn></p>
+
+ <!-- can contain blocks while in block context -->
+ <del>
+ <p>text</p>
+ </del>
+
+ <!-- can contain interactive if ancestor does not forbid it -->
+ <p>paragraph
+ <del>
+ <a>link</a>
+ </del>
+ </p>
+ <p><dfn>strictly inline
+ <del>
+ <a>link</a>
+ </del>
+ </dfn></p>
+ <del>
+ <p><a>link</a></p>
+ </del>
+
+ <span><del><p>foo</p></del></span><!-- with flow content and phrasing parent -->
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/month-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/month-novalid.html
new file mode 100644
index 0000000000..0aa424db5e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/month-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>month</title>
+<del datetime="2011-11"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/time-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/time-novalid.html
new file mode 100644
index 0000000000..c9dabd72c9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/time-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>time</title>
+<del datetime="14:54:39"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/week-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/week-novalid.html
new file mode 100644
index 0000000000..d4a806363a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/week-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>week</title>
+<del datetime="2011-W46"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/year-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/year-novalid.html
new file mode 100644
index 0000000000..560309cf5d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/year-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>year</title>
+<del datetime="2006"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/del/yearless-date-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/del/yearless-date-novalid.html
new file mode 100644
index 0000000000..4374fafc33
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/del/yearless-date-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>yearless-date</title>
+<del datetime="07-15"></del> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dfn/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dfn/model-isvalid.html
new file mode 100644
index 0000000000..15c72b4fcb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dfn/model-isvalid.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;dfn&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><dfn class="class" lang="en" title="text1">text</dfn></p>
+
+ <!-- is strictly inline -->
+ <p><i><dfn class="class" lang="en">text2</dfn></i></p>
+
+ <!-- can be empty -->
+ <p>text <dfn></dfn></p>
+ <p>text <i><dfn title="text3"></dfn></i></p>
+
+ <!-- can contain interactive -->
+ <p><dfn><a>text4</a></dfn></p>
+ <p><i><dfn><a>text5</a></dfn></i></p>
+
+ <!-- cannot contain structured inline -->
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dfn/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dfn/model-novalid.html
new file mode 100644
index 0000000000..7933d75dac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dfn/model-novalid.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;dfn&gt;</title>
+</head>
+<body>
+ <!-- not a block -->
+ <dfn>text</dfn>
+
+ <!-- cannot contain structured inline -->
+ <p><dfn><ul><li>text</li></ul></dfn></p>
+
+ <!-- cannot contain interactive if parent forbids interactive -->
+ <p><a><dfn><a>text</a></dfn></a></p>
+ <p><a><var><dfn><a>text</a></dfn></var></a></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dialog/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dialog/model-novalid.html
new file mode 100644
index 0000000000..f95676e374
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dialog/model-novalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;dialog&gt;</title>
+</head>
+<body>
+<dialog>
+<dt>Foo</dt>
+<dt>Bar</dt>
+<dd><p>Blah</p></dd>
+<dd><p>Bleh</p></dd>
+</dialog>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/div/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/div/model-isvalid.html
new file mode 100644
index 0000000000..8d1ad0bf85
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/div/model-isvalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;div&gt;</title>
+</head>
+<body>
+ <!-- is block, contains blocks -->
+ <div class="class" id="id" lang="en">
+ <p>text</p>
+ <p>text2</p>
+ <ul></ul>
+ </div>
+
+ <!-- can contain interactive -->
+ <div>
+ <p><a>text</a></p>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/div/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/div/model-novalid.html
new file mode 100644
index 0000000000..a7d8e4f60d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/div/model-novalid.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;div&gt;</title>
+</head>
+<body>
+ <!-- is not strictly inline -->
+ <p><dfn>text
+ <div>
+ <p>text</p>
+ </div>
+ </dfn></p>
+
+ <!-- is not structured inline -->
+ <p>text
+ <div>
+ <p>text</p>
+ </div>
+ </p>
+
+ <!-- cannot contain inline -->
+ <div>
+ some <em>text</em>
+ </div>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/article-in-dt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/article-in-dt-novalid.html
new file mode 100644
index 0000000000..1c2fde9cd6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/article-in-dt-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid article-in-dt</title>
+<dl><dt><article><h2>text</h2></article><dd>text</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/aside-in-dt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/aside-in-dt-novalid.html
new file mode 100644
index 0000000000..b08c05b7f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/aside-in-dt-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid aside-in-dt</title>
+<dl><dt><aside><h2>text</h2></aside><dd>text</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/dd-in-template-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/dd-in-template-novalid.html
new file mode 100644
index 0000000000..3c4ddbdae1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/dd-in-template-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid dd-in-template</title>
+<dl><dt>1</dt><template><dd>a</dd></template></dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-contains-dl-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-contains-dl-novalid.html
new file mode 100644
index 0000000000..d94258abc0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-contains-dl-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid div-contains-dl</title>
+<dl><div><dl></dl></div><dt>2<dd>b</div></dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-contains-text-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-contains-text-novalid.html
new file mode 100644
index 0000000000..acb91569e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-contains-text-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid div-contains-text</title>
+<dl><div>x</div><dt>2<dd>b</div></dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-multiple-groups-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-multiple-groups-novalid.html
new file mode 100644
index 0000000000..ff0d5bc301
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-multiple-groups-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid div-multiple-groups</title>
+<dl><div><dt>1<dd>a<dt>2<dd>a<dd>b<dt>3<dt>4<dt>5<dd>a</div></dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-splitting-groups-2-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-splitting-groups-2-novalid.html
new file mode 100644
index 0000000000..f490502118
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-splitting-groups-2-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid div-splitting-groups-2</title>
+<dl><div><dt>1<dd>a</div><div><dd>b</div></dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-splitting-groups-3-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-splitting-groups-3-novalid.html
new file mode 100644
index 0000000000..aa2e4e1605
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-splitting-groups-3-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid div-splitting-groups-3</title>
+<dl><div><dt>1</div><div><dt>2<dd>b</div></dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-splitting-groups-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-splitting-groups-novalid.html
new file mode 100644
index 0000000000..5164e2f268
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/div-splitting-groups-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid div-splitting-groups</title>
+<dl><div><dt>1</div><div><dd>a</div></dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-contains-dl-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-contains-dl-novalid.html
new file mode 100644
index 0000000000..d893e9beac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-contains-dl-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid dl-contains-dl</title>
+<dl><dt>1<dd>a</dd><dl></dl></dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-contains-text-2-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-contains-text-2-novalid.html
new file mode 100644
index 0000000000..84847551aa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-contains-text-2-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid dl-contains-text-2</title>
+<dl><dt>1<dd>a</dd>x</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-contains-text-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-contains-text-novalid.html
new file mode 100644
index 0000000000..2113207edf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-contains-text-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid dl-contains-text</title>
+<dl><dt>1</dt>x</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-in-p-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-in-p-novalid.html
new file mode 100644
index 0000000000..b105341840
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-in-p-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid dl-in-p</title>
+<p><dl><dt>text<dd>text</dl></p> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-isvalid.html
new file mode 100644
index 0000000000..822ef9372b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/dl-isvalid.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid dl</title>
+<template><dl><dt>text<dd>text</dl></template> <!-- parent-template-in-head -->
+<body>
+<dl><dt>text<dd>text</dl> <!-- basic -->
+<dl></dl> <!-- empty -->
+<dl><dt><dd></dl> <!-- empty-dt-dd -->
+<dl><dt>1<dd>a<dt>2<dd>a<dd>b<dt>3<dt>4<dt>5<dd>a</dl> <!-- multiple-groups -->
+<dl><dt>text<dd><header>text</header></dl> <!-- header-in-dd -->
+<dl><dt>text<dd><footer>text</footer></dl> <!-- footer-in-dd -->
+<dl><dt>text<dd><article><h2>text</h2></article></dl> <!-- article-in-dd -->
+<dl><dt>text<dd><aside><h2>text</h2></aside></dl> <!-- aside-in-dd -->
+<dl><dt>text<dd><nav><h2>text</h2></nav></dl> <!-- nav-in-dd -->
+<dl><dt>text<dd><section><h2>text</h2></section></dl> <!-- section-in-dd -->
+<dl><dt>text<dd><h1>text</h1></dl> <!-- h1-in-dd -->
+<dl><dt>text<dd><h2>text</h2></dl> <!-- h2-in-dd -->
+<dl><dt>text<dd><h3>text</h3></dl> <!-- h3-in-dd -->
+<dl><dt>text<dd><h4>text</h4></dl> <!-- h4-in-dd -->
+<dl><dt>text<dd><h5>text</h5></dl> <!-- h5-in-dd -->
+<dl><dt>text<dd><h6>text</h6></dl> <!-- h6-in-dd -->
+<dl><dt><p>1<p>1<dd>a</dl> <!-- p-in-dt -->
+<dl><dt><dl><dt>1<dd>a</dl><dd>b</dl> <!-- dl-in-dt -->
+<dl><dt>1<dd><dl><dt>2<dd>a</dl></dl> <!-- dl-in-dd -->
+<dl><dt><a href='#'>1</a><dd><a href='#'>a</a></dl> <!-- interactive -->
+<dl><script></script></dl> <!-- script -->
+<dl><dt>1</dt><script></script><dd>a</dl> <!-- dt-script-dd -->
+<dl><dt>1</dt><template></template><dd>a</dl> <!-- dt-template-dd -->
+<dl><div><dt>1<dd>a</div></dl> <!-- div-basic -->
+<dl><div><dt>1<dd>a</div><script></script></dl> <!-- div-script -->
+<dl><div><dt>1</dt><script></script><dd>a</div></dl> <!-- div-script-2 -->
+<dl><div><dt>1<dd>a</div><template></template></dl> <!-- div-template -->
+<dl><div><dt>1</dt><template></template><dd>a</div></dl> <!-- div-template-2 -->
+<dl><div><dt>1<dd>a</div><div><dt>2<dd>a<dd>b</div><div><dt>3<dt>4<dt>5<dd>a</div></dl> <!-- div-multiple-groups -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/dt-in-template-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/dt-in-template-novalid.html
new file mode 100644
index 0000000000..da0526906d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/dt-in-template-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid dt-in-template</title>
+<dl><template><dt>1</dt></template><dd>a</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/empty-div-2-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/empty-div-2-novalid.html
new file mode 100644
index 0000000000..54d9e68fa1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/empty-div-2-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid empty-div-2</title>
+<dl><div></div><div><dt>2<dd>b</div></dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/empty-div-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/empty-div-novalid.html
new file mode 100644
index 0000000000..14211f3b01
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/empty-div-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid empty-div</title>
+<dl><div></div></dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/first-dd-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/first-dd-novalid.html
new file mode 100644
index 0000000000..98604399ac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/first-dd-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid first-dd</title>
+<dl><dd>a<dt>2<dd>b</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/footer-in-dt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/footer-in-dt-novalid.html
new file mode 100644
index 0000000000..a24cc0b18d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/footer-in-dt-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid footer-in-dt</title>
+<dl><dt><footer>text</footer><dd>text</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/h1-in-dt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/h1-in-dt-novalid.html
new file mode 100644
index 0000000000..3e8729cf6e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/h1-in-dt-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid h1-in-dt</title>
+<dl><dt><h1>text</h1><dd>text</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/h2-in-dt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/h2-in-dt-novalid.html
new file mode 100644
index 0000000000..32d5088005
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/h2-in-dt-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid h2-in-dt</title>
+<dl><dt><h2>text</h2><dd>text</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/h3-in-dt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/h3-in-dt-novalid.html
new file mode 100644
index 0000000000..ec22819c11
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/h3-in-dt-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid h3-in-dt</title>
+<dl><dt><h3>text</h3><dd>text</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/h4-in-dt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/h4-in-dt-novalid.html
new file mode 100644
index 0000000000..5b621b1deb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/h4-in-dt-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid h4-in-dt</title>
+<dl><dt><h4>text</h4><dd>text</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/h5-in-dt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/h5-in-dt-novalid.html
new file mode 100644
index 0000000000..21c603a9e3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/h5-in-dt-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid h5-in-dt</title>
+<dl><dt><h5>text</h5><dd>text</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/h6-in-dt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/h6-in-dt-novalid.html
new file mode 100644
index 0000000000..1c97cced77
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/h6-in-dt-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid h6-in-dt</title>
+<dl><dt><h6>text</h6><dd>text</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/header-in-dt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/header-in-dt-novalid.html
new file mode 100644
index 0000000000..2bc589b800
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/header-in-dt-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid header-in-dt</title>
+<dl><dt><header>text</header><dd>text</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/hgroup-in-dt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/hgroup-in-dt-novalid.html
new file mode 100644
index 0000000000..07165851ad
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/hgroup-in-dt-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid hgroup-in-dt</title>
+<dl><dt><hgroup><h1>text</h1></hgroup><dd>text</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/last-dt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/last-dt-novalid.html
new file mode 100644
index 0000000000..83e2fec8a2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/last-dt-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid last-dt</title>
+<dl><dt>1<dd>a<dt>2</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/mixed-div-dt-dd-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/mixed-div-dt-dd-novalid.html
new file mode 100644
index 0000000000..c02808addb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/mixed-div-dt-dd-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid mixed-div-dt-dd</title>
+<dl><div><dt>1<dd>a</div><dt>2<dd>b</dd></dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/mixed-dt-dd-div-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/mixed-dt-dd-div-novalid.html
new file mode 100644
index 0000000000..5ed4aedd15
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/mixed-dt-dd-div-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid mixed-dt-dd-div</title>
+<dl><dt>1<dd>a</dd><div><dt>2<dd>b</div></dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/nav-in-dt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/nav-in-dt-novalid.html
new file mode 100644
index 0000000000..64e137d515
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/nav-in-dt-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid nav-in-dt</title>
+<dl><dt><nav><h2>text</h2></nav><dd>text</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/nested-divs-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/nested-divs-novalid.html
new file mode 100644
index 0000000000..ef3446d3a1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/nested-divs-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid nested-divs</title>
+<dl><div><div><dt>1<dd>a</div></div></dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/only-dd-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/only-dd-novalid.html
new file mode 100644
index 0000000000..017795cc09
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/only-dd-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid only-dd</title>
+<dl><dd>a</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/only-dt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/only-dt-novalid.html
new file mode 100644
index 0000000000..7445214efe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/only-dt-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid only-dt</title>
+<dl><dt>1</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/dl/section-in-dt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/dl/section-in-dt-novalid.html
new file mode 100644
index 0000000000..846ebbe35a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/dl/section-in-dt-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid section-in-dt</title>
+<dl><dt><section><h2>text</h2></section><dd>text</dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/em/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/em/model-isvalid.html
new file mode 100644
index 0000000000..a473a3479f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/em/model-isvalid.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;em&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><em class="class" lang="en">text</em></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><em class="class" lang="en">text</em></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <em></em></p>
+ <p>text <dfn><em></em></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><em><a>text</a></em></p>
+ <p><dfn><em><a>text</a></em></dfn></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/em/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/em/model-novalid.html
new file mode 100644
index 0000000000..1b721e7b58
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/em/model-novalid.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;em&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><em class="class" lang="en">text</em></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><em class="class" lang="en">text</em></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <em></em></p>
+ <p>text <dfn><em></em></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><em><a>text</a></em></p>
+ <p><dfn><em><a>text</a></em></dfn></p>
+
+ <!-- cannot contain structured inline -->
+ <p><em>text <ul><li>list</li></ul> <em>elem</em></em></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/height-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/height-novalid.html
new file mode 100644
index 0000000000..62ca5efdf9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/height-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>element embed with bad height value</title>
+</head>
+<body>
+<embed height="20%">
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src-empty-novalid.html
new file mode 100644
index 0000000000..fb5b6222dd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty src is not valid</title>
+<embed src="">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src-isvalid.html
new file mode 100644
index 0000000000..c49be406dc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid src</title>
+<embed src="a:foo.com"><!-- scheme-private -->
+<embed src="foo:/"><!-- scheme-private-slash -->
+<embed src="foo://"><!-- scheme-private-slash-slash -->
+<embed src="foo:/bar.com/"><!-- scheme-private-path -->
+<embed src="foo://///////"><!-- scheme-private-path-leading-slashes-only -->
+<embed src="foo://///////bar.com/"><!-- scheme-private-path-leading-slashes-chars -->
+<embed src="foo:////://///"><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<embed src="c:/foo"><!-- scheme-private-single-letter -->
+<embed src="madeupscheme:/example.com/"><!-- scheme-private-single-slash -->
+<embed src="file:/example.com/"><!-- scheme-file-single-slash -->
+<embed src="ftps:/example.com/"><!-- scheme-ftps-single-slash -->
+<embed src="gopher:/example.com/"><!-- scheme-gopher-single-slash -->
+<embed src="ws:/example.com/"><!-- scheme-ws-single-slash -->
+<embed src="wss:/example.com/"><!-- scheme-wss-single-slash -->
+<embed src="javascript:/example.com/"><!-- scheme-javascript-single-slash -->
+<embed src="mailto:/example.com/"><!-- scheme-mailto-single-slash -->
+<embed src="madeupscheme:example.com/"><!-- scheme-private-no-slash -->
+<embed src="ftps:example.com/"><!-- scheme-ftps-no-slash -->
+<embed src="gopher:example.com/"><!-- scheme-gopher-no-slash -->
+<embed src="wss:example.com/"><!-- scheme-wss-no-slash -->
+<embed src="mailto:example.com/"><!-- scheme-mailto-no-slash -->
+<embed src="data:text/plain,foo"><!-- scheme-data-no-slash -->
+<embed src="http://user:pass@foo:21/bar;par?b#c"><!-- userinfo -->
+<embed src="http://[2001::1]"><!-- host-ipv6 -->
+<embed src="http://[2001::1]:80"><!-- host-ipv6-port -->
+<embed src="http://f:/c"><!-- port-none-but-colon -->
+<embed src="http://f:0/c"><!-- port-0 -->
+<embed src="http://f:00000000000000/c"><!-- port-00000000000000 -->
+<embed src="http://f:00000000000000000000080/c"><!-- port-00000000000000000000080 -->
+<embed src="http://a:b@c:29/d"><!-- userinfo-host-port-path -->
+<embed src="http://foo.com:b@d/"><!-- userinfo-username-non-alpha -->
+<embed src="http://foo/abcd?efgh?ijkl"><!-- query-contains-question-mark -->
+<embed src="http://foo/abcd#foo?bar"><!-- fragment-contains-question-mark -->
+<embed src="http://example.com/foo/%2e"><!-- path-percent-encoded-dot -->
+<embed src="http://example.com/%20foo"><!-- path-percent-encoded-space -->
+<embed src="http://example.com/©zbar"><!-- path-non-ascii -->
+<embed src="http://example.com/foo%41%7a"><!-- path-percent-encoded-multiple -->
+<embed src="http://example.com/foo%91"><!-- path-percent-encoded-u0091 -->
+<embed src="http://example.com/foo%00"><!-- path-percent-encoded-u0000 -->
+<embed src="http://example.com/%3A%3a%3C%3c"><!-- path-percent-encoded-mixed-case -->
+<embed src="http://example.com/你好你好"><!-- path-unicode-han -->
+<embed src="http://example.com//foo"><!-- path-uFEFF -->
+<embed src="http://example.com/‮/foo/‭/bar"><!-- path-u202E-u202D -->
+<embed src="http://💩"><!-- host-is-pile-of-poo -->
+<embed src="http💩//:foo"><!-- path-contains-pile-of-poo -->
+<embed src="http://example.com/foo?💩"><!-- query-contains-pile-of-poo -->
+<embed src="http://example.com/foo#💩"><!-- fragment-contains-pile-of-poo -->
+<embed src="http://192.0x00A80001"><!-- host-192.0x00A80001 -->
+<embed src="http://%25DOMAIN:foobar@foodomain.com"><!-- userinfo-username-contains-percent-encoded -->
+<embed src="http://@www.example.com"><!-- userinfo-empty -->
+<embed src="http://:b@www.example.com"><!-- userinfo-user-empty -->
+<embed src="http://a:@www.example.com"><!-- userinfo-password-empty -->
+<embed src="http://GOO​⁠goo.com"><!-- host-exotic-whitespace -->
+<embed src="http://www.foo。bar.com"><!-- host-exotic-dot -->
+<embed src="http://Go.com"><!-- host-fullwidth -->
+<embed src="http://你好你好"><!-- host-idn-unicode-han -->
+<embed src="http://192.168.0.257/"><!-- host-IP-address-broken -->
+<embed src="//foo/bar"><!-- scheme-schemeless-relative -->
+<embed src="/"><!-- path-slash-only-relative -->
+<embed src="/a/b/c"><!-- path-simple-relative -->
+<embed src="/a%2fc"><!-- path-percent-encoded-slash-relative -->
+<embed src="/a/%2f/c"><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<embed src="?"><!-- query-empty-no-path-relative -->
+<embed src="#"><!-- fragment-empty-hash-only-no-path-relative -->
+<embed src="#/"><!-- fragment-slash-relative -->
+<embed src="#;?"><!-- fragment-semicolon-question-mark-relative -->
+<embed src="#β"><!-- fragment-non-ascii-relative -->
+<embed src="foo.com"><!-- scheme-none-relative -->
+<embed src=":"><!-- path-colon-relative -->
+<embed src=":a"><!-- path-leading-colon-letter-relative -->
+<embed src=":foo.com"><!-- path-leading-colon-chars-relative -->
+<embed src=":/"><!-- path-leading-colon-slash-relative -->
+<embed src=":#"><!-- path-leading-colon-hash-relative -->
+<embed src=":23"><!-- path-leading-colon-number-relative -->
+<embed src="/:23"><!-- path-slash-colon-number-relative -->
+<embed src="::"><!-- path-leading-colon-colon-relative -->
+<embed src="::23"><!-- path-colon-colon-number-relative -->
+<embed src="💩http://foo"><!-- path-starts-with-pile-of-poo -->
+<embed src="/💩"><!-- path-slash-pile-of-poo -->
+<embed src="File://foo/bar.html"><!-- scheme-file-uppercase -->
+<embed src="file://C|/foo/bar"><!-- scheme-file-slash-slash-c-bar -->
+<embed src="file://server/foo/bar"><!-- scheme-file-host-included -->
+<embed src="file:///foo/bar.txt"><!-- scheme-file-host-empty -->
+<embed src="file:"><!-- scheme-file-scheme-only -->
+<embed src="file:/"><!-- scheme-file-slash-only -->
+<embed src="file://"><!-- scheme-file-slash-slash-only -->
+<embed src="file:///"><!-- scheme-file-slash-slash-slash-only -->
+<embed src="file:test"><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src-whitespace-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src-whitespace-only-novalid.html
new file mode 100644
index 0000000000..e9259d6a31
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src-whitespace-only-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty src is not valid</title>
+<embed src="
+">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..28ac5498aa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-backslash</title>
+<embed src="#\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..9e05657cb0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-contains-hash</title>
+<embed src="http://foo/path#f#g">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..3e2845abf8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-leading-space</title>
+<embed src="http://f:21/b# e">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-cr-novalid.html
new file mode 100644
index 0000000000..d8e03b5254
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-cr</title>
+<embed src="http://example. org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..9644261752
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://%41.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..83513733fe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://%ef%bc%85%ef%bc%94%ef%bc%91.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-empty-novalid.html
new file mode 100644
index 0000000000..b0b4eab599
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-empty</title>
+<embed src="http://">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..2d9d0d019b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://@/www.example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..be983e2ee3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://user:pass@/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..a636d49204
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://[www.google.com]/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..a50f5435c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-invalid-unicode</title>
+<embed src="http://﷐zyx.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..2cd5dced04
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://%ef%b7%90zyx.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-newline-novalid.html
new file mode 100644
index 0000000000..ce5e9c395b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-newline</title>
+<embed src="http://example.
+org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-space-novalid.html
new file mode 100644
index 0000000000..8e48edb290
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-space</title>
+<embed src="http://example .org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..34ff35c85a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://[1::2]:3:4">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-tab-novalid.html
new file mode 100644
index 0000000000..54eb72adaf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-tab</title>
+<embed src="http://example .org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..f9da71c715
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://%00.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..cbb60db220
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://%ef%bc%85%ef%bc%90%ef%bc%90.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..8fece4c1f1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://example.com/foo%">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-contains-space-novalid.html
new file mode 100644
index 0000000000..729219ae03
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-contains-space</title>
+<embed src="/a/ /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..daa9caf21d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://foo.com/\@">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..dbd21679cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src=":\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..fbb85e06f8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src=":foo.com\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-leading-space-novalid.html
new file mode 100644
index 0000000000..826a9b6638
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-leading-space</title>
+<embed src="http://f:21/ b">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..bd1cec37d8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://example.com/foo/%2e%2">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..0d664b33d0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="[61:24:74]:98">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-tab-novalid.html
new file mode 100644
index 0000000000..e567b2e1c4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-tab</title>
+<embed src="http://example.com/foo bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..813f1c09ad
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-trailing-space</title>
+<embed src="http://f:21/b ?">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-u0091-novalid.html
new file mode 100644
index 0000000000..3725b447e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-u0091</title>
+<embed src="http://example.com/foo‘">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-999999-novalid.html
new file mode 100644
index 0000000000..21fb6e26f2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-999999</title>
+<embed src="http://f:999999/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-cr-novalid.html
new file mode 100644
index 0000000000..f91f00a595
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-cr</title>
+<embed src="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..216c25b414
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://2001::1]:80">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..02f5503746
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-colon</title>
+<embed src="http://2001::1">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..fab5f995e4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-dash</title>
+<embed src="http://foo:-80/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..4c6f73d50e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-multiple-letters</title>
+<embed src="http://f:fifty-two/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-newline-novalid.html
new file mode 100644
index 0000000000..f434a0f82b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-newline</title>
+<embed src="http://f:
+/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-single-letter-novalid.html
new file mode 100644
index 0000000000..a685bd3890
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-single-letter</title>
+<embed src="http://f:b/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-space-novalid.html
new file mode 100644
index 0000000000..b21dc09329
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-space</title>
+<embed src="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-tab-novalid.html
new file mode 100644
index 0000000000..ee1329d15f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-tab</title>
+<embed src="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/query-leading-space-novalid.html
new file mode 100644
index 0000000000..16c00ae10e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-leading-space</title>
+<embed src="http://f:21/b? d">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..6e75ffc41c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-trailing-space</title>
+<embed src="http://f:21/b?d #">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..f13b3b6664
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-data-contains-fragment-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>src warning: scheme-data-contains-fragment</title>
+<embed src="data:text/html,test#test">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..e29dbb4218
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="data:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..72babd1bb0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-file-backslash</title>
+<embed src="file:c:\foo\bar.html">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..0d49b31e87
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="file:/C|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..ec9814df08
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="file://abc|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..3f84b6e8b5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="file:///C|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..af6d96024d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="ftp:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..02cfc51d3f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="ftp:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..6847bac4e7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-backslash</title>
+<embed src="http:\\foo.com\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..1e5a0f2c8f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http::@c:29">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..f97dfe838c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http:foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..524d4bb6d5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http:[61:27]/:foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..31e7be41bf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..1aeaae4224
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="https:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..7b3fec7e8e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="https:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..f0c5d93076
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-cr</title>
+<embed src="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..3829a82fe7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-newline</title>
+<embed src="a:
+foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..e3a98caec6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-space</title>
+<embed src="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..6a1610d619
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-tab</title>
+<embed src="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..d662052c12
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-backslash</title>
+<embed src="http://a\b:c\d@foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..ebd7452064
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://&a:foo(b]c@d:2/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..658d48c465
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://foo:💩@example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..d0963b7953
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://::@c@d:2">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/src/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..6f102c3531
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/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>
+<embed src="http://💩:foo@example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/type-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/type-novalid.html
new file mode 100644
index 0000000000..c6d456e466
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/type-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>element embed with bad type value</title>
+</head>
+<body>
+<embed type="foo">
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/embed/width-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/embed/width-novalid.html
new file mode 100644
index 0000000000..7e6e4449c9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/embed/width-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>element embed with bad width value</title>
+</head>
+<body>
+<embed width="20%">
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/footer/nested-footer-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/footer/nested-footer-novalid.html
new file mode 100644
index 0000000000..1dd79e8647
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/footer/nested-footer-novalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>"footer" with "footer" descendant</title>
+</head>
+<body>
+<footer>
+<footer></footer>
+</footer>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/footer/nested-header-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/footer/nested-header-novalid.html
new file mode 100644
index 0000000000..26c60a31f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/footer/nested-header-novalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>"footer" with "header" descendant</title>
+</head>
+<body>
+<footer>
+<header></header>
+</footer>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action-empty-novalid.html
new file mode 100644
index 0000000000..4090e01ce6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty action is not valid</title>
+<form action=""></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action-isvalid.html
new file mode 100644
index 0000000000..d2a0ada83d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid action</title>
+<form action="a:foo.com"></form><!-- scheme-private -->
+<form action="foo:/"></form><!-- scheme-private-slash -->
+<form action="foo://"></form><!-- scheme-private-slash-slash -->
+<form action="foo:/bar.com/"></form><!-- scheme-private-path -->
+<form action="foo://///////"></form><!-- scheme-private-path-leading-slashes-only -->
+<form action="foo://///////bar.com/"></form><!-- scheme-private-path-leading-slashes-chars -->
+<form action="foo:////://///"></form><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<form action="c:/foo"></form><!-- scheme-private-single-letter -->
+<form action="madeupscheme:/example.com/"></form><!-- scheme-private-single-slash -->
+<form action="file:/example.com/"></form><!-- scheme-file-single-slash -->
+<form action="ftps:/example.com/"></form><!-- scheme-ftps-single-slash -->
+<form action="gopher:/example.com/"></form><!-- scheme-gopher-single-slash -->
+<form action="ws:/example.com/"></form><!-- scheme-ws-single-slash -->
+<form action="wss:/example.com/"></form><!-- scheme-wss-single-slash -->
+<form action="javascript:/example.com/"></form><!-- scheme-javascript-single-slash -->
+<form action="mailto:/example.com/"></form><!-- scheme-mailto-single-slash -->
+<form action="madeupscheme:example.com/"></form><!-- scheme-private-no-slash -->
+<form action="ftps:example.com/"></form><!-- scheme-ftps-no-slash -->
+<form action="gopher:example.com/"></form><!-- scheme-gopher-no-slash -->
+<form action="wss:example.com/"></form><!-- scheme-wss-no-slash -->
+<form action="mailto:example.com/"></form><!-- scheme-mailto-no-slash -->
+<form action="data:text/plain,foo"></form><!-- scheme-data-no-slash -->
+<form action="http://user:pass@foo:21/bar;par?b#c"></form><!-- userinfo -->
+<form action="http://[2001::1]"></form><!-- host-ipv6 -->
+<form action="http://[2001::1]:80"></form><!-- host-ipv6-port -->
+<form action="http://f:/c"></form><!-- port-none-but-colon -->
+<form action="http://f:0/c"></form><!-- port-0 -->
+<form action="http://f:00000000000000/c"></form><!-- port-00000000000000 -->
+<form action="http://f:00000000000000000000080/c"></form><!-- port-00000000000000000000080 -->
+<form action="http://a:b@c:29/d"></form><!-- userinfo-host-port-path -->
+<form action="http://foo.com:b@d/"></form><!-- userinfo-username-non-alpha -->
+<form action="http://foo/abcd?efgh?ijkl"></form><!-- query-contains-question-mark -->
+<form action="http://foo/abcd#foo?bar"></form><!-- fragment-contains-question-mark -->
+<form action="http://example.com/foo/%2e"></form><!-- path-percent-encoded-dot -->
+<form action="http://example.com/%20foo"></form><!-- path-percent-encoded-space -->
+<form action="http://example.com/©zbar"></form><!-- path-non-ascii -->
+<form action="http://example.com/foo%41%7a"></form><!-- path-percent-encoded-multiple -->
+<form action="http://example.com/foo%91"></form><!-- path-percent-encoded-u0091 -->
+<form action="http://example.com/foo%00"></form><!-- path-percent-encoded-u0000 -->
+<form action="http://example.com/%3A%3a%3C%3c"></form><!-- path-percent-encoded-mixed-case -->
+<form action="http://example.com/你好你好"></form><!-- path-unicode-han -->
+<form action="http://example.com//foo"></form><!-- path-uFEFF -->
+<form action="http://example.com/‮/foo/‭/bar"></form><!-- path-u202E-u202D -->
+<form action="http://💩"></form><!-- host-is-pile-of-poo -->
+<form action="http💩//:foo"></form><!-- path-contains-pile-of-poo -->
+<form action="http://example.com/foo?💩"></form><!-- query-contains-pile-of-poo -->
+<form action="http://example.com/foo#💩"></form><!-- fragment-contains-pile-of-poo -->
+<form action="http://192.0x00A80001"></form><!-- host-192.0x00A80001 -->
+<form action="http://%25DOMAIN:foobar@foodomain.com"></form><!-- userinfo-username-contains-percent-encoded -->
+<form action="http://@www.example.com"></form><!-- userinfo-empty -->
+<form action="http://:b@www.example.com"></form><!-- userinfo-user-empty -->
+<form action="http://a:@www.example.com"></form><!-- userinfo-password-empty -->
+<form action="http://GOO​⁠goo.com"></form><!-- host-exotic-whitespace -->
+<form action="http://www.foo。bar.com"></form><!-- host-exotic-dot -->
+<form action="http://Go.com"></form><!-- host-fullwidth -->
+<form action="http://你好你好"></form><!-- host-idn-unicode-han -->
+<form action="http://192.168.0.257/"></form><!-- host-IP-address-broken -->
+<form action="//foo/bar"></form><!-- scheme-schemeless-relative -->
+<form action="/"></form><!-- path-slash-only-relative -->
+<form action="/a/b/c"></form><!-- path-simple-relative -->
+<form action="/a%2fc"></form><!-- path-percent-encoded-slash-relative -->
+<form action="/a/%2f/c"></form><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<form action="?"></form><!-- query-empty-no-path-relative -->
+<form action="#"></form><!-- fragment-empty-hash-only-no-path-relative -->
+<form action="#/"></form><!-- fragment-slash-relative -->
+<form action="#;?"></form><!-- fragment-semicolon-question-mark-relative -->
+<form action="#β"></form><!-- fragment-non-ascii-relative -->
+<form action="foo.com"></form><!-- scheme-none-relative -->
+<form action=":"></form><!-- path-colon-relative -->
+<form action=":a"></form><!-- path-leading-colon-letter-relative -->
+<form action=":foo.com"></form><!-- path-leading-colon-chars-relative -->
+<form action=":/"></form><!-- path-leading-colon-slash-relative -->
+<form action=":#"></form><!-- path-leading-colon-hash-relative -->
+<form action=":23"></form><!-- path-leading-colon-number-relative -->
+<form action="/:23"></form><!-- path-slash-colon-number-relative -->
+<form action="::"></form><!-- path-leading-colon-colon-relative -->
+<form action="::23"></form><!-- path-colon-colon-number-relative -->
+<form action="💩http://foo"></form><!-- path-starts-with-pile-of-poo -->
+<form action="/💩"></form><!-- path-slash-pile-of-poo -->
+<form action="File://foo/bar.html"></form><!-- scheme-file-uppercase -->
+<form action="file://C|/foo/bar"></form><!-- scheme-file-slash-slash-c-bar -->
+<form action="file://server/foo/bar"></form><!-- scheme-file-host-included -->
+<form action="file:///foo/bar.txt"></form><!-- scheme-file-host-empty -->
+<form action="file:"></form><!-- scheme-file-scheme-only -->
+<form action="file:/"></form><!-- scheme-file-slash-only -->
+<form action="file://"></form><!-- scheme-file-slash-slash-only -->
+<form action="file:///"></form><!-- scheme-file-slash-slash-slash-only -->
+<form action="file:test"></form><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action-whitespace-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action-whitespace-only-novalid.html
new file mode 100644
index 0000000000..23222c775d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action-whitespace-only-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty action is not valid</title>
+<form action="
+"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..d5a014727b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: fragment-backslash</title>
+<form action="#\"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..8dfcce917a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: fragment-contains-hash</title>
+<form action="http://foo/path#f#g"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..b95be6bed3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: fragment-leading-space</title>
+<form action="http://f:21/b# e"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-cr-novalid.html
new file mode 100644
index 0000000000..57be7114fb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: host-cr</title>
+<form action="http://example. org"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..df5e0d4a08
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: host-double-percent-encoded</title>
+<form action="http://%41.com"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..eab6133a82
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: host-double-percent-encoded-percent-encoded</title>
+<form action="http://%ef%bc%85%ef%bc%94%ef%bc%91.com"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-empty-novalid.html
new file mode 100644
index 0000000000..1879fc86df
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: host-empty</title>
+<form action="http://"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..e768978645
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: host-empty-userinfo-empty</title>
+<form action="http://@/www.example.com"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..dceaae334d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: host-empty-with-userinfo</title>
+<form action="http://user:pass@/"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..9d707cd4da
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: host-hostname-in-brackets</title>
+<form action="http://[www.google.com]/"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..6613d7ae5c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: host-invalid-unicode</title>
+<form action="http://﷐zyx.com"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..cbabc9d37c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: host-invalid-unicode-percent-encoded</title>
+<form action="http://%ef%b7%90zyx.com"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-newline-novalid.html
new file mode 100644
index 0000000000..f3c90d5ef6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: host-newline</title>
+<form action="http://example.
+org"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-space-novalid.html
new file mode 100644
index 0000000000..a115595119
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: host-space</title>
+<form action="http://example .org"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..88042b5ab8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: host-square-brackets-port-contains-colon</title>
+<form action="http://[1::2]:3:4"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-tab-novalid.html
new file mode 100644
index 0000000000..a36e6597f7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: host-tab</title>
+<form action="http://example .org"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..fc500a0b08
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: host-u0000-percent-encoded</title>
+<form action="http://%00.com"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..0f9f20a4a5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: host-u0000-percent-encoded-percent-encoded</title>
+<form action="http://%ef%bc%85%ef%bc%90%ef%bc%90.com"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..be8318b82c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: path-bare-percent-sign</title>
+<form action="http://example.com/foo%"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-contains-space-novalid.html
new file mode 100644
index 0000000000..4194fbad8d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: path-contains-space</title>
+<form action="/a/ /c"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..e41abc4a46
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: path-leading-backslash-at-sign</title>
+<form action="http://foo.com/\@"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..a967ca78a8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: path-leading-colon-backslash</title>
+<form action=":\"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..2f50a571e8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: path-leading-colon-chars-backslash</title>
+<form action=":foo.com\"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-leading-space-novalid.html
new file mode 100644
index 0000000000..fae910c82b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: path-leading-space</title>
+<form action="http://f:21/ b"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..cc43c39421
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: path-percent-encoded-malformed</title>
+<form action="http://example.com/foo/%2e%2"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..b90ce68330
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: path-relative-square-brackets</title>
+<form action="[61:24:74]:98"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-tab-novalid.html
new file mode 100644
index 0000000000..c08a28800c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: path-tab</title>
+<form action="http://example.com/foo bar"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..866ba41c58
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: path-trailing-space</title>
+<form action="http://f:21/b ?"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-u0091-novalid.html
new file mode 100644
index 0000000000..7f2bd6d669
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: path-u0091</title>
+<form action="http://example.com/foo‘"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-999999-novalid.html
new file mode 100644
index 0000000000..fe4932f5f6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: port-999999</title>
+<form action="http://f:999999/c"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-cr-novalid.html
new file mode 100644
index 0000000000..07413a3368
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: port-cr</title>
+<form action="http://f: /c"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..ca12578b0c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: port-leading-colon-bracket-colon</title>
+<form action="http://2001::1]:80"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..ab06dfb6fd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: port-leading-colon</title>
+<form action="http://2001::1"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..2192f87f6d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: port-leading-dash</title>
+<form action="http://foo:-80/"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..def350e6c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: port-multiple-letters</title>
+<form action="http://f:fifty-two/c"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-newline-novalid.html
new file mode 100644
index 0000000000..deeaa68a30
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: port-newline</title>
+<form action="http://f:
+/c"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-single-letter-novalid.html
new file mode 100644
index 0000000000..7aa8b83b63
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: port-single-letter</title>
+<form action="http://f:b/c"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-space-novalid.html
new file mode 100644
index 0000000000..27b549e461
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: port-space</title>
+<form action="http://f: /c"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-tab-novalid.html
new file mode 100644
index 0000000000..99f6b9b0d6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: port-tab</title>
+<form action="http://f: /c"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/query-leading-space-novalid.html
new file mode 100644
index 0000000000..5c18e9aaea
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: query-leading-space</title>
+<form action="http://f:21/b? d"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..103f75b79f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: query-trailing-space</title>
+<form action="http://f:21/b?d #"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..ba826225e7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/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>
+<form action="data:text/html,test#test"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..738714d1a7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-data-single-slash</title>
+<form action="data:/example.com/"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..7e944c6572
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-file-backslash</title>
+<form action="file:c:\foo\bar.html"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..c72ada0531
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-file-single-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-file-single-slash-c-bar</title>
+<form action="file:/C|/foo/bar"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..f8968f7911
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-file-slash-slash-abc-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-file-slash-slash-abc-bar</title>
+<form action="file://abc|/foo/bar"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..e4b1bbaadc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-file-triple-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-file-triple-slash-c-bar</title>
+<form action="file:///C|/foo/bar"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..ea5f35911c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-ftp-no-slash</title>
+<form action="ftp:example.com/"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..9629bb8a63
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-ftp-single-slash</title>
+<form action="ftp:/example.com/"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..672a812f83
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-http-backslash</title>
+<form action="http:\\foo.com\"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..e6f8f724e7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-http-no-slash-colon</title>
+<form action="http::@c:29"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..d53e1a2fd6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-http-no-slash</title>
+<form action="http:foo.com"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..506ac46f3a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-http-no-slash-square-bracket</title>
+<form action="http:[61:27]/:foo"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..047e218b07
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-http-single-slash</title>
+<form action="http:/example.com/"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..8cb2a7f583
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-https-no-slash</title>
+<form action="https:example.com/"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..be422fdbff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-https-single-slash</title>
+<form action="https:/example.com/"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..6090097a68
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-trailing-cr</title>
+<form action="a: foo.com"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..50c64a94f7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-trailing-newline</title>
+<form action="a:
+foo.com"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..8632616c2c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-trailing-space</title>
+<form action="a: foo.com"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..cd39c5ad62
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: scheme-trailing-tab</title>
+<form action="a: foo.com"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..37ef4f2018
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: userinfo-backslash</title>
+<form action="http://a\b:c\d@foo.com"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..1ed632962c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: userinfo-password-bad-chars</title>
+<form action="http://&a:foo(b]c@d:2/"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..33460c9ffb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: userinfo-password-contains-pile-of-poo</title>
+<form action="http://foo:💩@example.com"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..03cf279264
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: userinfo-username-contains-at-sign</title>
+<form action="http://::@c@d:2"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..ccc38c24f4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/form/action/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid action: userinfo-username-contains-pile-of-poo</title>
+<form action="http://💩:foo@example.com"></form>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/h1/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/h1/model-isvalid.html
new file mode 100644
index 0000000000..3e92f42e54
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/h1/model-isvalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;h1&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <h1 class="class" id="id" lang="en">text</h1>
+
+ <!-- can contain strictly inline -->
+ <h1>text <em>elem</em></h1>
+
+ <!-- can contain interactive -->
+ <h1><a>text</a></h1>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/h1/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/h1/model-novalid.html
new file mode 100644
index 0000000000..86eafc073d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/h1/model-novalid.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;h1&gt;</title>
+</head>
+<body>
+ <!-- is not strictly inline -->
+ <p><dfn>text
+ <h1>more text</h1>
+ </dfn></p>
+
+ <!-- is not structured inline -->
+ <p>text
+ <h1>more text</h1>
+ </p>
+
+ <!-- cannot contain blocks -->
+ <h1>
+ <p>p1</p>
+ <p>p2</p>
+ </h1>
+
+ <!-- cannot contain structured inline -->
+ <h1>text
+ <ul><li>text</li></ul>
+ </h1>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/h2/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/h2/model-isvalid.html
new file mode 100644
index 0000000000..d1767ecaf6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/h2/model-isvalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;h2&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <h2 class="class" id="id" lang="en">text</h2>
+
+ <!-- can contain strictly inline -->
+ <h2>text <em>elem</em></h2>
+
+ <!-- can contain interactive -->
+ <h2><a>text</a></h2>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/h2/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/h2/model-novalid.html
new file mode 100644
index 0000000000..f4374f4fbf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/h2/model-novalid.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;h2&gt;</title>
+</head>
+<body>
+ <!-- is not strictly inline -->
+ <p><dfn>text
+ <h2>more text</h2>
+ </dfn></p>
+
+ <!-- is not structured inline -->
+ <p>text
+ <h2>more text</h2>
+ </p>
+
+ <!-- cannot contain blocks -->
+ <h2>
+ <p>p1</p>
+ <p>p2</p>
+ </h2>
+
+ <!-- cannot contain structured inline -->
+ <h2>text
+ <ul><li>text</li></ul>
+ </h2>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/h3/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/h3/model-isvalid.html
new file mode 100644
index 0000000000..29a870ea4e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/h3/model-isvalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;h3&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <h3 class="class" id="id" lang="en">text</h3>
+
+ <!-- can contain strictly inline -->
+ <h3>text <em>elem</em></h3>
+
+ <!-- can contain interactive -->
+ <h3><a>text</a></h3>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/h3/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/h3/model-novalid.html
new file mode 100644
index 0000000000..8df7903332
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/h3/model-novalid.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;h3&gt;</title>
+</head>
+<body>
+ <!-- is not strictly inline -->
+ <p><dfn>text
+ <h3>more text</h3>
+ </dfn></p>
+
+ <!-- is not structured inline -->
+ <p>text
+ <h3>more text</h3>
+ </p>
+
+ <!-- cannot contain blocks -->
+ <h3>
+ <p>p1</p>
+ <p>p2</p>
+ </h3>
+
+ <!-- cannot contain structured inline -->
+ <h3>text
+ <ul><li>text</li></ul>
+ </h3>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/h4/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/h4/model-isvalid.html
new file mode 100644
index 0000000000..657ed6a333
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/h4/model-isvalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;h4&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <h4 class="class" id="id" lang="en">text</h4>
+
+ <!-- can contain strictly inline -->
+ <h4>text <em>elem</em></h4>
+
+ <!-- can contain interactive -->
+ <h4><a>text</a></h4>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/h4/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/h4/model-novalid.html
new file mode 100644
index 0000000000..1a0b1f28e3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/h4/model-novalid.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;h4&gt;</title>
+</head>
+<body>
+ <!-- is not strictly inline -->
+ <p><dfn>text
+ <h4>more text</h4>
+ </dfn></p>
+
+ <!-- is not structured inline -->
+ <p>text
+ <h4>more text</h4>
+ </p>
+
+ <!-- cannot contain blocks -->
+ <h4>
+ <p>p1</p>
+ <p>p2</p>
+ </h4>
+
+ <!-- cannot contain structured inline -->
+ <h4>text
+ <ul><li>text</li></ul>
+ </h4>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/h5/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/h5/model-isvalid.html
new file mode 100644
index 0000000000..6060e03849
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/h5/model-isvalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;h5&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <h5 class="class" id="id" lang="en">text</h5>
+
+ <!-- can contain strictly inline -->
+ <h5>text <em>elem</em></h5>
+
+ <!-- can contain interactive -->
+ <h5><a>text</a></h5>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/h5/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/h5/model-novalid.html
new file mode 100644
index 0000000000..c88504826f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/h5/model-novalid.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;h5&gt;</title>
+</head>
+<body>
+ <!-- is not strictly inline -->
+ <p><dfn>text
+ <h5>more text</h5>
+ </dfn></p>
+
+ <!-- is not structured inline -->
+ <p>text
+ <h5>more text</h5>
+ </p>
+
+ <!-- cannot contain blocks -->
+ <h5>
+ <p>p1</p>
+ <p>p2</p>
+ </h5>
+
+ <!-- cannot contain structured inline -->
+ <h5>text
+ <ul><li>text</li></ul>
+ </h5>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/h6/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/h6/model-isvalid.html
new file mode 100644
index 0000000000..9f971bd6ff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/h6/model-isvalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;h6&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <h6 class="class" id="id" lang="en">text</h6>
+
+ <!-- can contain strictly inline -->
+ <h6>text <em>elem</em></h6>
+
+ <!-- can contain interactive -->
+ <h6><a>text</a></h6>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/h6/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/h6/model-novalid.html
new file mode 100644
index 0000000000..a9a393e4c4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/h6/model-novalid.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;h6&gt;</title>
+</head>
+<body>
+ <!-- is not strictly inline -->
+ <p><dfn>text
+ <h6>more text</h6>
+ </dfn></p>
+
+ <!-- is not structured inline -->
+ <p>text
+ <h6>more text</h6>
+ </p>
+
+ <!-- cannot contain blocks -->
+ <h6>
+ <p>p1</p>
+ <p>p2</p>
+ </h6>
+
+ <!-- cannot contain structured inline -->
+ <h6>text
+ <ul><li>text</li></ul>
+ </h6>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/header/nested-footer-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/header/nested-footer-novalid.html
new file mode 100644
index 0000000000..958f974ee0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/header/nested-footer-novalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>"header" with "footer" descendant</title>
+</head>
+<body>
+<header>
+<footer></footer>
+</header>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/header/nested-header-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/header/nested-header-novalid.html
new file mode 100644
index 0000000000..0a4d8b51ce
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/header/nested-header-novalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>"header" with "header" descendant</title>
+</head>
+<body>
+<header>
+<header></header>
+</header>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/hr/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/hr/model-isvalid.html
new file mode 100644
index 0000000000..4202896bd5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/hr/model-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;hr&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <hr class="class" id="id" lang="en">
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/hr/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/hr/model-novalid.html
new file mode 100644
index 0000000000..1c76bfb6b1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/hr/model-novalid.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;hr&gt;</title>
+</head>
+<body>
+ <!-- is not structured inline -->
+ <p>
+ <ul>
+ <li>
+ <hr>
+ </li>
+ </ul>
+ </p>
+
+ <!-- is not strictly inline -->
+ <p><dfn>text
+ <hr>
+ </dfn></p>
+
+ <!-- must be empty -->
+ <hr>
+ <p>p1</p>
+
+ <hr><em>text</em>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/i/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/i/model-isvalid.html
new file mode 100644
index 0000000000..4d0fe7a37c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/i/model-isvalid.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;i&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><i class="class" lang="en">text</i></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><i class="class" lang="en">text</i></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <i></i></p>
+ <p>text <dfn><i></i></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><i><a>text</a></i></p>
+ <p><dfn><i><a>text</a></i></dfn></p>
+
+ <!-- cannot contain structured inline -->
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/i/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/i/model-novalid.html
new file mode 100644
index 0000000000..892bb395e2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/i/model-novalid.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;i&gt;</title>
+</head>
+<body>
+ <!-- not a block -->
+ <i>text</i>
+
+ <!-- cannot contain structured inline -->
+ <p><i><ul><li>text</li></ul></i></p>
+
+ <!-- cannot contain interactive if parent forbids interactive -->
+ <p><a><i><a>text</a></i></a></p>
+ <p><a><dfn><i><a>text</a></i></dfn></a></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-isvalid.html
new file mode 100644
index 0000000000..f726659dc2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-isvalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;iframe&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><iframe
+ src="uri"
+ class="class"
+ lang="en"></iframe></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><iframe
+ src="uri"
+ class="class"
+ lang="en"></iframe></dfn></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-novalid.html
new file mode 100644
index 0000000000..c2db35294b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/model-novalid.html
@@ -0,0 +1,74 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;iframe&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><iframe
+ name="frame1"
+ src="uri"
+ width="2"
+ height="90"
+ frameborder="0"
+ scrolling="yes"
+ class="class"
+ lang="en"></iframe></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><iframe
+ name="frame1"
+ src="uri"
+ width="2"
+ height="90"
+ frameborder="1"
+ scrolling="no"
+ class="class"
+ lang="en"></iframe></dfn></p>
+
+ <!-- is block -->
+ <iframe
+ name="frame1"
+ src="uri"
+ width="2"
+ height="90"
+ frameborder="0"
+ scrolling="auto"
+ class="class"
+ lang="en"></iframe>
+
+ <!-- can contain inline while in inline context -->
+ <p>paragraph
+ <iframe>
+ <em>some</em> <ul><li>inline</li></ul> content
+ </iframe>
+ </p>
+ <!-- can contain strictly inline while in strictly inline context -->
+ <p><dfn>strictly inline
+ <iframe>
+ <em>text</em>
+ </iframe>
+ </dfn></p>
+
+ <!-- can contain blocks while in block context -->
+ <iframe>
+ <p>text</p>
+ </iframe>
+
+ <!-- can contain interactive if ancestor does not forbid it -->
+ <p>paragraph
+ <iframe>
+ <a>link</a>
+ </iframe>
+ </p>
+ <p><dfn>strictly inline
+ <iframe>
+ <a>link</a>
+ </iframe>
+ </dfn></p>
+ <iframe>
+ <p><a>link</a></p>
+ </iframe>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-empty-novalid.html
new file mode 100644
index 0000000000..db0bd30947
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty src is not valid</title>
+<iframe src=""></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-isvalid.html
new file mode 100644
index 0000000000..6b3856161d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid src</title>
+<iframe src="a:foo.com"></iframe><!-- scheme-private -->
+<iframe src="foo:/"></iframe><!-- scheme-private-slash -->
+<iframe src="foo://"></iframe><!-- scheme-private-slash-slash -->
+<iframe src="foo:/bar.com/"></iframe><!-- scheme-private-path -->
+<iframe src="foo://///////"></iframe><!-- scheme-private-path-leading-slashes-only -->
+<iframe src="foo://///////bar.com/"></iframe><!-- scheme-private-path-leading-slashes-chars -->
+<iframe src="foo:////://///"></iframe><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<iframe src="c:/foo"></iframe><!-- scheme-private-single-letter -->
+<iframe src="madeupscheme:/example.com/"></iframe><!-- scheme-private-single-slash -->
+<iframe src="file:/example.com/"></iframe><!-- scheme-file-single-slash -->
+<iframe src="ftps:/example.com/"></iframe><!-- scheme-ftps-single-slash -->
+<iframe src="gopher:/example.com/"></iframe><!-- scheme-gopher-single-slash -->
+<iframe src="ws:/example.com/"></iframe><!-- scheme-ws-single-slash -->
+<iframe src="wss:/example.com/"></iframe><!-- scheme-wss-single-slash -->
+<iframe src="javascript:/example.com/"></iframe><!-- scheme-javascript-single-slash -->
+<iframe src="mailto:/example.com/"></iframe><!-- scheme-mailto-single-slash -->
+<iframe src="madeupscheme:example.com/"></iframe><!-- scheme-private-no-slash -->
+<iframe src="ftps:example.com/"></iframe><!-- scheme-ftps-no-slash -->
+<iframe src="gopher:example.com/"></iframe><!-- scheme-gopher-no-slash -->
+<iframe src="wss:example.com/"></iframe><!-- scheme-wss-no-slash -->
+<iframe src="mailto:example.com/"></iframe><!-- scheme-mailto-no-slash -->
+<iframe src="data:text/plain,foo"></iframe><!-- scheme-data-no-slash -->
+<iframe src="http://user:pass@foo:21/bar;par?b#c"></iframe><!-- userinfo -->
+<iframe src="http://[2001::1]"></iframe><!-- host-ipv6 -->
+<iframe src="http://[2001::1]:80"></iframe><!-- host-ipv6-port -->
+<iframe src="http://f:/c"></iframe><!-- port-none-but-colon -->
+<iframe src="http://f:0/c"></iframe><!-- port-0 -->
+<iframe src="http://f:00000000000000/c"></iframe><!-- port-00000000000000 -->
+<iframe src="http://f:00000000000000000000080/c"></iframe><!-- port-00000000000000000000080 -->
+<iframe src="http://a:b@c:29/d"></iframe><!-- userinfo-host-port-path -->
+<iframe src="http://foo.com:b@d/"></iframe><!-- userinfo-username-non-alpha -->
+<iframe src="http://foo/abcd?efgh?ijkl"></iframe><!-- query-contains-question-mark -->
+<iframe src="http://foo/abcd#foo?bar"></iframe><!-- fragment-contains-question-mark -->
+<iframe src="http://example.com/foo/%2e"></iframe><!-- path-percent-encoded-dot -->
+<iframe src="http://example.com/%20foo"></iframe><!-- path-percent-encoded-space -->
+<iframe src="http://example.com/©zbar"></iframe><!-- path-non-ascii -->
+<iframe src="http://example.com/foo%41%7a"></iframe><!-- path-percent-encoded-multiple -->
+<iframe src="http://example.com/foo%91"></iframe><!-- path-percent-encoded-u0091 -->
+<iframe src="http://example.com/foo%00"></iframe><!-- path-percent-encoded-u0000 -->
+<iframe src="http://example.com/%3A%3a%3C%3c"></iframe><!-- path-percent-encoded-mixed-case -->
+<iframe src="http://example.com/你好你好"></iframe><!-- path-unicode-han -->
+<iframe src="http://example.com//foo"></iframe><!-- path-uFEFF -->
+<iframe src="http://example.com/‮/foo/‭/bar"></iframe><!-- path-u202E-u202D -->
+<iframe src="http://💩"></iframe><!-- host-is-pile-of-poo -->
+<iframe src="http💩//:foo"></iframe><!-- path-contains-pile-of-poo -->
+<iframe src="http://example.com/foo?💩"></iframe><!-- query-contains-pile-of-poo -->
+<iframe src="http://example.com/foo#💩"></iframe><!-- fragment-contains-pile-of-poo -->
+<iframe src="http://192.0x00A80001"></iframe><!-- host-192.0x00A80001 -->
+<iframe src="http://%25DOMAIN:foobar@foodomain.com"></iframe><!-- userinfo-username-contains-percent-encoded -->
+<iframe src="http://@www.example.com"></iframe><!-- userinfo-empty -->
+<iframe src="http://:b@www.example.com"></iframe><!-- userinfo-user-empty -->
+<iframe src="http://a:@www.example.com"></iframe><!-- userinfo-password-empty -->
+<iframe src="http://GOO​⁠goo.com"></iframe><!-- host-exotic-whitespace -->
+<iframe src="http://www.foo。bar.com"></iframe><!-- host-exotic-dot -->
+<iframe src="http://Go.com"></iframe><!-- host-fullwidth -->
+<iframe src="http://你好你好"></iframe><!-- host-idn-unicode-han -->
+<iframe src="http://192.168.0.257/"></iframe><!-- host-IP-address-broken -->
+<iframe src="//foo/bar"></iframe><!-- scheme-schemeless-relative -->
+<iframe src="/"></iframe><!-- path-slash-only-relative -->
+<iframe src="/a/b/c"></iframe><!-- path-simple-relative -->
+<iframe src="/a%2fc"></iframe><!-- path-percent-encoded-slash-relative -->
+<iframe src="/a/%2f/c"></iframe><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<iframe src="?"></iframe><!-- query-empty-no-path-relative -->
+<iframe src="#"></iframe><!-- fragment-empty-hash-only-no-path-relative -->
+<iframe src="#/"></iframe><!-- fragment-slash-relative -->
+<iframe src="#;?"></iframe><!-- fragment-semicolon-question-mark-relative -->
+<iframe src="#β"></iframe><!-- fragment-non-ascii-relative -->
+<iframe src="foo.com"></iframe><!-- scheme-none-relative -->
+<iframe src=":"></iframe><!-- path-colon-relative -->
+<iframe src=":a"></iframe><!-- path-leading-colon-letter-relative -->
+<iframe src=":foo.com"></iframe><!-- path-leading-colon-chars-relative -->
+<iframe src=":/"></iframe><!-- path-leading-colon-slash-relative -->
+<iframe src=":#"></iframe><!-- path-leading-colon-hash-relative -->
+<iframe src=":23"></iframe><!-- path-leading-colon-number-relative -->
+<iframe src="/:23"></iframe><!-- path-slash-colon-number-relative -->
+<iframe src="::"></iframe><!-- path-leading-colon-colon-relative -->
+<iframe src="::23"></iframe><!-- path-colon-colon-number-relative -->
+<iframe src="💩http://foo"></iframe><!-- path-starts-with-pile-of-poo -->
+<iframe src="/💩"></iframe><!-- path-slash-pile-of-poo -->
+<iframe src="File://foo/bar.html"></iframe><!-- scheme-file-uppercase -->
+<iframe src="file://C|/foo/bar"></iframe><!-- scheme-file-slash-slash-c-bar -->
+<iframe src="file://server/foo/bar"></iframe><!-- scheme-file-host-included -->
+<iframe src="file:///foo/bar.txt"></iframe><!-- scheme-file-host-empty -->
+<iframe src="file:"></iframe><!-- scheme-file-scheme-only -->
+<iframe src="file:/"></iframe><!-- scheme-file-slash-only -->
+<iframe src="file://"></iframe><!-- scheme-file-slash-slash-only -->
+<iframe src="file:///"></iframe><!-- scheme-file-slash-slash-slash-only -->
+<iframe src="file:test"></iframe><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-whitespace-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-whitespace-only-novalid.html
new file mode 100644
index 0000000000..12b307da28
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src-whitespace-only-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty src is not valid</title>
+<iframe src="
+"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..f1e149373e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-backslash</title>
+<iframe src="#\"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..d781f871ac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-contains-hash</title>
+<iframe src="http://foo/path#f#g"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..f567ab48cc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-leading-space</title>
+<iframe src="http://f:21/b# e"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-cr-novalid.html
new file mode 100644
index 0000000000..dfa8d99b14
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-cr</title>
+<iframe src="http://example. org"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..322e4ec418
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://%41.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..1a505f0704
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://%ef%bc%85%ef%bc%94%ef%bc%91.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-novalid.html
new file mode 100644
index 0000000000..c7c6751511
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-empty</title>
+<iframe src="http://"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..f44f6ceb60
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://@/www.example.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..dfb4c8af7c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://user:pass@/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..27c546addb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://[www.google.com]/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..9cf93c27f9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-invalid-unicode</title>
+<iframe src="http://﷐zyx.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..c5d371e432
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://%ef%b7%90zyx.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-newline-novalid.html
new file mode 100644
index 0000000000..f914a5c84d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-newline</title>
+<iframe src="http://example.
+org"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-space-novalid.html
new file mode 100644
index 0000000000..00567d593d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-space</title>
+<iframe src="http://example .org"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..ae72842756
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://[1::2]:3:4"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-tab-novalid.html
new file mode 100644
index 0000000000..d36f125789
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-tab</title>
+<iframe src="http://example .org"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..509184a6a9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://%00.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..7599cc1194
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://%ef%bc%85%ef%bc%90%ef%bc%90.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..61fbdf004b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://example.com/foo%"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-contains-space-novalid.html
new file mode 100644
index 0000000000..d11dfb92ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-contains-space</title>
+<iframe src="/a/ /c"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..f3d0d22b6c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://foo.com/\@"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..bf8a1ca17c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src=":\"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..3db3992c06
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src=":foo.com\"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-space-novalid.html
new file mode 100644
index 0000000000..56f349685b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-leading-space</title>
+<iframe src="http://f:21/ b"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..db315eddec
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://example.com/foo/%2e%2"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..9417972d6a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="[61:24:74]:98"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-tab-novalid.html
new file mode 100644
index 0000000000..0b0a6d7554
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-tab</title>
+<iframe src="http://example.com/foo bar"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..e79f6456f2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-trailing-space</title>
+<iframe src="http://f:21/b ?"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-u0091-novalid.html
new file mode 100644
index 0000000000..e03e054f08
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-u0091</title>
+<iframe src="http://example.com/foo‘"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-999999-novalid.html
new file mode 100644
index 0000000000..4f2290d2a5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-999999</title>
+<iframe src="http://f:999999/c"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-cr-novalid.html
new file mode 100644
index 0000000000..b2df05bb6f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-cr</title>
+<iframe src="http://f: /c"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..41280d20e8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://2001::1]:80"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..4a4a6a0456
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-colon</title>
+<iframe src="http://2001::1"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..052e77e051
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-dash</title>
+<iframe src="http://foo:-80/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..d2b6be6ae6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-multiple-letters</title>
+<iframe src="http://f:fifty-two/c"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-newline-novalid.html
new file mode 100644
index 0000000000..adff8ec67c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-newline</title>
+<iframe src="http://f:
+/c"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-single-letter-novalid.html
new file mode 100644
index 0000000000..fb149be62e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-single-letter</title>
+<iframe src="http://f:b/c"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-space-novalid.html
new file mode 100644
index 0000000000..aafdfe523e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-space</title>
+<iframe src="http://f: /c"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-tab-novalid.html
new file mode 100644
index 0000000000..de0ce71ae8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-tab</title>
+<iframe src="http://f: /c"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/query-leading-space-novalid.html
new file mode 100644
index 0000000000..28014d7044
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-leading-space</title>
+<iframe src="http://f:21/b? d"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..15f2db6f77
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-trailing-space</title>
+<iframe src="http://f:21/b?d #"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..504824ca11
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="data:text/html,test#test"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..ef6b1f9db8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="data:/example.com/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..debfa48520
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-file-backslash</title>
+<iframe src="file:c:\foo\bar.html"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..194ff491c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="file:/C|/foo/bar"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..d557b6bf1c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="file://abc|/foo/bar"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..1584da92a6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="file:///C|/foo/bar"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..d8a2d18fb9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="ftp:example.com/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..eccb4dd75f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="ftp:/example.com/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..8e9fe24052
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-backslash</title>
+<iframe src="http:\\foo.com\"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..0546f29cbc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http::@c:29"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..d77d7e5d57
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http:foo.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..f66c4397fa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http:[61:27]/:foo"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..12a75c3ca4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http:/example.com/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..18dc42fa34
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="https:example.com/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..142e7b0e1a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="https:/example.com/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..dfc74a2126
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-cr</title>
+<iframe src="a: foo.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..7c7dca7708
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-newline</title>
+<iframe src="a:
+foo.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..4d439a76de
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-space</title>
+<iframe src="a: foo.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..5542fe93d7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-tab</title>
+<iframe src="a: foo.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..099e4861e9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-backslash</title>
+<iframe src="http://a\b:c\d@foo.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..084b8f0b9f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://&a:foo(b]c@d:2/"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..85aadb6339
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://foo:💩@example.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..4ff2b75c53
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://::@c@d:2"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/src/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..41fc10e292
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/iframe/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>
+<iframe src="http://💩:foo@example.com"></iframe>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/model-isvalid.html
new file mode 100644
index 0000000000..b0c7b33f02
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/model-isvalid.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;img&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><a href='foo'><img
+ src="url"
+ alt="text"
+ width="42"
+ height="095"
+ ismap="ismap"
+ class="class"
+ lang="en"></a></p>
+
+ <!-- is strictly inline -->
+ <p><a href='foo'><dfn><img
+ src="url"
+ alt="text"
+ width="42"
+ height="095"
+ ismap="ismap"
+ class="class"
+ lang="en"></dfn></a></p>
+
+ <!-- src and alt are required, others optional -->
+ <p><img src="ur" alt="text"></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/model-novalid.html
new file mode 100644
index 0000000000..d16a806416
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/model-novalid.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;img&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><img
+ src="url"
+ alt="text"
+ width="42"
+ height="095"
+ usemap="url"
+ ismap="ismap"
+ class="class"
+ lang="en"></img></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><img
+ src="url"
+ alt="text"
+ width="42"
+ height="095"
+ usemap="url"
+ ismap="ismap"
+ class="class"
+ lang="en"></img></dfn></p>
+
+ <!-- src and alt are required, others optional -->
+ <p><img src="ur" alt="text"></img></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src-empty-novalid.html
new file mode 100644
index 0000000000..d585907509
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty src is not valid</title>
+<img src="" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src-isvalid.html
new file mode 100644
index 0000000000..66474dbf5d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid src</title>
+<img src="a:foo.com" alt><!-- scheme-private -->
+<img src="foo:/" alt><!-- scheme-private-slash -->
+<img src="foo://" alt><!-- scheme-private-slash-slash -->
+<img src="foo:/bar.com/" alt><!-- scheme-private-path -->
+<img src="foo://///////" alt><!-- scheme-private-path-leading-slashes-only -->
+<img src="foo://///////bar.com/" alt><!-- scheme-private-path-leading-slashes-chars -->
+<img src="foo:////://///" alt><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<img src="c:/foo" alt><!-- scheme-private-single-letter -->
+<img src="madeupscheme:/example.com/" alt><!-- scheme-private-single-slash -->
+<img src="file:/example.com/" alt><!-- scheme-file-single-slash -->
+<img src="ftps:/example.com/" alt><!-- scheme-ftps-single-slash -->
+<img src="gopher:/example.com/" alt><!-- scheme-gopher-single-slash -->
+<img src="ws:/example.com/" alt><!-- scheme-ws-single-slash -->
+<img src="wss:/example.com/" alt><!-- scheme-wss-single-slash -->
+<img src="javascript:/example.com/" alt><!-- scheme-javascript-single-slash -->
+<img src="mailto:/example.com/" alt><!-- scheme-mailto-single-slash -->
+<img src="madeupscheme:example.com/" alt><!-- scheme-private-no-slash -->
+<img src="ftps:example.com/" alt><!-- scheme-ftps-no-slash -->
+<img src="gopher:example.com/" alt><!-- scheme-gopher-no-slash -->
+<img src="wss:example.com/" alt><!-- scheme-wss-no-slash -->
+<img src="mailto:example.com/" alt><!-- scheme-mailto-no-slash -->
+<img src="data:text/plain,foo" alt><!-- scheme-data-no-slash -->
+<img src="http://user:pass@foo:21/bar;par?b#c" alt><!-- userinfo -->
+<img src="http://[2001::1]" alt><!-- host-ipv6 -->
+<img src="http://[2001::1]:80" alt><!-- host-ipv6-port -->
+<img src="http://f:/c" alt><!-- port-none-but-colon -->
+<img src="http://f:0/c" alt><!-- port-0 -->
+<img src="http://f:00000000000000/c" alt><!-- port-00000000000000 -->
+<img src="http://f:00000000000000000000080/c" alt><!-- port-00000000000000000000080 -->
+<img src="http://a:b@c:29/d" alt><!-- userinfo-host-port-path -->
+<img src="http://foo.com:b@d/" alt><!-- userinfo-username-non-alpha -->
+<img src="http://foo/abcd?efgh?ijkl" alt><!-- query-contains-question-mark -->
+<img src="http://foo/abcd#foo?bar" alt><!-- fragment-contains-question-mark -->
+<img src="http://example.com/foo/%2e" alt><!-- path-percent-encoded-dot -->
+<img src="http://example.com/%20foo" alt><!-- path-percent-encoded-space -->
+<img src="http://example.com/©zbar" alt><!-- path-non-ascii -->
+<img src="http://example.com/foo%41%7a" alt><!-- path-percent-encoded-multiple -->
+<img src="http://example.com/foo%91" alt><!-- path-percent-encoded-u0091 -->
+<img src="http://example.com/foo%00" alt><!-- path-percent-encoded-u0000 -->
+<img src="http://example.com/%3A%3a%3C%3c" alt><!-- path-percent-encoded-mixed-case -->
+<img src="http://example.com/你好你好" alt><!-- path-unicode-han -->
+<img src="http://example.com//foo" alt><!-- path-uFEFF -->
+<img src="http://example.com/‮/foo/‭/bar" alt><!-- path-u202E-u202D -->
+<img src="http://💩" alt><!-- host-is-pile-of-poo -->
+<img src="http💩//:foo" alt><!-- path-contains-pile-of-poo -->
+<img src="http://example.com/foo?💩" alt><!-- query-contains-pile-of-poo -->
+<img src="http://example.com/foo#💩" alt><!-- fragment-contains-pile-of-poo -->
+<img src="http://192.0x00A80001" alt><!-- host-192.0x00A80001 -->
+<img src="http://%25DOMAIN:foobar@foodomain.com" alt><!-- userinfo-username-contains-percent-encoded -->
+<img src="http://@www.example.com" alt><!-- userinfo-empty -->
+<img src="http://:b@www.example.com" alt><!-- userinfo-user-empty -->
+<img src="http://a:@www.example.com" alt><!-- userinfo-password-empty -->
+<img src="http://GOO​⁠goo.com" alt><!-- host-exotic-whitespace -->
+<img src="http://www.foo。bar.com" alt><!-- host-exotic-dot -->
+<img src="http://Go.com" alt><!-- host-fullwidth -->
+<img src="http://你好你好" alt><!-- host-idn-unicode-han -->
+<img src="http://192.168.0.257/" alt><!-- host-IP-address-broken -->
+<img src="//foo/bar" alt><!-- scheme-schemeless-relative -->
+<img src="/" alt><!-- path-slash-only-relative -->
+<img src="/a/b/c" alt><!-- path-simple-relative -->
+<img src="/a%2fc" alt><!-- path-percent-encoded-slash-relative -->
+<img src="/a/%2f/c" alt><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<img src="?" alt><!-- query-empty-no-path-relative -->
+<img src="#" alt><!-- fragment-empty-hash-only-no-path-relative -->
+<img src="#/" alt><!-- fragment-slash-relative -->
+<img src="#;?" alt><!-- fragment-semicolon-question-mark-relative -->
+<img src="#β" alt><!-- fragment-non-ascii-relative -->
+<img src="foo.com" alt><!-- scheme-none-relative -->
+<img src=":" alt><!-- path-colon-relative -->
+<img src=":a" alt><!-- path-leading-colon-letter-relative -->
+<img src=":foo.com" alt><!-- path-leading-colon-chars-relative -->
+<img src=":/" alt><!-- path-leading-colon-slash-relative -->
+<img src=":#" alt><!-- path-leading-colon-hash-relative -->
+<img src=":23" alt><!-- path-leading-colon-number-relative -->
+<img src="/:23" alt><!-- path-slash-colon-number-relative -->
+<img src="::" alt><!-- path-leading-colon-colon-relative -->
+<img src="::23" alt><!-- path-colon-colon-number-relative -->
+<img src="💩http://foo" alt><!-- path-starts-with-pile-of-poo -->
+<img src="/💩" alt><!-- path-slash-pile-of-poo -->
+<img src="File://foo/bar.html" alt><!-- scheme-file-uppercase -->
+<img src="file://C|/foo/bar" alt><!-- scheme-file-slash-slash-c-bar -->
+<img src="file://server/foo/bar" alt><!-- scheme-file-host-included -->
+<img src="file:///foo/bar.txt" alt><!-- scheme-file-host-empty -->
+<img src="file:" alt><!-- scheme-file-scheme-only -->
+<img src="file:/" alt><!-- scheme-file-slash-only -->
+<img src="file://" alt><!-- scheme-file-slash-slash-only -->
+<img src="file:///" alt><!-- scheme-file-slash-slash-slash-only -->
+<img src="file:test" alt><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src-whitespace-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src-whitespace-only-novalid.html
new file mode 100644
index 0000000000..cc0140808f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src-whitespace-only-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty src is not valid</title>
+<img src="
+" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..f54d6cbadd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-backslash</title>
+<img src="#\" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..59829cfee4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-contains-hash</title>
+<img src="http://foo/path#f#g" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..c7420ec545
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-leading-space</title>
+<img src="http://f:21/b# e" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-cr-novalid.html
new file mode 100644
index 0000000000..2b14d6bda3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-cr</title>
+<img src="http://example. org" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..d0fcc7336c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://%41.com" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..6be9a8a4f7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://%ef%bc%85%ef%bc%94%ef%bc%91.com" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-empty-novalid.html
new file mode 100644
index 0000000000..41191edb5a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-empty</title>
+<img src="http://" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..8f02f8e9c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://@/www.example.com" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..b0b86cc303
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://user:pass@/" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..f17042f721
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://[www.google.com]/" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..37d687ab5f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-invalid-unicode</title>
+<img src="http://﷐zyx.com" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..7d905ea3b9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://%ef%b7%90zyx.com" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-newline-novalid.html
new file mode 100644
index 0000000000..10bb356b35
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-newline</title>
+<img src="http://example.
+org" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-space-novalid.html
new file mode 100644
index 0000000000..633ea951b3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-space</title>
+<img src="http://example .org" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..e37c9070fd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://[1::2]:3:4" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-tab-novalid.html
new file mode 100644
index 0000000000..c2b47937a8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-tab</title>
+<img src="http://example .org" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..524834a947
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://%00.com" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..2b19cb8626
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://%ef%bc%85%ef%bc%90%ef%bc%90.com" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..368e940411
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://example.com/foo%" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-contains-space-novalid.html
new file mode 100644
index 0000000000..7b1da54cb5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-contains-space</title>
+<img src="/a/ /c" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..ded9f27fc6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://foo.com/\@" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..7bebfa8b67
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src=":\" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..f1fe58ebdb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src=":foo.com\" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-leading-space-novalid.html
new file mode 100644
index 0000000000..c1fc4d0b7c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-leading-space</title>
+<img src="http://f:21/ b" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..62bb73054d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://example.com/foo/%2e%2" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..da8bcd7257
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="[61:24:74]:98" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-tab-novalid.html
new file mode 100644
index 0000000000..42e555e683
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-tab</title>
+<img src="http://example.com/foo bar" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..98812cb9a6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-trailing-space</title>
+<img src="http://f:21/b ?" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-u0091-novalid.html
new file mode 100644
index 0000000000..a15047c3ec
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-u0091</title>
+<img src="http://example.com/foo‘" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-999999-novalid.html
new file mode 100644
index 0000000000..0c7d01801d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-999999</title>
+<img src="http://f:999999/c" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-cr-novalid.html
new file mode 100644
index 0000000000..49e6a1a0a7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-cr</title>
+<img src="http://f: /c" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..6d7233039f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://2001::1]:80" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..75eba0ea32
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-colon</title>
+<img src="http://2001::1" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..9a66f5a411
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-dash</title>
+<img src="http://foo:-80/" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..fcb6e959f6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-multiple-letters</title>
+<img src="http://f:fifty-two/c" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-newline-novalid.html
new file mode 100644
index 0000000000..3d59a2e4bc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-newline</title>
+<img src="http://f:
+/c" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-single-letter-novalid.html
new file mode 100644
index 0000000000..1ba9df25c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-single-letter</title>
+<img src="http://f:b/c" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-space-novalid.html
new file mode 100644
index 0000000000..e59cda369a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-space</title>
+<img src="http://f: /c" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-tab-novalid.html
new file mode 100644
index 0000000000..9ae34b348e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-tab</title>
+<img src="http://f: /c" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/query-leading-space-novalid.html
new file mode 100644
index 0000000000..896fd99b3c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-leading-space</title>
+<img src="http://f:21/b? d" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..ac079b454f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-trailing-space</title>
+<img src="http://f:21/b?d #" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..964cdce93f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-data-contains-fragment-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>src warning: scheme-data-contains-fragment</title>
+<img src="data:text/html,test#test" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..d5e0ae53eb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="data:/example.com/" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..efb0fa5d77
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-file-backslash</title>
+<img src="file:c:\foo\bar.html" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..61a7697e3d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="file:/C|/foo/bar" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..b4196f42ee
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="file://abc|/foo/bar" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..15120451d4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="file:///C|/foo/bar" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..3c2e7439ac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="ftp:example.com/" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..f3218f03d1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="ftp:/example.com/" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..fa2a92173a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-backslash</title>
+<img src="http:\\foo.com\" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..16c9fa05a2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http::@c:29" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..0554f086c9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http:foo.com" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..518ba415f2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http:[61:27]/:foo" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..1c1ba05e0e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http:/example.com/" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..4057a3fa90
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="https:example.com/" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..00d028cab0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="https:/example.com/" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..c50d3ac163
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-cr</title>
+<img src="a: foo.com" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..ee97e7af19
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-newline</title>
+<img src="a:
+foo.com" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..f1f6b75723
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-space</title>
+<img src="a: foo.com" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..5649c226cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-tab</title>
+<img src="a: foo.com" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..5d5a271ea6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-backslash</title>
+<img src="http://a\b:c\d@foo.com" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..6bd0affb48
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://&a:foo(b]c@d:2/" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..78873928f9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://foo:💩@example.com" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..2e2002a49a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://::@c@d:2" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/src/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/src/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..306ea7782e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/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>
+<img src="http://💩:foo@example.com" alt>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/usemap-bad-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/usemap-bad-value-novalid.html
new file mode 100644
index 0000000000..708878a307
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/usemap-bad-value-novalid.html
@@ -0,0 +1 @@
+<!doctype html><meta charset=utf-8><title>usemap="#"</title>There should be an error.<img src="foo" alt="" usemap="#">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/usemap-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/usemap-isvalid.html
new file mode 100644
index 0000000000..0e165c8c54
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/usemap-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;img&gt; with usemap attribute</title>
+</head>
+<body>
+ <map name="foo"></map>
+ <p><img src="url" usemap="#foo" alt="bar"></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/width-height-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/width-height-isvalid.html
new file mode 100644
index 0000000000..32b46d7cff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/width-height-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>valid width and height</title>
+</head>
+<body>
+<img src="url" width="0" height="0" alt="bar"><!-- img with 0 value for width and height -->
+<img src="url" width="10" height="10" alt="bar"><!-- img with positive values for width and height -->
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/img/width-height-negative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/img/width-height-negative-novalid.html
new file mode 100644
index 0000000000..d324106f11
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/img/width-height-negative-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>img with negative values for width and height</title>
+</head>
+<body>
+<img src="url" width="-1" height="-1">
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-address-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-address-novalid.html
new file mode 100644
index 0000000000..a0646214e0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-address-novalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- address type must come before field type -->
+ <input autocomplete="country shipping">
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-empty-novalid.html
new file mode 100644
index 0000000000..20b35d678f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-empty-novalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- empty -->
+ <input autocomplete="">
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-section-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-section-novalid.html
new file mode 100644
index 0000000000..9d5e8a1187
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-section-novalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- work must come before field type -->
+ <input autocomplete="country section-blue">
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-text-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-text-isvalid.html
new file mode 100644
index 0000000000..2faa347bd2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-text-isvalid.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is valid</title>
+</head>
+<body>
+
+ <!-- country -->
+ <input autocomplete="country">
+ <input autocomplete="billing country">
+ <input autocomplete="section-blue country">
+ <input autocomplete="section-blue billing country">
+
+ <!-- cc-type -->
+ <input autocomplete="cc-type">
+ <input autocomplete="billing cc-type">
+ <input autocomplete="section-blue cc-type">
+ <input autocomplete="section-blue billing cc-type">
+
+ <!-- cc-exp-month -->
+ <input autocomplete="cc-exp-month">
+ <input autocomplete="billing cc-exp-month">
+ <input autocomplete="section-blue cc-exp-month">
+ <input autocomplete="section-blue billing cc-exp-month">
+
+ <!-- cc-exp-year -->
+ <input autocomplete="cc-exp-year">
+ <input autocomplete="billing cc-exp-year">
+ <input autocomplete="section-blue cc-exp-year">
+ <input autocomplete="section-blue billing cc-exp-year">
+ <!-- tel-country-code -->
+ <input autocomplete="work tel-country-code">
+ <input autocomplete="billing work tel-country-code">
+ <input autocomplete="section-blue work tel-country-code">
+ <input autocomplete="section-blue billing work tel-country-code">
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-token-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-token-novalid.html
new file mode 100644
index 0000000000..544ca79dfd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-token-novalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- unknown field type -->
+ <input autocomplete="qwerty">
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-work-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-work-novalid.html
new file mode 100644
index 0000000000..2ff29bd9cc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/autocomplete-work-novalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- work must come before field type -->
+ <input autocomplete="country work">
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/list-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/list-novalid.html
new file mode 100644
index 0000000000..63f43af1f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/list-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>invalid input/@list reference to datalist/@id</title>
+<meta charset=utf-8>
+</head>
+<body>
+<datalist id=foo></datalist>
+<input type=text list=bar>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction-empty-novalid.html
new file mode 100644
index 0000000000..5deda965c5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty formaction is not valid</title>
+<input type=image alt="foo" formaction="">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction-isvalid.html
new file mode 100644
index 0000000000..cd89509ffe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid formaction</title>
+<input type=image alt="foo" formaction="a:foo.com"><!-- scheme-private -->
+<input type=image alt="foo" formaction="foo:/"><!-- scheme-private-slash -->
+<input type=image alt="foo" formaction="foo://"><!-- scheme-private-slash-slash -->
+<input type=image alt="foo" formaction="foo:/bar.com/"><!-- scheme-private-path -->
+<input type=image alt="foo" formaction="foo://///////"><!-- scheme-private-path-leading-slashes-only -->
+<input type=image alt="foo" formaction="foo://///////bar.com/"><!-- scheme-private-path-leading-slashes-chars -->
+<input type=image alt="foo" formaction="foo:////://///"><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<input type=image alt="foo" formaction="c:/foo"><!-- scheme-private-single-letter -->
+<input type=image alt="foo" formaction="madeupscheme:/example.com/"><!-- scheme-private-single-slash -->
+<input type=image alt="foo" formaction="file:/example.com/"><!-- scheme-file-single-slash -->
+<input type=image alt="foo" formaction="ftps:/example.com/"><!-- scheme-ftps-single-slash -->
+<input type=image alt="foo" formaction="gopher:/example.com/"><!-- scheme-gopher-single-slash -->
+<input type=image alt="foo" formaction="ws:/example.com/"><!-- scheme-ws-single-slash -->
+<input type=image alt="foo" formaction="wss:/example.com/"><!-- scheme-wss-single-slash -->
+<input type=image alt="foo" formaction="javascript:/example.com/"><!-- scheme-javascript-single-slash -->
+<input type=image alt="foo" formaction="mailto:/example.com/"><!-- scheme-mailto-single-slash -->
+<input type=image alt="foo" formaction="madeupscheme:example.com/"><!-- scheme-private-no-slash -->
+<input type=image alt="foo" formaction="ftps:example.com/"><!-- scheme-ftps-no-slash -->
+<input type=image alt="foo" formaction="gopher:example.com/"><!-- scheme-gopher-no-slash -->
+<input type=image alt="foo" formaction="wss:example.com/"><!-- scheme-wss-no-slash -->
+<input type=image alt="foo" formaction="mailto:example.com/"><!-- scheme-mailto-no-slash -->
+<input type=image alt="foo" formaction="data:text/plain,foo"><!-- scheme-data-no-slash -->
+<input type=image alt="foo" formaction="http://user:pass@foo:21/bar;par?b#c"><!-- userinfo -->
+<input type=image alt="foo" formaction="http://[2001::1]"><!-- host-ipv6 -->
+<input type=image alt="foo" formaction="http://[2001::1]:80"><!-- host-ipv6-port -->
+<input type=image alt="foo" formaction="http://f:/c"><!-- port-none-but-colon -->
+<input type=image alt="foo" formaction="http://f:0/c"><!-- port-0 -->
+<input type=image alt="foo" formaction="http://f:00000000000000/c"><!-- port-00000000000000 -->
+<input type=image alt="foo" formaction="http://f:00000000000000000000080/c"><!-- port-00000000000000000000080 -->
+<input type=image alt="foo" formaction="http://a:b@c:29/d"><!-- userinfo-host-port-path -->
+<input type=image alt="foo" formaction="http://foo.com:b@d/"><!-- userinfo-username-non-alpha -->
+<input type=image alt="foo" formaction="http://foo/abcd?efgh?ijkl"><!-- query-contains-question-mark -->
+<input type=image alt="foo" formaction="http://foo/abcd#foo?bar"><!-- fragment-contains-question-mark -->
+<input type=image alt="foo" formaction="http://example.com/foo/%2e"><!-- path-percent-encoded-dot -->
+<input type=image alt="foo" formaction="http://example.com/%20foo"><!-- path-percent-encoded-space -->
+<input type=image alt="foo" formaction="http://example.com/©zbar"><!-- path-non-ascii -->
+<input type=image alt="foo" formaction="http://example.com/foo%41%7a"><!-- path-percent-encoded-multiple -->
+<input type=image alt="foo" formaction="http://example.com/foo%91"><!-- path-percent-encoded-u0091 -->
+<input type=image alt="foo" formaction="http://example.com/foo%00"><!-- path-percent-encoded-u0000 -->
+<input type=image alt="foo" formaction="http://example.com/%3A%3a%3C%3c"><!-- path-percent-encoded-mixed-case -->
+<input type=image alt="foo" formaction="http://example.com/你好你好"><!-- path-unicode-han -->
+<input type=image alt="foo" formaction="http://example.com//foo"><!-- path-uFEFF -->
+<input type=image alt="foo" formaction="http://example.com/‮/foo/‭/bar"><!-- path-u202E-u202D -->
+<input type=image alt="foo" formaction="http://💩"><!-- host-is-pile-of-poo -->
+<input type=image alt="foo" formaction="http💩//:foo"><!-- path-contains-pile-of-poo -->
+<input type=image alt="foo" formaction="http://example.com/foo?💩"><!-- query-contains-pile-of-poo -->
+<input type=image alt="foo" formaction="http://example.com/foo#💩"><!-- fragment-contains-pile-of-poo -->
+<input type=image alt="foo" formaction="http://192.0x00A80001"><!-- host-192.0x00A80001 -->
+<input type=image alt="foo" formaction="http://%25DOMAIN:foobar@foodomain.com"><!-- userinfo-username-contains-percent-encoded -->
+<input type=image alt="foo" formaction="http://@www.example.com"><!-- userinfo-empty -->
+<input type=image alt="foo" formaction="http://:b@www.example.com"><!-- userinfo-user-empty -->
+<input type=image alt="foo" formaction="http://a:@www.example.com"><!-- userinfo-password-empty -->
+<input type=image alt="foo" formaction="http://GOO​⁠goo.com"><!-- host-exotic-whitespace -->
+<input type=image alt="foo" formaction="http://www.foo。bar.com"><!-- host-exotic-dot -->
+<input type=image alt="foo" formaction="http://Go.com"><!-- host-fullwidth -->
+<input type=image alt="foo" formaction="http://你好你好"><!-- host-idn-unicode-han -->
+<input type=image alt="foo" formaction="http://192.168.0.257/"><!-- host-IP-address-broken -->
+<input type=image alt="foo" formaction="//foo/bar"><!-- scheme-schemeless-relative -->
+<input type=image alt="foo" formaction="/"><!-- path-slash-only-relative -->
+<input type=image alt="foo" formaction="/a/b/c"><!-- path-simple-relative -->
+<input type=image alt="foo" formaction="/a%2fc"><!-- path-percent-encoded-slash-relative -->
+<input type=image alt="foo" formaction="/a/%2f/c"><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<input type=image alt="foo" formaction="?"><!-- query-empty-no-path-relative -->
+<input type=image alt="foo" formaction="#"><!-- fragment-empty-hash-only-no-path-relative -->
+<input type=image alt="foo" formaction="#/"><!-- fragment-slash-relative -->
+<input type=image alt="foo" formaction="#;?"><!-- fragment-semicolon-question-mark-relative -->
+<input type=image alt="foo" formaction="#β"><!-- fragment-non-ascii-relative -->
+<input type=image alt="foo" formaction="foo.com"><!-- scheme-none-relative -->
+<input type=image alt="foo" formaction=":"><!-- path-colon-relative -->
+<input type=image alt="foo" formaction=":a"><!-- path-leading-colon-letter-relative -->
+<input type=image alt="foo" formaction=":foo.com"><!-- path-leading-colon-chars-relative -->
+<input type=image alt="foo" formaction=":/"><!-- path-leading-colon-slash-relative -->
+<input type=image alt="foo" formaction=":#"><!-- path-leading-colon-hash-relative -->
+<input type=image alt="foo" formaction=":23"><!-- path-leading-colon-number-relative -->
+<input type=image alt="foo" formaction="/:23"><!-- path-slash-colon-number-relative -->
+<input type=image alt="foo" formaction="::"><!-- path-leading-colon-colon-relative -->
+<input type=image alt="foo" formaction="::23"><!-- path-colon-colon-number-relative -->
+<input type=image alt="foo" formaction="💩http://foo"><!-- path-starts-with-pile-of-poo -->
+<input type=image alt="foo" formaction="/💩"><!-- path-slash-pile-of-poo -->
+<input type=image alt="foo" formaction="File://foo/bar.html"><!-- scheme-file-uppercase -->
+<input type=image alt="foo" formaction="file://C|/foo/bar"><!-- scheme-file-slash-slash-c-bar -->
+<input type=image alt="foo" formaction="file://server/foo/bar"><!-- scheme-file-host-included -->
+<input type=image alt="foo" formaction="file:///foo/bar.txt"><!-- scheme-file-host-empty -->
+<input type=image alt="foo" formaction="file:"><!-- scheme-file-scheme-only -->
+<input type=image alt="foo" formaction="file:/"><!-- scheme-file-slash-only -->
+<input type=image alt="foo" formaction="file://"><!-- scheme-file-slash-slash-only -->
+<input type=image alt="foo" formaction="file:///"><!-- scheme-file-slash-slash-slash-only -->
+<input type=image alt="foo" formaction="file:test"><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction-whitespace-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction-whitespace-only-novalid.html
new file mode 100644
index 0000000000..1c7fae12ba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction-whitespace-only-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty formaction is not valid</title>
+<input type=image alt="foo" formaction="
+">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..dee7e3b058
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: fragment-backslash</title>
+<input type=image alt="foo" formaction="#\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..3bc4e4cddb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: fragment-contains-hash</title>
+<input type=image alt="foo" formaction="http://foo/path#f#g">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..07a0678eef
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: fragment-leading-space</title>
+<input type=image alt="foo" formaction="http://f:21/b# e">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-cr-novalid.html
new file mode 100644
index 0000000000..48919b1d8a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-cr</title>
+<input type=image alt="foo" formaction="http://example. org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..0919432afa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-double-percent-encoded</title>
+<input type=image alt="foo" formaction="http://%41.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..007e045f66
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-double-percent-encoded-percent-encoded</title>
+<input type=image alt="foo" formaction="http://%ef%bc%85%ef%bc%94%ef%bc%91.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-empty-novalid.html
new file mode 100644
index 0000000000..479146ab94
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-empty</title>
+<input type=image alt="foo" formaction="http://">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..62339541a0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-empty-userinfo-empty</title>
+<input type=image alt="foo" formaction="http://@/www.example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..30c5f8e868
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-empty-with-userinfo</title>
+<input type=image alt="foo" formaction="http://user:pass@/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..dab28abffd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-hostname-in-brackets</title>
+<input type=image alt="foo" formaction="http://[www.google.com]/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..b389ecb58f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-invalid-unicode</title>
+<input type=image alt="foo" formaction="http://﷐zyx.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..eab0190640
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-invalid-unicode-percent-encoded</title>
+<input type=image alt="foo" formaction="http://%ef%b7%90zyx.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-newline-novalid.html
new file mode 100644
index 0000000000..6af1be0499
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-newline</title>
+<input type=image alt="foo" formaction="http://example.
+org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-space-novalid.html
new file mode 100644
index 0000000000..6b9e40850a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-space</title>
+<input type=image alt="foo" formaction="http://example .org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..fa76475e30
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-square-brackets-port-contains-colon</title>
+<input type=image alt="foo" formaction="http://[1::2]:3:4">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-tab-novalid.html
new file mode 100644
index 0000000000..2a50d5275d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-tab</title>
+<input type=image alt="foo" formaction="http://example .org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..d6fb957969
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-u0000-percent-encoded</title>
+<input type=image alt="foo" formaction="http://%00.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..a55751d8da
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-u0000-percent-encoded-percent-encoded</title>
+<input type=image alt="foo" formaction="http://%ef%bc%85%ef%bc%90%ef%bc%90.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..1a8e6444c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-bare-percent-sign</title>
+<input type=image alt="foo" formaction="http://example.com/foo%">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-contains-space-novalid.html
new file mode 100644
index 0000000000..a74a6604f8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-contains-space</title>
+<input type=image alt="foo" formaction="/a/ /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..db8534ac30
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-leading-backslash-at-sign</title>
+<input type=image alt="foo" formaction="http://foo.com/\@">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..ee2cb3157d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-leading-colon-backslash</title>
+<input type=image alt="foo" formaction=":\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..843915930e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-leading-colon-chars-backslash</title>
+<input type=image alt="foo" formaction=":foo.com\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-leading-space-novalid.html
new file mode 100644
index 0000000000..dc991b8db5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-leading-space</title>
+<input type=image alt="foo" formaction="http://f:21/ b">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..830ecfa13e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-percent-encoded-malformed</title>
+<input type=image alt="foo" formaction="http://example.com/foo/%2e%2">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..222a0bd940
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-relative-square-brackets</title>
+<input type=image alt="foo" formaction="[61:24:74]:98">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-tab-novalid.html
new file mode 100644
index 0000000000..b0440aabda
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-tab</title>
+<input type=image alt="foo" formaction="http://example.com/foo bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..61a6a1a1b6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-trailing-space</title>
+<input type=image alt="foo" formaction="http://f:21/b ?">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-u0091-novalid.html
new file mode 100644
index 0000000000..3edbb7aab5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-u0091</title>
+<input type=image alt="foo" formaction="http://example.com/foo‘">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-999999-novalid.html
new file mode 100644
index 0000000000..a01365d727
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-999999</title>
+<input type=image alt="foo" formaction="http://f:999999/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-cr-novalid.html
new file mode 100644
index 0000000000..ceca5a8355
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-cr</title>
+<input type=image alt="foo" formaction="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..f814452189
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-leading-colon-bracket-colon</title>
+<input type=image alt="foo" formaction="http://2001::1]:80">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..fd3d244c84
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-leading-colon</title>
+<input type=image alt="foo" formaction="http://2001::1">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..a413652567
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-leading-dash</title>
+<input type=image alt="foo" formaction="http://foo:-80/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..f899b643d5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-multiple-letters</title>
+<input type=image alt="foo" formaction="http://f:fifty-two/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-newline-novalid.html
new file mode 100644
index 0000000000..efa6fef430
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-newline</title>
+<input type=image alt="foo" formaction="http://f:
+/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-single-letter-novalid.html
new file mode 100644
index 0000000000..6b04af7a8f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-single-letter</title>
+<input type=image alt="foo" formaction="http://f:b/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-space-novalid.html
new file mode 100644
index 0000000000..666db3a7f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-space</title>
+<input type=image alt="foo" formaction="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-tab-novalid.html
new file mode 100644
index 0000000000..dd67171602
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-tab</title>
+<input type=image alt="foo" formaction="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/query-leading-space-novalid.html
new file mode 100644
index 0000000000..01d360dd50
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: query-leading-space</title>
+<input type=image alt="foo" formaction="http://f:21/b? d">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..98322081e8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: query-trailing-space</title>
+<input type=image alt="foo" formaction="http://f:21/b?d #">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..aa3ea3aad1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-data-contains-fragment-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>formaction warning: scheme-data-contains-fragment</title>
+<input type=image alt="foo" formaction="data:text/html,test#test">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..48e5ec30bb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-data-single-slash</title>
+<input type=image alt="foo" formaction="data:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..e77493c24d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-file-backslash</title>
+<input type=image alt="foo" formaction="file:c:\foo\bar.html">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..3a12a2f2c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-file-single-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-file-single-slash-c-bar</title>
+<input type=image alt="foo" formaction="file:/C|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..4381cc2236
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-file-slash-slash-abc-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-file-slash-slash-abc-bar</title>
+<input type=image alt="foo" formaction="file://abc|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..da3f423ea7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-file-triple-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-file-triple-slash-c-bar</title>
+<input type=image alt="foo" formaction="file:///C|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..620a37c83d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-ftp-no-slash</title>
+<input type=image alt="foo" formaction="ftp:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..e5f064e250
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-ftp-single-slash</title>
+<input type=image alt="foo" formaction="ftp:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..cad3f1e993
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-http-backslash</title>
+<input type=image alt="foo" formaction="http:\\foo.com\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..fb1ecc696a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-http-no-slash-colon</title>
+<input type=image alt="foo" formaction="http::@c:29">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..62bdcd8c2c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-http-no-slash</title>
+<input type=image alt="foo" formaction="http:foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..90f76c9d1e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-http-no-slash-square-bracket</title>
+<input type=image alt="foo" formaction="http:[61:27]/:foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..9f1a492113
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-http-single-slash</title>
+<input type=image alt="foo" formaction="http:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..2357c0a1e7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-https-no-slash</title>
+<input type=image alt="foo" formaction="https:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..4e3075b494
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-https-single-slash</title>
+<input type=image alt="foo" formaction="https:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..45affd7ec4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-trailing-cr</title>
+<input type=image alt="foo" formaction="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..161cffbf6b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-trailing-newline</title>
+<input type=image alt="foo" formaction="a:
+foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..ebd08615a6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-trailing-space</title>
+<input type=image alt="foo" formaction="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..1429b7a273
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-trailing-tab</title>
+<input type=image alt="foo" formaction="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..a0df503e10
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: userinfo-backslash</title>
+<input type=image alt="foo" formaction="http://a\b:c\d@foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..1673f65ecf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: userinfo-password-bad-chars</title>
+<input type=image alt="foo" formaction="http://&a:foo(b]c@d:2/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..aae3d288a5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: userinfo-password-contains-pile-of-poo</title>
+<input type=image alt="foo" formaction="http://foo:💩@example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..cc0652c8b3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: userinfo-username-contains-at-sign</title>
+<input type=image alt="foo" formaction="http://::@c@d:2">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..abc75f3ed9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-formaction/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: userinfo-username-contains-pile-of-poo</title>
+<input type=image alt="foo" formaction="http://💩:foo@example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src-empty-novalid.html
new file mode 100644
index 0000000000..f773a2aa45
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty src is not valid</title>
+<input type=image alt="foo" src="">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src-isvalid.html
new file mode 100644
index 0000000000..5c6541bc57
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid src</title>
+<input type=image alt="foo" src="a:foo.com"><!-- scheme-private -->
+<input type=image alt="foo" src="foo:/"><!-- scheme-private-slash -->
+<input type=image alt="foo" src="foo://"><!-- scheme-private-slash-slash -->
+<input type=image alt="foo" src="foo:/bar.com/"><!-- scheme-private-path -->
+<input type=image alt="foo" src="foo://///////"><!-- scheme-private-path-leading-slashes-only -->
+<input type=image alt="foo" src="foo://///////bar.com/"><!-- scheme-private-path-leading-slashes-chars -->
+<input type=image alt="foo" src="foo:////://///"><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<input type=image alt="foo" src="c:/foo"><!-- scheme-private-single-letter -->
+<input type=image alt="foo" src="madeupscheme:/example.com/"><!-- scheme-private-single-slash -->
+<input type=image alt="foo" src="file:/example.com/"><!-- scheme-file-single-slash -->
+<input type=image alt="foo" src="ftps:/example.com/"><!-- scheme-ftps-single-slash -->
+<input type=image alt="foo" src="gopher:/example.com/"><!-- scheme-gopher-single-slash -->
+<input type=image alt="foo" src="ws:/example.com/"><!-- scheme-ws-single-slash -->
+<input type=image alt="foo" src="wss:/example.com/"><!-- scheme-wss-single-slash -->
+<input type=image alt="foo" src="javascript:/example.com/"><!-- scheme-javascript-single-slash -->
+<input type=image alt="foo" src="mailto:/example.com/"><!-- scheme-mailto-single-slash -->
+<input type=image alt="foo" src="madeupscheme:example.com/"><!-- scheme-private-no-slash -->
+<input type=image alt="foo" src="ftps:example.com/"><!-- scheme-ftps-no-slash -->
+<input type=image alt="foo" src="gopher:example.com/"><!-- scheme-gopher-no-slash -->
+<input type=image alt="foo" src="wss:example.com/"><!-- scheme-wss-no-slash -->
+<input type=image alt="foo" src="mailto:example.com/"><!-- scheme-mailto-no-slash -->
+<input type=image alt="foo" src="data:text/plain,foo"><!-- scheme-data-no-slash -->
+<input type=image alt="foo" src="http://user:pass@foo:21/bar;par?b#c"><!-- userinfo -->
+<input type=image alt="foo" src="http://[2001::1]"><!-- host-ipv6 -->
+<input type=image alt="foo" src="http://[2001::1]:80"><!-- host-ipv6-port -->
+<input type=image alt="foo" src="http://f:/c"><!-- port-none-but-colon -->
+<input type=image alt="foo" src="http://f:0/c"><!-- port-0 -->
+<input type=image alt="foo" src="http://f:00000000000000/c"><!-- port-00000000000000 -->
+<input type=image alt="foo" src="http://f:00000000000000000000080/c"><!-- port-00000000000000000000080 -->
+<input type=image alt="foo" src="http://a:b@c:29/d"><!-- userinfo-host-port-path -->
+<input type=image alt="foo" src="http://foo.com:b@d/"><!-- userinfo-username-non-alpha -->
+<input type=image alt="foo" src="http://foo/abcd?efgh?ijkl"><!-- query-contains-question-mark -->
+<input type=image alt="foo" src="http://foo/abcd#foo?bar"><!-- fragment-contains-question-mark -->
+<input type=image alt="foo" src="http://example.com/foo/%2e"><!-- path-percent-encoded-dot -->
+<input type=image alt="foo" src="http://example.com/%20foo"><!-- path-percent-encoded-space -->
+<input type=image alt="foo" src="http://example.com/©zbar"><!-- path-non-ascii -->
+<input type=image alt="foo" src="http://example.com/foo%41%7a"><!-- path-percent-encoded-multiple -->
+<input type=image alt="foo" src="http://example.com/foo%91"><!-- path-percent-encoded-u0091 -->
+<input type=image alt="foo" src="http://example.com/foo%00"><!-- path-percent-encoded-u0000 -->
+<input type=image alt="foo" src="http://example.com/%3A%3a%3C%3c"><!-- path-percent-encoded-mixed-case -->
+<input type=image alt="foo" src="http://example.com/你好你好"><!-- path-unicode-han -->
+<input type=image alt="foo" src="http://example.com//foo"><!-- path-uFEFF -->
+<input type=image alt="foo" src="http://example.com/‮/foo/‭/bar"><!-- path-u202E-u202D -->
+<input type=image alt="foo" src="http://💩"><!-- host-is-pile-of-poo -->
+<input type=image alt="foo" src="http💩//:foo"><!-- path-contains-pile-of-poo -->
+<input type=image alt="foo" src="http://example.com/foo?💩"><!-- query-contains-pile-of-poo -->
+<input type=image alt="foo" src="http://example.com/foo#💩"><!-- fragment-contains-pile-of-poo -->
+<input type=image alt="foo" src="http://192.0x00A80001"><!-- host-192.0x00A80001 -->
+<input type=image alt="foo" src="http://%25DOMAIN:foobar@foodomain.com"><!-- userinfo-username-contains-percent-encoded -->
+<input type=image alt="foo" src="http://@www.example.com"><!-- userinfo-empty -->
+<input type=image alt="foo" src="http://:b@www.example.com"><!-- userinfo-user-empty -->
+<input type=image alt="foo" src="http://a:@www.example.com"><!-- userinfo-password-empty -->
+<input type=image alt="foo" src="http://GOO​⁠goo.com"><!-- host-exotic-whitespace -->
+<input type=image alt="foo" src="http://www.foo。bar.com"><!-- host-exotic-dot -->
+<input type=image alt="foo" src="http://Go.com"><!-- host-fullwidth -->
+<input type=image alt="foo" src="http://你好你好"><!-- host-idn-unicode-han -->
+<input type=image alt="foo" src="http://192.168.0.257/"><!-- host-IP-address-broken -->
+<input type=image alt="foo" src="//foo/bar"><!-- scheme-schemeless-relative -->
+<input type=image alt="foo" src="/"><!-- path-slash-only-relative -->
+<input type=image alt="foo" src="/a/b/c"><!-- path-simple-relative -->
+<input type=image alt="foo" src="/a%2fc"><!-- path-percent-encoded-slash-relative -->
+<input type=image alt="foo" src="/a/%2f/c"><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<input type=image alt="foo" src="?"><!-- query-empty-no-path-relative -->
+<input type=image alt="foo" src="#"><!-- fragment-empty-hash-only-no-path-relative -->
+<input type=image alt="foo" src="#/"><!-- fragment-slash-relative -->
+<input type=image alt="foo" src="#;?"><!-- fragment-semicolon-question-mark-relative -->
+<input type=image alt="foo" src="#β"><!-- fragment-non-ascii-relative -->
+<input type=image alt="foo" src="foo.com"><!-- scheme-none-relative -->
+<input type=image alt="foo" src=":"><!-- path-colon-relative -->
+<input type=image alt="foo" src=":a"><!-- path-leading-colon-letter-relative -->
+<input type=image alt="foo" src=":foo.com"><!-- path-leading-colon-chars-relative -->
+<input type=image alt="foo" src=":/"><!-- path-leading-colon-slash-relative -->
+<input type=image alt="foo" src=":#"><!-- path-leading-colon-hash-relative -->
+<input type=image alt="foo" src=":23"><!-- path-leading-colon-number-relative -->
+<input type=image alt="foo" src="/:23"><!-- path-slash-colon-number-relative -->
+<input type=image alt="foo" src="::"><!-- path-leading-colon-colon-relative -->
+<input type=image alt="foo" src="::23"><!-- path-colon-colon-number-relative -->
+<input type=image alt="foo" src="💩http://foo"><!-- path-starts-with-pile-of-poo -->
+<input type=image alt="foo" src="/💩"><!-- path-slash-pile-of-poo -->
+<input type=image alt="foo" src="File://foo/bar.html"><!-- scheme-file-uppercase -->
+<input type=image alt="foo" src="file://C|/foo/bar"><!-- scheme-file-slash-slash-c-bar -->
+<input type=image alt="foo" src="file://server/foo/bar"><!-- scheme-file-host-included -->
+<input type=image alt="foo" src="file:///foo/bar.txt"><!-- scheme-file-host-empty -->
+<input type=image alt="foo" src="file:"><!-- scheme-file-scheme-only -->
+<input type=image alt="foo" src="file:/"><!-- scheme-file-slash-only -->
+<input type=image alt="foo" src="file://"><!-- scheme-file-slash-slash-only -->
+<input type=image alt="foo" src="file:///"><!-- scheme-file-slash-slash-slash-only -->
+<input type=image alt="foo" src="file:test"><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src-whitespace-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src-whitespace-only-novalid.html
new file mode 100644
index 0000000000..e3d0486e62
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src-whitespace-only-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty src is not valid</title>
+<input type=image alt="foo" src="
+">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..eda0b37a8a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-backslash</title>
+<input type=image alt="foo" src="#\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..3b4ada5330
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-contains-hash</title>
+<input type=image alt="foo" src="http://foo/path#f#g">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..4e91c794ab
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-leading-space</title>
+<input type=image alt="foo" src="http://f:21/b# e">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-cr-novalid.html
new file mode 100644
index 0000000000..c6c7dcd695
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-cr</title>
+<input type=image alt="foo" src="http://example. org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..3946af19fe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://%41.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..0e657ba1a7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://%ef%bc%85%ef%bc%94%ef%bc%91.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-empty-novalid.html
new file mode 100644
index 0000000000..faac339c6b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-empty</title>
+<input type=image alt="foo" src="http://">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..623e61268b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://@/www.example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..9cc6d8624d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://user:pass@/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..c48b95b008
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://[www.google.com]/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..8595d37ecc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-invalid-unicode</title>
+<input type=image alt="foo" src="http://﷐zyx.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..3c7f42df1c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://%ef%b7%90zyx.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-newline-novalid.html
new file mode 100644
index 0000000000..68fdc0aea4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-newline</title>
+<input type=image alt="foo" src="http://example.
+org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-space-novalid.html
new file mode 100644
index 0000000000..45c7e8bb15
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-space</title>
+<input type=image alt="foo" src="http://example .org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..b4b5552a8b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://[1::2]:3:4">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-tab-novalid.html
new file mode 100644
index 0000000000..ae443539c9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-tab</title>
+<input type=image alt="foo" src="http://example .org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..8e554bb9ca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://%00.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..ea9f960fee
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://%ef%bc%85%ef%bc%90%ef%bc%90.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..864ea49604
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://example.com/foo%">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-contains-space-novalid.html
new file mode 100644
index 0000000000..069e2a1c38
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-contains-space</title>
+<input type=image alt="foo" src="/a/ /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..71b05d901a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://foo.com/\@">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..2d4baf9108
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src=":\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..ef690bbf07
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src=":foo.com\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-leading-space-novalid.html
new file mode 100644
index 0000000000..c0204f5c1a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-leading-space</title>
+<input type=image alt="foo" src="http://f:21/ b">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..c5222fab64
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://example.com/foo/%2e%2">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..8c05cbef6b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="[61:24:74]:98">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-tab-novalid.html
new file mode 100644
index 0000000000..a2b683d9dc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-tab</title>
+<input type=image alt="foo" src="http://example.com/foo bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..a047676f47
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-trailing-space</title>
+<input type=image alt="foo" src="http://f:21/b ?">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-u0091-novalid.html
new file mode 100644
index 0000000000..0da7c170cc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-u0091</title>
+<input type=image alt="foo" src="http://example.com/foo‘">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-999999-novalid.html
new file mode 100644
index 0000000000..7c5b961f4c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-999999</title>
+<input type=image alt="foo" src="http://f:999999/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-cr-novalid.html
new file mode 100644
index 0000000000..b2467d2be6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-cr</title>
+<input type=image alt="foo" src="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..1bb21c61b8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://2001::1]:80">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..5b7c183771
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-colon</title>
+<input type=image alt="foo" src="http://2001::1">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..0f125e1f85
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-dash</title>
+<input type=image alt="foo" src="http://foo:-80/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..ffc0b87472
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-multiple-letters</title>
+<input type=image alt="foo" src="http://f:fifty-two/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-newline-novalid.html
new file mode 100644
index 0000000000..51e6c7358f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-newline</title>
+<input type=image alt="foo" src="http://f:
+/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-single-letter-novalid.html
new file mode 100644
index 0000000000..007ec33d1e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-single-letter</title>
+<input type=image alt="foo" src="http://f:b/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-space-novalid.html
new file mode 100644
index 0000000000..4086ace7a9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-space</title>
+<input type=image alt="foo" src="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-tab-novalid.html
new file mode 100644
index 0000000000..90faa30077
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-tab</title>
+<input type=image alt="foo" src="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/query-leading-space-novalid.html
new file mode 100644
index 0000000000..183e1fad85
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-leading-space</title>
+<input type=image alt="foo" src="http://f:21/b? d">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..a64a7c6b7c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-trailing-space</title>
+<input type=image alt="foo" src="http://f:21/b?d #">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..71b9a8873b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-data-contains-fragment-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>src warning: scheme-data-contains-fragment</title>
+<input type=image alt="foo" src="data:text/html,test#test">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..a2b5d1f862
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="data:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..0a1b8fb52e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-file-backslash</title>
+<input type=image alt="foo" src="file:c:\foo\bar.html">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..ee896fe55f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="file:/C|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..4f4516642d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="file://abc|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..8cb7521e8b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="file:///C|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..bd109af807
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="ftp:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..d892ac52d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="ftp:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..6fafed4ab5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-backslash</title>
+<input type=image alt="foo" src="http:\\foo.com\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..90a1212ac2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http::@c:29">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..e2c684aac5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http:foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..7a64662c8e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http:[61:27]/:foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..cdfd4d74ce
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..d6b2bce564
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="https:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..301281c141
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="https:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..2cef8164e5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-cr</title>
+<input type=image alt="foo" src="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..1cac5852c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-newline</title>
+<input type=image alt="foo" src="a:
+foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..8b8f11fa21
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-space</title>
+<input type=image alt="foo" src="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..6f5772f6b4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-tab</title>
+<input type=image alt="foo" src="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..85b04e06b1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-backslash</title>
+<input type=image alt="foo" src="http://a\b:c\d@foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..4b3ef34269
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://&a:foo(b]c@d:2/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..2b86aa3327
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://foo:💩@example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..bdaf3479f4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://::@c@d:2">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-src/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..32627a1f33
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-image-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>
+<input type=image alt="foo" src="http://💩:foo@example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction-empty-novalid.html
new file mode 100644
index 0000000000..ae291ca35b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty formaction is not valid</title>
+<input type=submit formaction="">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction-isvalid.html
new file mode 100644
index 0000000000..f5ac95000a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid formaction</title>
+<input type=submit formaction="a:foo.com"><!-- scheme-private -->
+<input type=submit formaction="foo:/"><!-- scheme-private-slash -->
+<input type=submit formaction="foo://"><!-- scheme-private-slash-slash -->
+<input type=submit formaction="foo:/bar.com/"><!-- scheme-private-path -->
+<input type=submit formaction="foo://///////"><!-- scheme-private-path-leading-slashes-only -->
+<input type=submit formaction="foo://///////bar.com/"><!-- scheme-private-path-leading-slashes-chars -->
+<input type=submit formaction="foo:////://///"><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<input type=submit formaction="c:/foo"><!-- scheme-private-single-letter -->
+<input type=submit formaction="madeupscheme:/example.com/"><!-- scheme-private-single-slash -->
+<input type=submit formaction="file:/example.com/"><!-- scheme-file-single-slash -->
+<input type=submit formaction="ftps:/example.com/"><!-- scheme-ftps-single-slash -->
+<input type=submit formaction="gopher:/example.com/"><!-- scheme-gopher-single-slash -->
+<input type=submit formaction="ws:/example.com/"><!-- scheme-ws-single-slash -->
+<input type=submit formaction="wss:/example.com/"><!-- scheme-wss-single-slash -->
+<input type=submit formaction="javascript:/example.com/"><!-- scheme-javascript-single-slash -->
+<input type=submit formaction="mailto:/example.com/"><!-- scheme-mailto-single-slash -->
+<input type=submit formaction="madeupscheme:example.com/"><!-- scheme-private-no-slash -->
+<input type=submit formaction="ftps:example.com/"><!-- scheme-ftps-no-slash -->
+<input type=submit formaction="gopher:example.com/"><!-- scheme-gopher-no-slash -->
+<input type=submit formaction="wss:example.com/"><!-- scheme-wss-no-slash -->
+<input type=submit formaction="mailto:example.com/"><!-- scheme-mailto-no-slash -->
+<input type=submit formaction="data:text/plain,foo"><!-- scheme-data-no-slash -->
+<input type=submit formaction="http://user:pass@foo:21/bar;par?b#c"><!-- userinfo -->
+<input type=submit formaction="http://[2001::1]"><!-- host-ipv6 -->
+<input type=submit formaction="http://[2001::1]:80"><!-- host-ipv6-port -->
+<input type=submit formaction="http://f:/c"><!-- port-none-but-colon -->
+<input type=submit formaction="http://f:0/c"><!-- port-0 -->
+<input type=submit formaction="http://f:00000000000000/c"><!-- port-00000000000000 -->
+<input type=submit formaction="http://f:00000000000000000000080/c"><!-- port-00000000000000000000080 -->
+<input type=submit formaction="http://a:b@c:29/d"><!-- userinfo-host-port-path -->
+<input type=submit formaction="http://foo.com:b@d/"><!-- userinfo-username-non-alpha -->
+<input type=submit formaction="http://foo/abcd?efgh?ijkl"><!-- query-contains-question-mark -->
+<input type=submit formaction="http://foo/abcd#foo?bar"><!-- fragment-contains-question-mark -->
+<input type=submit formaction="http://example.com/foo/%2e"><!-- path-percent-encoded-dot -->
+<input type=submit formaction="http://example.com/%20foo"><!-- path-percent-encoded-space -->
+<input type=submit formaction="http://example.com/©zbar"><!-- path-non-ascii -->
+<input type=submit formaction="http://example.com/foo%41%7a"><!-- path-percent-encoded-multiple -->
+<input type=submit formaction="http://example.com/foo%91"><!-- path-percent-encoded-u0091 -->
+<input type=submit formaction="http://example.com/foo%00"><!-- path-percent-encoded-u0000 -->
+<input type=submit formaction="http://example.com/%3A%3a%3C%3c"><!-- path-percent-encoded-mixed-case -->
+<input type=submit formaction="http://example.com/你好你好"><!-- path-unicode-han -->
+<input type=submit formaction="http://example.com//foo"><!-- path-uFEFF -->
+<input type=submit formaction="http://example.com/‮/foo/‭/bar"><!-- path-u202E-u202D -->
+<input type=submit formaction="http://💩"><!-- host-is-pile-of-poo -->
+<input type=submit formaction="http💩//:foo"><!-- path-contains-pile-of-poo -->
+<input type=submit formaction="http://example.com/foo?💩"><!-- query-contains-pile-of-poo -->
+<input type=submit formaction="http://example.com/foo#💩"><!-- fragment-contains-pile-of-poo -->
+<input type=submit formaction="http://192.0x00A80001"><!-- host-192.0x00A80001 -->
+<input type=submit formaction="http://%25DOMAIN:foobar@foodomain.com"><!-- userinfo-username-contains-percent-encoded -->
+<input type=submit formaction="http://@www.example.com"><!-- userinfo-empty -->
+<input type=submit formaction="http://:b@www.example.com"><!-- userinfo-user-empty -->
+<input type=submit formaction="http://a:@www.example.com"><!-- userinfo-password-empty -->
+<input type=submit formaction="http://GOO​⁠goo.com"><!-- host-exotic-whitespace -->
+<input type=submit formaction="http://www.foo。bar.com"><!-- host-exotic-dot -->
+<input type=submit formaction="http://Go.com"><!-- host-fullwidth -->
+<input type=submit formaction="http://你好你好"><!-- host-idn-unicode-han -->
+<input type=submit formaction="http://192.168.0.257/"><!-- host-IP-address-broken -->
+<input type=submit formaction="//foo/bar"><!-- scheme-schemeless-relative -->
+<input type=submit formaction="/"><!-- path-slash-only-relative -->
+<input type=submit formaction="/a/b/c"><!-- path-simple-relative -->
+<input type=submit formaction="/a%2fc"><!-- path-percent-encoded-slash-relative -->
+<input type=submit formaction="/a/%2f/c"><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<input type=submit formaction="?"><!-- query-empty-no-path-relative -->
+<input type=submit formaction="#"><!-- fragment-empty-hash-only-no-path-relative -->
+<input type=submit formaction="#/"><!-- fragment-slash-relative -->
+<input type=submit formaction="#;?"><!-- fragment-semicolon-question-mark-relative -->
+<input type=submit formaction="#β"><!-- fragment-non-ascii-relative -->
+<input type=submit formaction="foo.com"><!-- scheme-none-relative -->
+<input type=submit formaction=":"><!-- path-colon-relative -->
+<input type=submit formaction=":a"><!-- path-leading-colon-letter-relative -->
+<input type=submit formaction=":foo.com"><!-- path-leading-colon-chars-relative -->
+<input type=submit formaction=":/"><!-- path-leading-colon-slash-relative -->
+<input type=submit formaction=":#"><!-- path-leading-colon-hash-relative -->
+<input type=submit formaction=":23"><!-- path-leading-colon-number-relative -->
+<input type=submit formaction="/:23"><!-- path-slash-colon-number-relative -->
+<input type=submit formaction="::"><!-- path-leading-colon-colon-relative -->
+<input type=submit formaction="::23"><!-- path-colon-colon-number-relative -->
+<input type=submit formaction="💩http://foo"><!-- path-starts-with-pile-of-poo -->
+<input type=submit formaction="/💩"><!-- path-slash-pile-of-poo -->
+<input type=submit formaction="File://foo/bar.html"><!-- scheme-file-uppercase -->
+<input type=submit formaction="file://C|/foo/bar"><!-- scheme-file-slash-slash-c-bar -->
+<input type=submit formaction="file://server/foo/bar"><!-- scheme-file-host-included -->
+<input type=submit formaction="file:///foo/bar.txt"><!-- scheme-file-host-empty -->
+<input type=submit formaction="file:"><!-- scheme-file-scheme-only -->
+<input type=submit formaction="file:/"><!-- scheme-file-slash-only -->
+<input type=submit formaction="file://"><!-- scheme-file-slash-slash-only -->
+<input type=submit formaction="file:///"><!-- scheme-file-slash-slash-slash-only -->
+<input type=submit formaction="file:test"><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction-whitespace-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction-whitespace-only-novalid.html
new file mode 100644
index 0000000000..6f2d34e8d1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction-whitespace-only-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty formaction is not valid</title>
+<input type=submit formaction="
+">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..f425c30763
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: fragment-backslash</title>
+<input type=submit formaction="#\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..074b066b9e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: fragment-contains-hash</title>
+<input type=submit formaction="http://foo/path#f#g">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..370bc0d8bf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: fragment-leading-space</title>
+<input type=submit formaction="http://f:21/b# e">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-cr-novalid.html
new file mode 100644
index 0000000000..30c67fdf9e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-cr</title>
+<input type=submit formaction="http://example. org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..b6bcab6dca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-double-percent-encoded</title>
+<input type=submit formaction="http://%41.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..b25b389482
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-double-percent-encoded-percent-encoded</title>
+<input type=submit formaction="http://%ef%bc%85%ef%bc%94%ef%bc%91.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-empty-novalid.html
new file mode 100644
index 0000000000..7f0bff475a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-empty</title>
+<input type=submit formaction="http://">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..548576d6f8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-empty-userinfo-empty</title>
+<input type=submit formaction="http://@/www.example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..fc22cd1946
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-empty-with-userinfo</title>
+<input type=submit formaction="http://user:pass@/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..6b714a213b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-hostname-in-brackets</title>
+<input type=submit formaction="http://[www.google.com]/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..f9e490b155
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-invalid-unicode</title>
+<input type=submit formaction="http://﷐zyx.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..8bd4fa53b7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-invalid-unicode-percent-encoded</title>
+<input type=submit formaction="http://%ef%b7%90zyx.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-newline-novalid.html
new file mode 100644
index 0000000000..4bf3160836
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-newline</title>
+<input type=submit formaction="http://example.
+org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-space-novalid.html
new file mode 100644
index 0000000000..40d1b5e1b3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-space</title>
+<input type=submit formaction="http://example .org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..b58d8edfb8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-square-brackets-port-contains-colon</title>
+<input type=submit formaction="http://[1::2]:3:4">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-tab-novalid.html
new file mode 100644
index 0000000000..1f0818c835
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-tab</title>
+<input type=submit formaction="http://example .org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..38d6adf057
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-u0000-percent-encoded</title>
+<input type=submit formaction="http://%00.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..d4628743d4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: host-u0000-percent-encoded-percent-encoded</title>
+<input type=submit formaction="http://%ef%bc%85%ef%bc%90%ef%bc%90.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..507dd282c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-bare-percent-sign</title>
+<input type=submit formaction="http://example.com/foo%">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-contains-space-novalid.html
new file mode 100644
index 0000000000..41b1027304
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-contains-space</title>
+<input type=submit formaction="/a/ /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..5bc0f540f2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-leading-backslash-at-sign</title>
+<input type=submit formaction="http://foo.com/\@">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..9f96f07528
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-leading-colon-backslash</title>
+<input type=submit formaction=":\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..a6d07f6124
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-leading-colon-chars-backslash</title>
+<input type=submit formaction=":foo.com\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-leading-space-novalid.html
new file mode 100644
index 0000000000..2906aa3acc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-leading-space</title>
+<input type=submit formaction="http://f:21/ b">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..955bd05ab5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-percent-encoded-malformed</title>
+<input type=submit formaction="http://example.com/foo/%2e%2">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..3bc8dbf2dc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-relative-square-brackets</title>
+<input type=submit formaction="[61:24:74]:98">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-tab-novalid.html
new file mode 100644
index 0000000000..e424a2a23f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-tab</title>
+<input type=submit formaction="http://example.com/foo bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..d61566d290
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-trailing-space</title>
+<input type=submit formaction="http://f:21/b ?">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-u0091-novalid.html
new file mode 100644
index 0000000000..d9c5c0bddc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: path-u0091</title>
+<input type=submit formaction="http://example.com/foo‘">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-999999-novalid.html
new file mode 100644
index 0000000000..56fed6806c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-999999</title>
+<input type=submit formaction="http://f:999999/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-cr-novalid.html
new file mode 100644
index 0000000000..bcacfa8b82
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-cr</title>
+<input type=submit formaction="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..02caabe38b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-leading-colon-bracket-colon</title>
+<input type=submit formaction="http://2001::1]:80">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..1222d48fe3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-leading-colon</title>
+<input type=submit formaction="http://2001::1">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..eea1fb9fe8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-leading-dash</title>
+<input type=submit formaction="http://foo:-80/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..575f7b1565
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-multiple-letters</title>
+<input type=submit formaction="http://f:fifty-two/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-newline-novalid.html
new file mode 100644
index 0000000000..77281c7f26
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-newline</title>
+<input type=submit formaction="http://f:
+/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-single-letter-novalid.html
new file mode 100644
index 0000000000..231f886599
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-single-letter</title>
+<input type=submit formaction="http://f:b/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-space-novalid.html
new file mode 100644
index 0000000000..df250d3cb3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-space</title>
+<input type=submit formaction="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-tab-novalid.html
new file mode 100644
index 0000000000..7e817369db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: port-tab</title>
+<input type=submit formaction="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/query-leading-space-novalid.html
new file mode 100644
index 0000000000..9bdcfa9ce7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: query-leading-space</title>
+<input type=submit formaction="http://f:21/b? d">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..094f5008d8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: query-trailing-space</title>
+<input type=submit formaction="http://f:21/b?d #">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..4677df8937
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-data-contains-fragment-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>formaction warning: scheme-data-contains-fragment</title>
+<input type=submit formaction="data:text/html,test#test">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..ae851bea53
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-data-single-slash</title>
+<input type=submit formaction="data:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..22600d617d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-file-backslash</title>
+<input type=submit formaction="file:c:\foo\bar.html">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..05c18e6469
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-file-single-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-file-single-slash-c-bar</title>
+<input type=submit formaction="file:/C|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..bcd94e564f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-file-slash-slash-abc-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-file-slash-slash-abc-bar</title>
+<input type=submit formaction="file://abc|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..f15f3083d5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-file-triple-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-file-triple-slash-c-bar</title>
+<input type=submit formaction="file:///C|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..f4d95347da
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-ftp-no-slash</title>
+<input type=submit formaction="ftp:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..40314614e4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-ftp-single-slash</title>
+<input type=submit formaction="ftp:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..a29e4fa975
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-http-backslash</title>
+<input type=submit formaction="http:\\foo.com\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..5350ea0a91
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-http-no-slash-colon</title>
+<input type=submit formaction="http::@c:29">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..c7f227eab7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-http-no-slash</title>
+<input type=submit formaction="http:foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..3d66391cd2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-http-no-slash-square-bracket</title>
+<input type=submit formaction="http:[61:27]/:foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..6c69f27893
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-http-single-slash</title>
+<input type=submit formaction="http:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..6c15ad999d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-https-no-slash</title>
+<input type=submit formaction="https:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..27e668c97c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-https-single-slash</title>
+<input type=submit formaction="https:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..3ab19fffd8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-trailing-cr</title>
+<input type=submit formaction="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..eba43de91d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-trailing-newline</title>
+<input type=submit formaction="a:
+foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..e0d62b36fe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-trailing-space</title>
+<input type=submit formaction="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..4b75ff2e74
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: scheme-trailing-tab</title>
+<input type=submit formaction="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..56f8a0b7d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: userinfo-backslash</title>
+<input type=submit formaction="http://a\b:c\d@foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..d005f35cbd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: userinfo-password-bad-chars</title>
+<input type=submit formaction="http://&a:foo(b]c@d:2/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..eba2430b58
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: userinfo-password-contains-pile-of-poo</title>
+<input type=submit formaction="http://foo:💩@example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..060f63c16b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: userinfo-username-contains-at-sign</title>
+<input type=submit formaction="http://::@c@d:2">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..5e528bff8b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-submit-formaction/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid formaction: userinfo-username-contains-pile-of-poo</title>
+<input type=submit formaction="http://💩:foo@example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value-empty-isvalid.html
new file mode 100644
index 0000000000..229b7a2b99
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty value attribute is valid</title>
+<input type=url value="">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value-isvalid.html
new file mode 100644
index 0000000000..134da82d3e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value-isvalid.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid value attribute</title>
+<input type=url value="a:foo.com"><!-- scheme-private -->
+<input type=url value="foo:/"><!-- scheme-private-slash -->
+<input type=url value="foo://"><!-- scheme-private-slash-slash -->
+<input type=url value="foo:/bar.com/"><!-- scheme-private-path -->
+<input type=url value="foo://///////"><!-- scheme-private-path-leading-slashes-only -->
+<input type=url value="foo://///////bar.com/"><!-- scheme-private-path-leading-slashes-chars -->
+<input type=url value="foo:////://///"><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<input type=url value="c:/foo"><!-- scheme-private-single-letter -->
+<input type=url value="madeupscheme:/example.com/"><!-- scheme-private-single-slash -->
+<input type=url value="file:/example.com/"><!-- scheme-file-single-slash -->
+<input type=url value="ftps:/example.com/"><!-- scheme-ftps-single-slash -->
+<input type=url value="gopher:/example.com/"><!-- scheme-gopher-single-slash -->
+<input type=url value="ws:/example.com/"><!-- scheme-ws-single-slash -->
+<input type=url value="wss:/example.com/"><!-- scheme-wss-single-slash -->
+<input type=url value="javascript:/example.com/"><!-- scheme-javascript-single-slash -->
+<input type=url value="mailto:/example.com/"><!-- scheme-mailto-single-slash -->
+<input type=url value="madeupscheme:example.com/"><!-- scheme-private-no-slash -->
+<input type=url value="ftps:example.com/"><!-- scheme-ftps-no-slash -->
+<input type=url value="gopher:example.com/"><!-- scheme-gopher-no-slash -->
+<input type=url value="wss:example.com/"><!-- scheme-wss-no-slash -->
+<input type=url value="mailto:example.com/"><!-- scheme-mailto-no-slash -->
+<input type=url value="data:text/plain,foo"><!-- scheme-data-no-slash -->
+<input type=url value="http://user:pass@foo:21/bar;par?b#c"><!-- userinfo -->
+<input type=url value="http://[2001::1]"><!-- host-ipv6 -->
+<input type=url value="http://[2001::1]:80"><!-- host-ipv6-port -->
+<input type=url value="http://f:/c"><!-- port-none-but-colon -->
+<input type=url value="http://f:0/c"><!-- port-0 -->
+<input type=url value="http://f:00000000000000/c"><!-- port-00000000000000 -->
+<input type=url value="http://f:00000000000000000000080/c"><!-- port-00000000000000000000080 -->
+<input type=url value="http://a:b@c:29/d"><!-- userinfo-host-port-path -->
+<input type=url value="http://foo.com:b@d/"><!-- userinfo-username-non-alpha -->
+<input type=url value="http://foo/abcd?efgh?ijkl"><!-- query-contains-question-mark -->
+<input type=url value="http://foo/abcd#foo?bar"><!-- fragment-contains-question-mark -->
+<input type=url value="http://example.com/foo/%2e"><!-- path-percent-encoded-dot -->
+<input type=url value="http://example.com/%20foo"><!-- path-percent-encoded-space -->
+<input type=url value="http://example.com/©zbar"><!-- path-non-ascii -->
+<input type=url value="http://example.com/foo%41%7a"><!-- path-percent-encoded-multiple -->
+<input type=url value="http://example.com/foo%91"><!-- path-percent-encoded-u0091 -->
+<input type=url value="http://example.com/foo%00"><!-- path-percent-encoded-u0000 -->
+<input type=url value="http://example.com/%3A%3a%3C%3c"><!-- path-percent-encoded-mixed-case -->
+<input type=url value="http://example.com/你好你好"><!-- path-unicode-han -->
+<input type=url value="http://example.com//foo"><!-- path-uFEFF -->
+<input type=url value="http://example.com/‮/foo/‭/bar"><!-- path-u202E-u202D -->
+<input type=url value="http://💩"><!-- host-is-pile-of-poo -->
+<input type=url value="http://example.com/foo/💩"><!-- path-contains-pile-of-poo -->
+<input type=url value="http://example.com/foo?💩"><!-- query-contains-pile-of-poo -->
+<input type=url value="http://example.com/foo#💩"><!-- fragment-contains-pile-of-poo -->
+<input type=url value="http://192.0x00A80001"><!-- host-192.0x00A80001 -->
+<input type=url value="http://%25DOMAIN:foobar@foodomain.com"><!-- userinfo-username-contains-percent-encoded -->
+<input type=url value="http://@www.example.com"><!-- userinfo-empty -->
+<input type=url value="http://:b@www.example.com"><!-- userinfo-user-empty -->
+<input type=url value="http://a:@www.example.com"><!-- userinfo-password-empty -->
+<input type=url value="http://GOO​⁠goo.com"><!-- host-exotic-whitespace -->
+<input type=url value="http://www.foo。bar.com"><!-- host-exotic-dot -->
+<input type=url value="http://Go.com"><!-- host-fullwidth -->
+<input type=url value="http://你好你好"><!-- host-idn-unicode-han -->
+<input type=url value="http://192.168.0.257/"><!-- host-IP-address-broken -->
+<input type=url value="File://foo/bar.html"><!-- scheme-file-uppercase -->
+<input type=url value="file://C|/foo/bar"><!-- scheme-file-slash-slash-c-bar -->
+<input type=url value="file://server/foo/bar"><!-- scheme-file-host-included -->
+<input type=url value="file:///foo/bar.txt"><!-- scheme-file-host-empty -->
+<input type=url value="file:"><!-- scheme-file-scheme-only -->
+<input type=url value="file:/"><!-- scheme-file-slash-only -->
+<input type=url value="file://"><!-- scheme-file-slash-slash-only -->
+<input type=url value="file:///"><!-- scheme-file-slash-slash-slash-only -->
+<input type=url value="file:test"><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..0f194d5862
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: fragment-backslash</title>
+<input type=url value="#\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..aae446c357
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: fragment-contains-hash</title>
+<input type=url value="http://foo/path#f#g">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-empty-hash-only-no-path-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-empty-hash-only-no-path-relative-novalid.html
new file mode 100644
index 0000000000..afb742bdd6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-empty-hash-only-no-path-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: fragment-empty-hash-only-no-path-relative</title>
+<input type=url value="#">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..58535e9c97
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: fragment-leading-space</title>
+<input type=url value="http://f:21/b# e">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-non-ascii-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-non-ascii-relative-novalid.html
new file mode 100644
index 0000000000..ad41f427b3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-non-ascii-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: fragment-non-ascii-relative</title>
+<input type=url value="#β">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-semicolon-question-mark-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-semicolon-question-mark-relative-novalid.html
new file mode 100644
index 0000000000..1bfc99cc92
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-semicolon-question-mark-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: fragment-semicolon-question-mark-relative</title>
+<input type=url value="#;?">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-slash-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-slash-relative-novalid.html
new file mode 100644
index 0000000000..ccbfa4c2f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/fragment-slash-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: fragment-slash-relative</title>
+<input type=url value="#/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-cr-novalid.html
new file mode 100644
index 0000000000..b47e6fc5fe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: host-cr</title>
+<input type=url value="http://example. org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..f8e96bc449
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: host-double-percent-encoded</title>
+<input type=url value="http://%41.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..392c783d0b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: host-double-percent-encoded-percent-encoded</title>
+<input type=url value="http://%ef%bc%85%ef%bc%94%ef%bc%91.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-empty-novalid.html
new file mode 100644
index 0000000000..d56b619caa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: host-empty</title>
+<input type=url value="http://">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..2ac3f54f43
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: host-empty-userinfo-empty</title>
+<input type=url value="http://@/www.example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..7976c17171
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: host-empty-with-userinfo</title>
+<input type=url value="http://user:pass@/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..d4e59450b8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: host-hostname-in-brackets</title>
+<input type=url value="http://[www.google.com]/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..f18867cc9c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: host-invalid-unicode</title>
+<input type=url value="http://﷐zyx.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..073e1d9edd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: host-invalid-unicode-percent-encoded</title>
+<input type=url value="http://%ef%b7%90zyx.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-newline-novalid.html
new file mode 100644
index 0000000000..01a2a77198
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: host-newline</title>
+<input type=url value="http://example.
+org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-space-novalid.html
new file mode 100644
index 0000000000..95883e2892
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: host-space</title>
+<input type=url value="http://example .org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..eb0b0a23c7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: host-square-brackets-port-contains-colon</title>
+<input type=url value="http://[1::2]:3:4">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-tab-novalid.html
new file mode 100644
index 0000000000..e6be4953ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: host-tab</title>
+<input type=url value="http://example .org">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..c2460b040b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: host-u0000-percent-encoded</title>
+<input type=url value="http://%00.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..905b48383d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: host-u0000-percent-encoded-percent-encoded</title>
+<input type=url value="http://%ef%bc%85%ef%bc%90%ef%bc%90.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..f409db5a02
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: path-bare-percent-sign</title>
+<input type=url value="http://example.com/foo%">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-contains-space-novalid.html
new file mode 100644
index 0000000000..29e3eddf0b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: path-contains-space</title>
+<input type=url value="/a/ /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..8ce609a668
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: path-leading-backslash-at-sign</title>
+<input type=url value="http://foo.com/\@">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..10c69106a4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: path-leading-colon-backslash</title>
+<input type=url value=":\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..b3f22fe4a1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: path-leading-colon-chars-backslash</title>
+<input type=url value=":foo.com\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-leading-space-novalid.html
new file mode 100644
index 0000000000..657fd16e30
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: path-leading-space</title>
+<input type=url value="http://f:21/ b">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..cc232af681
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: path-percent-encoded-malformed</title>
+<input type=url value="http://example.com/foo/%2e%2">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-percent-encoded-slash-plus-slashes-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-percent-encoded-slash-plus-slashes-relative-novalid.html
new file mode 100644
index 0000000000..c717ac0ea5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-percent-encoded-slash-plus-slashes-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: path-percent-encoded-slash-plus-slashes-relative</title>
+<input type=url value="/a/%2f/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-percent-encoded-slash-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-percent-encoded-slash-relative-novalid.html
new file mode 100644
index 0000000000..a61bdcb5b4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-percent-encoded-slash-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: path-percent-encoded-slash-relative</title>
+<input type=url value="/a%2fc">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..f9265b7bbb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: path-relative-square-brackets</title>
+<input type=url value="[61:24:74]:98">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-simple-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-simple-relative-novalid.html
new file mode 100644
index 0000000000..6eb803b798
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-simple-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: path-simple-relative</title>
+<input type=url value="/a/b/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-slash-only-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-slash-only-relative-novalid.html
new file mode 100644
index 0000000000..8fb0efcb46
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-slash-only-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: path-slash-only-relative</title>
+<input type=url value="/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-tab-novalid.html
new file mode 100644
index 0000000000..2d70b76f7c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: path-tab</title>
+<input type=url value="http://example.com/foo bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..8a5b79123a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: path-trailing-space</title>
+<input type=url value="http://f:21/b ?">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-u0091-novalid.html
new file mode 100644
index 0000000000..ed3ec7f0ab
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: path-u0091</title>
+<input type=url value="http://example.com/foo‘">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-999999-novalid.html
new file mode 100644
index 0000000000..9ea67f3782
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: port-999999</title>
+<input type=url value="http://f:999999/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-cr-novalid.html
new file mode 100644
index 0000000000..650968dfce
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: port-cr</title>
+<input type=url value="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..d64939376a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: port-leading-colon-bracket-colon</title>
+<input type=url value="http://2001::1]:80">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..030e9d3299
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: port-leading-colon</title>
+<input type=url value="http://2001::1">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..9ceabb9bd6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: port-leading-dash</title>
+<input type=url value="http://foo:-80/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..02df80f07b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: port-multiple-letters</title>
+<input type=url value="http://f:fifty-two/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-newline-novalid.html
new file mode 100644
index 0000000000..09c399998d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: port-newline</title>
+<input type=url value="http://f:
+/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-single-letter-novalid.html
new file mode 100644
index 0000000000..7b673eb220
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: port-single-letter</title>
+<input type=url value="http://f:b/c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-space-novalid.html
new file mode 100644
index 0000000000..cf8439b4d1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: port-space</title>
+<input type=url value="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-tab-novalid.html
new file mode 100644
index 0000000000..f05db66769
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: port-tab</title>
+<input type=url value="http://f: /c">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/query-empty-no-path-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/query-empty-no-path-relative-novalid.html
new file mode 100644
index 0000000000..9ade778dba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/query-empty-no-path-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: query-empty-no-path-relative</title>
+<input type=url value="?">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/query-leading-space-novalid.html
new file mode 100644
index 0000000000..49196c94a1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: query-leading-space</title>
+<input type=url value="http://f:21/b? d">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..a877bdf1db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: query-trailing-space</title>
+<input type=url value="http://f:21/b?d #">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..aa4204c114
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-data-contains-fragment-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>value warning: scheme-data-contains-fragment</title>
+<input type=url value="data:text/html,test#test">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..e1926f4881
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-data-single-slash</title>
+<input type=url value="data:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..cb2823b84f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-file-backslash</title>
+<input type=url value="file:c:\foo\bar.html">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..4d3d662baa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-file-single-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-file-single-slash-c-bar</title>
+<input type=url value="file:/C|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..5b9c954fc9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-file-slash-slash-abc-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-file-slash-slash-abc-bar</title>
+<input type=url value="file://abc|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..d0bf5325cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-file-triple-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-file-triple-slash-c-bar</title>
+<input type=url value="file:///C|/foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..5fab853b6e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-ftp-no-slash</title>
+<input type=url value="ftp:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..fc6fd7d134
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-ftp-single-slash</title>
+<input type=url value="ftp:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..1de549d939
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-http-backslash</title>
+<input type=url value="http:\\foo.com\">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..9bf960341e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-http-no-slash-colon</title>
+<input type=url value="http::@c:29">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..41b939e021
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-http-no-slash</title>
+<input type=url value="http:foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..11004d954a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-http-no-slash-square-bracket</title>
+<input type=url value="http:[61:27]/:foo">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..f4fd889239
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-http-single-slash</title>
+<input type=url value="http:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..b0b6ae6f45
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-https-no-slash</title>
+<input type=url value="https:example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..5de56191d7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-https-single-slash</title>
+<input type=url value="https:/example.com/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-schemeless-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-schemeless-relative-novalid.html
new file mode 100644
index 0000000000..f626dfe105
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-schemeless-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-schemeless-relative</title>
+<input type=url value="//foo/bar">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..5731f372f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-trailing-cr</title>
+<input type=url value="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..428471ce6d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-trailing-newline</title>
+<input type=url value="a:
+foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..ea2ffe302c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-trailing-space</title>
+<input type=url value="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..40f77c7e82
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: scheme-trailing-tab</title>
+<input type=url value="a: foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..2c62de2474
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: userinfo-backslash</title>
+<input type=url value="http://a\b:c\d@foo.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..00cbff7e82
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: userinfo-password-bad-chars</title>
+<input type=url value="http://&a:foo(b]c@d:2/">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..2d43c88883
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: userinfo-password-contains-pile-of-poo</title>
+<input type=url value="http://foo:💩@example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..4d88541aa7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: userinfo-username-contains-at-sign</title>
+<input type=url value="http://::@c@d:2">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..a457fe6b48
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/input/type-url-value/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid value attribute: userinfo-username-contains-pile-of-poo</title>
+<input type=url value="http://💩:foo@example.com">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite-empty-isvalid.html
new file mode 100644
index 0000000000..a0b625fb70
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty cite is valid</title>
+<ins cite=""></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite-isvalid.html
new file mode 100644
index 0000000000..df75eb0b0a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid cite</title>
+<ins cite="a:foo.com"></ins><!-- scheme-private -->
+<ins cite="foo:/"></ins><!-- scheme-private-slash -->
+<ins cite="foo://"></ins><!-- scheme-private-slash-slash -->
+<ins cite="foo:/bar.com/"></ins><!-- scheme-private-path -->
+<ins cite="foo://///////"></ins><!-- scheme-private-path-leading-slashes-only -->
+<ins cite="foo://///////bar.com/"></ins><!-- scheme-private-path-leading-slashes-chars -->
+<ins cite="foo:////://///"></ins><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<ins cite="c:/foo"></ins><!-- scheme-private-single-letter -->
+<ins cite="madeupscheme:/example.com/"></ins><!-- scheme-private-single-slash -->
+<ins cite="file:/example.com/"></ins><!-- scheme-file-single-slash -->
+<ins cite="ftps:/example.com/"></ins><!-- scheme-ftps-single-slash -->
+<ins cite="gopher:/example.com/"></ins><!-- scheme-gopher-single-slash -->
+<ins cite="ws:/example.com/"></ins><!-- scheme-ws-single-slash -->
+<ins cite="wss:/example.com/"></ins><!-- scheme-wss-single-slash -->
+<ins cite="javascript:/example.com/"></ins><!-- scheme-javascript-single-slash -->
+<ins cite="mailto:/example.com/"></ins><!-- scheme-mailto-single-slash -->
+<ins cite="madeupscheme:example.com/"></ins><!-- scheme-private-no-slash -->
+<ins cite="ftps:example.com/"></ins><!-- scheme-ftps-no-slash -->
+<ins cite="gopher:example.com/"></ins><!-- scheme-gopher-no-slash -->
+<ins cite="wss:example.com/"></ins><!-- scheme-wss-no-slash -->
+<ins cite="mailto:example.com/"></ins><!-- scheme-mailto-no-slash -->
+<ins cite="data:text/plain,foo"></ins><!-- scheme-data-no-slash -->
+<ins cite="http://user:pass@foo:21/bar;par?b#c"></ins><!-- userinfo -->
+<ins cite="http://[2001::1]"></ins><!-- host-ipv6 -->
+<ins cite="http://[2001::1]:80"></ins><!-- host-ipv6-port -->
+<ins cite="http://f:/c"></ins><!-- port-none-but-colon -->
+<ins cite="http://f:0/c"></ins><!-- port-0 -->
+<ins cite="http://f:00000000000000/c"></ins><!-- port-00000000000000 -->
+<ins cite="http://f:00000000000000000000080/c"></ins><!-- port-00000000000000000000080 -->
+<ins cite="http://a:b@c:29/d"></ins><!-- userinfo-host-port-path -->
+<ins cite="http://foo.com:b@d/"></ins><!-- userinfo-username-non-alpha -->
+<ins cite="http://foo/abcd?efgh?ijkl"></ins><!-- query-contains-question-mark -->
+<ins cite="http://foo/abcd#foo?bar"></ins><!-- fragment-contains-question-mark -->
+<ins cite="http://example.com/foo/%2e"></ins><!-- path-percent-encoded-dot -->
+<ins cite="http://example.com/%20foo"></ins><!-- path-percent-encoded-space -->
+<ins cite="http://example.com/©zbar"></ins><!-- path-non-ascii -->
+<ins cite="http://example.com/foo%41%7a"></ins><!-- path-percent-encoded-multiple -->
+<ins cite="http://example.com/foo%91"></ins><!-- path-percent-encoded-u0091 -->
+<ins cite="http://example.com/foo%00"></ins><!-- path-percent-encoded-u0000 -->
+<ins cite="http://example.com/%3A%3a%3C%3c"></ins><!-- path-percent-encoded-mixed-case -->
+<ins cite="http://example.com/你好你好"></ins><!-- path-unicode-han -->
+<ins cite="http://example.com//foo"></ins><!-- path-uFEFF -->
+<ins cite="http://example.com/‮/foo/‭/bar"></ins><!-- path-u202E-u202D -->
+<ins cite="http://💩"></ins><!-- host-is-pile-of-poo -->
+<ins cite="http💩//:foo"></ins><!-- path-contains-pile-of-poo -->
+<ins cite="http://example.com/foo?💩"></ins><!-- query-contains-pile-of-poo -->
+<ins cite="http://example.com/foo#💩"></ins><!-- fragment-contains-pile-of-poo -->
+<ins cite="http://192.0x00A80001"></ins><!-- host-192.0x00A80001 -->
+<ins cite="http://%25DOMAIN:foobar@foodomain.com"></ins><!-- userinfo-username-contains-percent-encoded -->
+<ins cite="http://@www.example.com"></ins><!-- userinfo-empty -->
+<ins cite="http://:b@www.example.com"></ins><!-- userinfo-user-empty -->
+<ins cite="http://a:@www.example.com"></ins><!-- userinfo-password-empty -->
+<ins cite="http://GOO​⁠goo.com"></ins><!-- host-exotic-whitespace -->
+<ins cite="http://www.foo。bar.com"></ins><!-- host-exotic-dot -->
+<ins cite="http://Go.com"></ins><!-- host-fullwidth -->
+<ins cite="http://你好你好"></ins><!-- host-idn-unicode-han -->
+<ins cite="http://192.168.0.257/"></ins><!-- host-IP-address-broken -->
+<ins cite="//foo/bar"></ins><!-- scheme-schemeless-relative -->
+<ins cite="/"></ins><!-- path-slash-only-relative -->
+<ins cite="/a/b/c"></ins><!-- path-simple-relative -->
+<ins cite="/a%2fc"></ins><!-- path-percent-encoded-slash-relative -->
+<ins cite="/a/%2f/c"></ins><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<ins cite="?"></ins><!-- query-empty-no-path-relative -->
+<ins cite="#"></ins><!-- fragment-empty-hash-only-no-path-relative -->
+<ins cite="#/"></ins><!-- fragment-slash-relative -->
+<ins cite="#;?"></ins><!-- fragment-semicolon-question-mark-relative -->
+<ins cite="#β"></ins><!-- fragment-non-ascii-relative -->
+<ins cite="foo.com"></ins><!-- scheme-none-relative -->
+<ins cite=":"></ins><!-- path-colon-relative -->
+<ins cite=":a"></ins><!-- path-leading-colon-letter-relative -->
+<ins cite=":foo.com"></ins><!-- path-leading-colon-chars-relative -->
+<ins cite=":/"></ins><!-- path-leading-colon-slash-relative -->
+<ins cite=":#"></ins><!-- path-leading-colon-hash-relative -->
+<ins cite=":23"></ins><!-- path-leading-colon-number-relative -->
+<ins cite="/:23"></ins><!-- path-slash-colon-number-relative -->
+<ins cite="::"></ins><!-- path-leading-colon-colon-relative -->
+<ins cite="::23"></ins><!-- path-colon-colon-number-relative -->
+<ins cite="💩http://foo"></ins><!-- path-starts-with-pile-of-poo -->
+<ins cite="/💩"></ins><!-- path-slash-pile-of-poo -->
+<ins cite="File://foo/bar.html"></ins><!-- scheme-file-uppercase -->
+<ins cite="file://C|/foo/bar"></ins><!-- scheme-file-slash-slash-c-bar -->
+<ins cite="file://server/foo/bar"></ins><!-- scheme-file-host-included -->
+<ins cite="file:///foo/bar.txt"></ins><!-- scheme-file-host-empty -->
+<ins cite="file:"></ins><!-- scheme-file-scheme-only -->
+<ins cite="file:/"></ins><!-- scheme-file-slash-only -->
+<ins cite="file://"></ins><!-- scheme-file-slash-slash-only -->
+<ins cite="file:///"></ins><!-- scheme-file-slash-slash-slash-only -->
+<ins cite="file:test"></ins><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..a2519ec53e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: fragment-backslash</title>
+<ins cite="#\"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..0f8149f38c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: fragment-contains-hash</title>
+<ins cite="http://foo/path#f#g"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..9ff6f2e967
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: fragment-leading-space</title>
+<ins cite="http://f:21/b# e"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-cr-novalid.html
new file mode 100644
index 0000000000..c436dad378
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-cr</title>
+<ins cite="http://example. org"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..abf421a13e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-double-percent-encoded</title>
+<ins cite="http://%41.com"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..5a39b32a91
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-double-percent-encoded-percent-encoded</title>
+<ins cite="http://%ef%bc%85%ef%bc%94%ef%bc%91.com"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-empty-novalid.html
new file mode 100644
index 0000000000..b2d37f30d3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-empty</title>
+<ins cite="http://"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..b8d2608a71
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-empty-userinfo-empty</title>
+<ins cite="http://@/www.example.com"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..89f04ce799
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-empty-with-userinfo</title>
+<ins cite="http://user:pass@/"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..c56f196084
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-hostname-in-brackets</title>
+<ins cite="http://[www.google.com]/"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..47ca570a94
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-invalid-unicode</title>
+<ins cite="http://﷐zyx.com"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..0f81221428
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-invalid-unicode-percent-encoded</title>
+<ins cite="http://%ef%b7%90zyx.com"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-newline-novalid.html
new file mode 100644
index 0000000000..6750663082
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-newline</title>
+<ins cite="http://example.
+org"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-space-novalid.html
new file mode 100644
index 0000000000..69425323fe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-space</title>
+<ins cite="http://example .org"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..44ab3ecb19
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-square-brackets-port-contains-colon</title>
+<ins cite="http://[1::2]:3:4"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-tab-novalid.html
new file mode 100644
index 0000000000..ddbe575b88
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-tab</title>
+<ins cite="http://example .org"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..065ca6062d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-u0000-percent-encoded</title>
+<ins cite="http://%00.com"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..fc999b5fee
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-u0000-percent-encoded-percent-encoded</title>
+<ins cite="http://%ef%bc%85%ef%bc%90%ef%bc%90.com"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..637bc283e0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-bare-percent-sign</title>
+<ins cite="http://example.com/foo%"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-contains-space-novalid.html
new file mode 100644
index 0000000000..c9b63ed919
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-contains-space</title>
+<ins cite="/a/ /c"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..0773005c3c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-leading-backslash-at-sign</title>
+<ins cite="http://foo.com/\@"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..da1af59e41
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-leading-colon-backslash</title>
+<ins cite=":\"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..95366e5cc1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-leading-colon-chars-backslash</title>
+<ins cite=":foo.com\"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-leading-space-novalid.html
new file mode 100644
index 0000000000..44769d7577
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-leading-space</title>
+<ins cite="http://f:21/ b"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..85177801eb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-percent-encoded-malformed</title>
+<ins cite="http://example.com/foo/%2e%2"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..8ccb9cd775
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-relative-square-brackets</title>
+<ins cite="[61:24:74]:98"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-tab-novalid.html
new file mode 100644
index 0000000000..2cdc5c8f97
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-tab</title>
+<ins cite="http://example.com/foo bar"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..302dac4f61
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-trailing-space</title>
+<ins cite="http://f:21/b ?"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-u0091-novalid.html
new file mode 100644
index 0000000000..1d95411219
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-u0091</title>
+<ins cite="http://example.com/foo‘"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-999999-novalid.html
new file mode 100644
index 0000000000..006149af2f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-999999</title>
+<ins cite="http://f:999999/c"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-cr-novalid.html
new file mode 100644
index 0000000000..194ab6c023
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-cr</title>
+<ins cite="http://f: /c"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..137e699dfa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-leading-colon-bracket-colon</title>
+<ins cite="http://2001::1]:80"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..3ef71420fd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-leading-colon</title>
+<ins cite="http://2001::1"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..b759b88c8e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-leading-dash</title>
+<ins cite="http://foo:-80/"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..d5cc8a21f0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-multiple-letters</title>
+<ins cite="http://f:fifty-two/c"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-newline-novalid.html
new file mode 100644
index 0000000000..d2b7614f41
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-newline</title>
+<ins cite="http://f:
+/c"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-single-letter-novalid.html
new file mode 100644
index 0000000000..9ddd1c56e4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-single-letter</title>
+<ins cite="http://f:b/c"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-space-novalid.html
new file mode 100644
index 0000000000..f6ac1c3553
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-space</title>
+<ins cite="http://f: /c"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-tab-novalid.html
new file mode 100644
index 0000000000..59524a40c9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-tab</title>
+<ins cite="http://f: /c"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/query-leading-space-novalid.html
new file mode 100644
index 0000000000..5cc177a4fd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: query-leading-space</title>
+<ins cite="http://f:21/b? d"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..e05a4ce030
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: query-trailing-space</title>
+<ins cite="http://f:21/b?d #"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..433c5ee63e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/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>
+<ins cite="data:text/html,test#test"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..95a8f8c49e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-data-single-slash</title>
+<ins cite="data:/example.com/"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..ff869b614e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-file-backslash</title>
+<ins cite="file:c:\foo\bar.html"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..83e0203437
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-file-single-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-file-single-slash-c-bar</title>
+<ins cite="file:/C|/foo/bar"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..2d94d1f9b6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-file-slash-slash-abc-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-file-slash-slash-abc-bar</title>
+<ins cite="file://abc|/foo/bar"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..a003799e4e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-file-triple-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-file-triple-slash-c-bar</title>
+<ins cite="file:///C|/foo/bar"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..5d9a291982
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-ftp-no-slash</title>
+<ins cite="ftp:example.com/"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..56ca71cc39
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-ftp-single-slash</title>
+<ins cite="ftp:/example.com/"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..f40b32fae4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-backslash</title>
+<ins cite="http:\\foo.com\"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..ece7ecb2a0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-no-slash-colon</title>
+<ins cite="http::@c:29"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..a604c209e2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-no-slash</title>
+<ins cite="http:foo.com"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..bf9d732f42
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-no-slash-square-bracket</title>
+<ins cite="http:[61:27]/:foo"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..efd9212491
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-single-slash</title>
+<ins cite="http:/example.com/"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..36331cf979
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-https-no-slash</title>
+<ins cite="https:example.com/"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..75d3fb2446
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-https-single-slash</title>
+<ins cite="https:/example.com/"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..c603ca23e3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-trailing-cr</title>
+<ins cite="a: foo.com"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..8762f24b31
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-trailing-newline</title>
+<ins cite="a:
+foo.com"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..8b4b310a1d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-trailing-space</title>
+<ins cite="a: foo.com"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..9cc2491ae3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-trailing-tab</title>
+<ins cite="a: foo.com"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..48e87bdebd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-backslash</title>
+<ins cite="http://a\b:c\d@foo.com"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..0cc9776768
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-password-bad-chars</title>
+<ins cite="http://&a:foo(b]c@d:2/"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..c225c2c7c7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-password-contains-pile-of-poo</title>
+<ins cite="http://foo:💩@example.com"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..6c7c667b0c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-username-contains-at-sign</title>
+<ins cite="http://::@c@d:2"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..de82cee96f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/cite/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-username-contains-pile-of-poo</title>
+<ins cite="http://💩:foo@example.com"></ins>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-0004-02-29-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-0004-02-29-haswarn.html
new file mode 100644
index 0000000000..5fad16aa3c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-0004-02-29-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-0004-02-29</title>
+<ins datetime="0004-02-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-0005-02-29-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-0005-02-29-novalid.html
new file mode 100644
index 0000000000..1d8de9bd88
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-0005-02-29-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-0005-02-29</title>
+<ins datetime="0005-02-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-0214-09-29-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-0214-09-29-haswarn.html
new file mode 100644
index 0000000000..8938898505
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-0214-09-29-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-0214-09-29</title>
+<ins datetime="0214-09-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-1900-02-29-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-1900-02-29-novalid.html
new file mode 100644
index 0000000000..04a87af388
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-1900-02-29-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-1900-02-29</title>
+<ins datetime="1900-02-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-1969-02-29-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-1969-02-29-novalid.html
new file mode 100644
index 0000000000..2ef4400204
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-1969-02-29-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-1969-02-29</title>
+<ins datetime="1969-02-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-20014-09-29-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-20014-09-29-haswarn.html
new file mode 100644
index 0000000000..006804686b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-20014-09-29-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-20014-09-29</title>
+<ins datetime="20014-09-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-2014-02-29-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-2014-02-29-novalid.html
new file mode 100644
index 0000000000..244edadd6e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-2014-02-29-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-2014-02-29</title>
+<ins datetime="2014-02-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-2100-02-29-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-2100-02-29-novalid.html
new file mode 100644
index 0000000000..405a710cc1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-2100-02-29-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-2100-02-29</title>
+<ins datetime="2100-02-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-2200-02-29-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-2200-02-29-novalid.html
new file mode 100644
index 0000000000..6144a86b17
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-2200-02-29-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-2200-02-29</title>
+<ins datetime="2200-02-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-01-32-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-01-32-novalid.html
new file mode 100644
index 0000000000..84a368ae1f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-01-32-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-01-32</title>
+<ins datetime="2002-01-32"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-03-32-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-03-32-novalid.html
new file mode 100644
index 0000000000..4bfa96f2f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-03-32-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-03-32</title>
+<ins datetime="2002-03-32"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-04-31-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-04-31-novalid.html
new file mode 100644
index 0000000000..3e720617ab
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-04-31-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-04-31</title>
+<ins datetime="2002-04-31"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-05-32-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-05-32-novalid.html
new file mode 100644
index 0000000000..8e3129a1c0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-05-32-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-05-32</title>
+<ins datetime="2002-05-32"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-06-31-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-06-31-novalid.html
new file mode 100644
index 0000000000..4ab9d3ab9a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-06-31-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-06-31</title>
+<ins datetime="2002-06-31"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-07-32-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-07-32-novalid.html
new file mode 100644
index 0000000000..e719a2d3cd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-07-32-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-07-32</title>
+<ins datetime="2002-07-32"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-08-32-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-08-32-novalid.html
new file mode 100644
index 0000000000..b64612d67d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-08-32-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-08-32</title>
+<ins datetime="2002-08-32"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-09-31-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-09-31-novalid.html
new file mode 100644
index 0000000000..1274aabe80
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-09-31-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-09-31</title>
+<ins datetime="2002-09-31"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-10-32-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-10-32-novalid.html
new file mode 100644
index 0000000000..2b064605b4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-10-32-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-10-32</title>
+<ins datetime="2002-10-32"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-11-31-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-11-31-novalid.html
new file mode 100644
index 0000000000..ed8dad3e0b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-11-31-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-11-31</title>
+<ins datetime="2002-11-31"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-12-32-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-12-32-novalid.html
new file mode 100644
index 0000000000..c31e099f78
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-12-32-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-12-32</title>
+<ins datetime="2002-12-32"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-missing-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-missing-separator-novalid.html
new file mode 100644
index 0000000000..11e95e25a0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-missing-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-missing-separator</title>
+<ins datetime="2014-0220"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-one-digit-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-one-digit-novalid.html
new file mode 100644
index 0000000000..8d51c0df6f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-one-digit-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-one-digit</title>
+<ins datetime="2002-09-9"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-three-digits-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-three-digits-novalid.html
new file mode 100644
index 0000000000..7f97a5b5f7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-day-three-digits-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-day-three-digits</title>
+<ins datetime="2002-11-009"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-iso8601-YYYYMMDD-no-hyphen-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-iso8601-YYYYMMDD-no-hyphen-novalid.html
new file mode 100644
index 0000000000..a412c46351
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-iso8601-YYYYMMDD-no-hyphen-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-iso8601-YYYYMMDD-no-hyphen</title>
+<ins datetime="20020929"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-leading-bom-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-leading-bom-novalid.html
new file mode 100644
index 0000000000..1b541fbb2f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-leading-bom-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-leading-bom</title>
+<ins datetime="2002-09-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-leading-whitespace-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-leading-whitespace-novalid.html
new file mode 100644
index 0000000000..faa7e7f52e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-leading-whitespace-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-leading-whitespace</title>
+<ins datetime=" 2002-09-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-00-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-00-novalid.html
new file mode 100644
index 0000000000..3aa1dcebf4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-00-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-month-00</title>
+<ins datetime="2002-00-15"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-13-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-13-novalid.html
new file mode 100644
index 0000000000..501528d85d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-13-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-month-13</title>
+<ins datetime="2002-13-15"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-missing-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-missing-separator-novalid.html
new file mode 100644
index 0000000000..a0f7473b69
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-missing-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-month-missing-separator</title>
+<ins datetime="201402-20"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-one-digit-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-one-digit-novalid.html
new file mode 100644
index 0000000000..b26933c02d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-one-digit-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-month-one-digit</title>
+<ins datetime="2002-9-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-three-digits-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-three-digits-novalid.html
new file mode 100644
index 0000000000..b61171df92
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-month-three-digits-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-month-three-digits</title>
+<ins datetime="2002-011-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-non-ascii-digit-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-non-ascii-digit-novalid.html
new file mode 100644
index 0000000000..14c37880ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-non-ascii-digit-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-non-ascii-digit</title>
+<ins datetime="2002-09-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-trailing-U+0000-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-trailing-U+0000-novalid.html
new file mode 100644
index 0000000000..fb849779e2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-trailing-U+0000-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-trailing-U+0000</title>
+<ins datetime="2002-09-29&#x0000;"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-trailing-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-trailing-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..3349cc80a7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-trailing-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-trailing-pile-of-poo</title>
+<ins datetime="2002-09-29💩"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-trailing-whitespace-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-trailing-whitespace-novalid.html
new file mode 100644
index 0000000000..39bbeef70c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-trailing-whitespace-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-trailing-whitespace</title>
+<ins datetime="2002-09-29 "></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-wrong-day-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-wrong-day-separator-novalid.html
new file mode 100644
index 0000000000..530a05e41f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-wrong-day-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-wrong-day-separator</title>
+<ins datetime="2014-02:20"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-wrong-month-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-wrong-month-separator-novalid.html
new file mode 100644
index 0000000000..9ed0be6f8e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-wrong-month-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-wrong-month-separator</title>
+<ins datetime="2014:02-20"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-year-0000-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-year-0000-novalid.html
new file mode 100644
index 0000000000..4f5e524a9c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-year-0000-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-year-0000</title>
+<ins datetime="0000-12-09"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-year-five-digits-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-year-five-digits-haswarn.html
new file mode 100644
index 0000000000..6de3a43261
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-year-five-digits-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-year-five-digits</title>
+<ins datetime="12014-09-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-year-negative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-year-negative-novalid.html
new file mode 100644
index 0000000000..767b9f4761
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-year-negative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-year-negative</title>
+<ins datetime="-2002-09-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-year-three-digits-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-year-three-digits-novalid.html
new file mode 100644
index 0000000000..805b6a214b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/date-year-three-digits-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>date-year-three-digits</title>
+<ins datetime="782-09-29"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/datetime-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/datetime-isvalid.html
new file mode 100644
index 0000000000..85862d67ba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/datetime-isvalid.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid datetime</title>
+<ins datetime="2002-09-29"></ins> <!-- date -->
+<ins datetime="2000-02-29"></ins> <!-- date-2000-02-29 -->
+<ins datetime="2400-02-29"></ins> <!-- date-2400-02-29 -->
+<ins datetime="1968-02-29"></ins> <!-- date-1968-02-29 -->
+<ins datetime="1900-02-28"></ins> <!-- date-1900-02-28 -->
+<ins datetime="2100-02-28"></ins> <!-- date-2100-02-28 -->
+<ins datetime="2200-02-28"></ins> <!-- date-2200-02-28 -->
+<ins datetime="2014-02-28"></ins> <!-- date-2014-02-28 -->
+<ins datetime="2002-01-31"></ins> <!-- date-day-01-31 -->
+<ins datetime="2002-03-31"></ins> <!-- date-day-03-31 -->
+<ins datetime="2002-05-31"></ins> <!-- date-day-05-31 -->
+<ins datetime="2002-07-31"></ins> <!-- date-day-07-31 -->
+<ins datetime="2002-08-31"></ins> <!-- date-day-08-31 -->
+<ins datetime="2002-10-31"></ins> <!-- date-day-10-31 -->
+<ins datetime="2002-12-31"></ins> <!-- date-day-12-31 -->
+<ins datetime="2002-04-30"></ins> <!-- date-day-04-30 -->
+<ins datetime="2002-06-30"></ins> <!-- date-day-06-30 -->
+<ins datetime="2002-09-30"></ins> <!-- date-day-09-30 -->
+<ins datetime="2002-11-30"></ins> <!-- date-day-11-30 -->
+<ins datetime="2011-11-12T14:54Z"></ins> <!-- global-date-and-time-no-seconds -->
+<ins datetime="2011-11-12T14:54:39+0000"></ins> <!-- global-date-and-time-with-seconds -->
+<ins datetime="2011-11-12T06:54:39.9-08:00"></ins> <!-- global-date-and-time-with-one-digit-fraction -->
+<ins datetime="2011-11-12T06:54:39.92+07:00"></ins> <!-- global-date-and-time-with-two-digit-fraction -->
+<ins datetime="2011-11-12T06:54:39.929-06:00"></ins> <!-- global-date-and-time-with-three-digit-fraction -->
+<ins datetime="2011-11-12 14:54Z"></ins> <!-- global-date-and-time-space -->
+<ins datetime="2011-11-12T06:54:39+0900"></ins> <!-- global-date-and-time-timezone -->
+<ins datetime="2011-11-12T06:54:39-0830"></ins> <!-- global-date-and-time-timezone-30 -->
+<ins datetime="2011-11-12T06:54:39-0845"></ins> <!-- global-date-and-time-timezone-45 -->
+<ins datetime="2011-11-12T06:54:39-08:00"></ins> <!-- global-date-and-time-timezone-with-colon -->
+<ins datetime="2011-11-12T06:54:39-0800"></ins> <!-- global-date-and-time-timezone-without-colon -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/duration-P-form-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/duration-P-form-novalid.html
new file mode 100644
index 0000000000..addb39e6c6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/duration-P-form-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>duration-P-form</title>
+<ins datetime="PT4H18M3S"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/duration-time-component-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/duration-time-component-novalid.html
new file mode 100644
index 0000000000..6151e9ee74
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/duration-time-component-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>duration-time-component</title>
+<ins datetime="4h 18m 3s"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-2400-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-2400-novalid.html
new file mode 100644
index 0000000000..2d77c4c5d6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-2400-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-2400</title>
+<ins datetime="2011-11-12T24:00:00+08:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-60-minutes-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-60-minutes-novalid.html
new file mode 100644
index 0000000000..59895e85fb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-60-minutes-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-60-minutes</title>
+<ins datetime="2011-11-12T00:60:00+08:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-60-seconds-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-60-seconds-novalid.html
new file mode 100644
index 0000000000..f20905342f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-60-seconds-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-60-seconds</title>
+<ins datetime="2011-11-12T00:00:60+08:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-bad-fraction-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-bad-fraction-separator-novalid.html
new file mode 100644
index 0000000000..68d44b2ded
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-bad-fraction-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-bad-fraction-separator</title>
+<ins datetime="2011-11-12T14:54:39,929+0000"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-four-digit-fraction-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-four-digit-fraction-novalid.html
new file mode 100644
index 0000000000..7d130bffb1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-four-digit-fraction-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-four-digit-fraction</title>
+<ins datetime="2011-11-12T06:54:39.9291-08:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-hour-one-digit-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-hour-one-digit-novalid.html
new file mode 100644
index 0000000000..10f4c7d40a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-hour-one-digit-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-hour-one-digit</title>
+<ins datetime="2011-11-12T6:54:39-08:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-hour-three-digits-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-hour-three-digits-novalid.html
new file mode 100644
index 0000000000..edea421e5d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-hour-three-digits-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-hour-three-digits</title>
+<ins datetime="2011-11-12T016:54:39-08:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-iso8601-hh-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-iso8601-hh-novalid.html
new file mode 100644
index 0000000000..9f9b0536b8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-iso8601-hh-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-iso8601-hh</title>
+<ins datetime="2011-11-12T14Z"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-iso8601-hhmm-no-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-iso8601-hhmm-no-colon-novalid.html
new file mode 100644
index 0000000000..67a041220e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-iso8601-hhmm-no-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-iso8601-hhmm-no-colon</title>
+<ins datetime="2011-11-12T1454Z"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-iso8601-hhmmss-no-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-iso8601-hhmmss-no-colon-novalid.html
new file mode 100644
index 0000000000..5b868661bb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-iso8601-hhmmss-no-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-iso8601-hhmmss-no-colon</title>
+<ins datetime="2011-11-12T145439Z"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-lowercase-z-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-lowercase-z-novalid.html
new file mode 100644
index 0000000000..b4fd1d917d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-lowercase-z-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-lowercase-z</title>
+<ins datetime="2011-11-12T14:54z"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-minutes-one-digit-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-minutes-one-digit-novalid.html
new file mode 100644
index 0000000000..7d87823451
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-minutes-one-digit-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-minutes-one-digit</title>
+<ins datetime="2011-11-12T16:4:39-08:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-minutes-three-digits-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-minutes-three-digits-novalid.html
new file mode 100644
index 0000000000..bdeeba4971
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-minutes-three-digits-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-minutes-three-digits</title>
+<ins datetime="2011-11-12T16:354:39-08:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-missing-minutes-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-missing-minutes-separator-novalid.html
new file mode 100644
index 0000000000..174db0e6f1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-missing-minutes-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-missing-minutes-separator</title>
+<ins datetime="2011-11-12T1454Z"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-missing-seconds-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-missing-seconds-separator-novalid.html
new file mode 100644
index 0000000000..745f243dba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-missing-seconds-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-missing-seconds-separator</title>
+<ins datetime="2011-11-12T14:5439Z"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-nbsp-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-nbsp-novalid.html
new file mode 100644
index 0000000000..292dc36e23
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-nbsp-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-nbsp</title>
+<ins datetime="2011-11-12 14:54Z"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-seconds-one-digit-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-seconds-one-digit-novalid.html
new file mode 100644
index 0000000000..bd9bddd02c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-seconds-one-digit-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-seconds-one-digit</title>
+<ins datetime="2011-11-12T16:54:9-08:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-seconds-three-digits-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-seconds-three-digits-novalid.html
new file mode 100644
index 0000000000..12968b15dd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-seconds-three-digits-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-seconds-three-digits</title>
+<ins datetime="2011-11-12T16:54:039-08:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-space-before-timezone-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-space-before-timezone-novalid.html
new file mode 100644
index 0000000000..d97bfc4e32
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-space-before-timezone-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-space-before-timezone</title>
+<ins datetime="2011-11-12T06:54:39 08:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-60-minutes-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-60-minutes-novalid.html
new file mode 100644
index 0000000000..4dbd785bf8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-60-minutes-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-60-minutes</title>
+<ins datetime="2011-11-12T06:54:39-08:60"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-iso8601-two-digit-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-iso8601-two-digit-novalid.html
new file mode 100644
index 0000000000..c60facf9d7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-iso8601-two-digit-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-iso8601-two-digit</title>
+<ins datetime="2011-11-12T06:54:39-08"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-lowercase-t-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-lowercase-t-novalid.html
new file mode 100644
index 0000000000..056c876ae8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-lowercase-t-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-lowercase-t</title>
+<ins datetime="2011-11-12t14:54Z"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-minus-1300-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-minus-1300-haswarn.html
new file mode 100644
index 0000000000..314e0ce2cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-minus-1300-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-minus-1300</title>
+<ins datetime="2011-11-12T00:00:00-1300"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-minus-2400-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-minus-2400-novalid.html
new file mode 100644
index 0000000000..63b239712a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-minus-2400-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-minus-2400</title>
+<ins datetime="2011-11-12T06:54:39-24:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-minutes-15-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-minutes-15-haswarn.html
new file mode 100644
index 0000000000..c65cc9038c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-minutes-15-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-minutes-15</title>
+<ins datetime="2011-11-12T00:00:00+08:15"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-multiple-spaces-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-multiple-spaces-novalid.html
new file mode 100644
index 0000000000..20659abc92
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-multiple-spaces-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-multiple-spaces</title>
+<ins datetime="2011-11-12 14:54Z"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-non-T-character-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-non-T-character-novalid.html
new file mode 100644
index 0000000000..17b7024764
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-non-T-character-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-non-T-character</title>
+<ins datetime="2011-11-12+14:54Z"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-offset-colon-start-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-offset-colon-start-novalid.html
new file mode 100644
index 0000000000..6b81d78831
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-offset-colon-start-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-offset-colon-start</title>
+<ins datetime="2011-11-12T06:54:39.929:08:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-offset-space-start-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-offset-space-start-novalid.html
new file mode 100644
index 0000000000..6d5ae82019
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-offset-space-start-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-offset-space-start</title>
+<ins datetime="2011-11-12T06:54:39.929 08:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-one-digit-hour-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-one-digit-hour-novalid.html
new file mode 100644
index 0000000000..292fd1340f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-one-digit-hour-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-one-digit-hour</title>
+<ins datetime="2011-11-12T06:54:39-5:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-one-digit-minute-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-one-digit-minute-novalid.html
new file mode 100644
index 0000000000..a1afb91704
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-one-digit-minute-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-one-digit-minute</title>
+<ins datetime="2011-11-12T06:54:39-05:0"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-plus-1500-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-plus-1500-haswarn.html
new file mode 100644
index 0000000000..91b6e23b8a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-plus-1500-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-plus-1500</title>
+<ins datetime="2011-11-12T00:00:00+1500"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-plus-2400-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-plus-2400-novalid.html
new file mode 100644
index 0000000000..6044623bc2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-plus-2400-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-plus-2400</title>
+<ins datetime="2011-11-12T06:54:39-24:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-three-digit-hour-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-three-digit-hour-novalid.html
new file mode 100644
index 0000000000..ba7b84b32e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-three-digit-hour-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-three-digit-hour</title>
+<ins datetime="2011-11-12T06:54:39-005:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-three-digit-minute-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-three-digit-minute-novalid.html
new file mode 100644
index 0000000000..8b1fb6d368
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-three-digit-minute-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-three-digit-minute</title>
+<ins datetime="2011-11-12T06:54:39-05:000"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-with-seconds-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-with-seconds-novalid.html
new file mode 100644
index 0000000000..6d51004edc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-timezone-with-seconds-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-timezone-with-seconds</title>
+<ins datetime="2011-11-12T06:54:39-08:00:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-with-both-T-and-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-with-both-T-and-space-novalid.html
new file mode 100644
index 0000000000..6c67d7cf2d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-with-both-T-and-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-with-both-T-and-space</title>
+<ins datetime="2011-11-12T 14:54Z"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-wrong-minutes-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-wrong-minutes-separator-novalid.html
new file mode 100644
index 0000000000..a19752c6f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-wrong-minutes-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-wrong-minutes-separator</title>
+<ins datetime="2011-11-12T14-54Z"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-wrong-seconds-separator-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-wrong-seconds-separator-novalid.html
new file mode 100644
index 0000000000..03f7b3579a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-wrong-seconds-separator-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-wrong-seconds-separator</title>
+<ins datetime="2011-11-12T14:54-39Z"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-zero-digit-fraction-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-zero-digit-fraction-novalid.html
new file mode 100644
index 0000000000..1e388dd994
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/global-date-and-time-zero-digit-fraction-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>global-date-and-time-zero-digit-fraction</title>
+<ins datetime="2011-11-12T06:54:39.-08:00"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/local-date-and-time-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/local-date-and-time-novalid.html
new file mode 100644
index 0000000000..32136f3e54
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/local-date-and-time-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>local-date-and-time</title>
+<ins datetime="2011-11-12T14:54"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/model-isvalid.html
new file mode 100644
index 0000000000..cd10ac511e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/model-isvalid.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;ins&gt;</title>
+</head>
+<body>
+
+ <!-- can contain strictly inline while in strictly inline context -->
+ <p><dfn>strictly inline
+ <ins>
+ <em>text</em>
+ </ins>
+ </dfn></p>
+
+ <!-- can contain interactive if ancestor does not forbid it -->
+ <p>paragraph
+ <ins>
+ <a>link</a>
+ </ins>
+ </p>
+ <p><dfn>strictly inline
+ <ins>
+ <a>link</a>
+ </ins>
+ </dfn></p>
+
+ <!-- ins with flow content and flow parent -->
+ <div><ins><p>foo</p></ins></div>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/model-novalid.html
new file mode 100644
index 0000000000..65ee321f2f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/model-novalid.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;ins&gt;</title>
+</head>
+<body>
+ <!-- can contain inline while in inline context -->
+ <p>paragraph
+ <ins>
+ <em>some</em> <ul><li>inline</li></ul> content
+ </ins>
+ </p>
+
+ <!-- can contain strictly inline while in strictly inline context -->
+ <p><dfn>strictly inline
+ <ins>
+ <em>text</em>
+ </ins>
+ </dfn></p>
+
+ <!-- can contain blocks while in block context -->
+ <ins>
+ <p>text</p>
+ </ins>
+
+ <!-- can contain interactive if ancestor does not forbid it -->
+ <p>paragraph
+ <ins>
+ <a>link</a>
+ </ins>
+ </p>
+ <p><dfn>strictly inline
+ <ins>
+ <a>link</a>
+ </ins>
+ </dfn></p>
+ <ins>
+ <p><a>link</a></p>
+ </ins>
+
+ <!-- ins with flow content and phrasing parent -->
+ <span><ins><p>foo</p></ins></span>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/month-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/month-novalid.html
new file mode 100644
index 0000000000..57f8bf0da2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/month-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>month</title>
+<ins datetime="2011-11"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/time-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/time-novalid.html
new file mode 100644
index 0000000000..aaf798ff77
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/time-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>time</title>
+<ins datetime="14:54:39"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/week-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/week-novalid.html
new file mode 100644
index 0000000000..77c2dcfc96
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/week-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>week</title>
+<ins datetime="2011-W46"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/year-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/year-novalid.html
new file mode 100644
index 0000000000..b971e7fbf4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/year-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>year</title>
+<ins datetime="2006"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ins/yearless-date-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ins/yearless-date-novalid.html
new file mode 100644
index 0000000000..e477cb4521
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ins/yearless-date-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>yearless-date</title>
+<ins datetime="07-15"></ins> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/kbd/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/kbd/model-isvalid.html
new file mode 100644
index 0000000000..45646d0eb5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/kbd/model-isvalid.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;kbd&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><kbd class="class" lang="en">text</kbd></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><kbd class="class" lang="en">text</kbd></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <kbd></kbd></p>
+ <p>text <dfn><kbd></kbd></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><kbd><a>text</a></kbd></p>
+ <p><dfn><kbd><a>text</a></kbd></dfn></p>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/kbd/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/kbd/model-novalid.html
new file mode 100644
index 0000000000..8bfbb88395
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/kbd/model-novalid.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;kbd&gt;</title>
+</head>
+<body>
+ <!-- not a block -->
+ <kbd>text</kbd>
+
+ <!-- cannot contain structured inline -->
+ <p><kbd><ul><li>text</li></ul></kbd></p>
+
+ <!-- cannot contain interactive if parent forbids interactive -->
+ <p><a><kbd><a>text</a></kbd></a></p>
+ <p><a><dfn><kbd><a>text</a></kbd></dfn></a></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/keygen/challenge-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/challenge-novalid.html
new file mode 100644
index 0000000000..09bb2a096c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/challenge-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>keygen with "challenge" attribute</title>
+</head>
+<body>
+<keygen challenge="123456">
+<keygen challenge=""> <!-- empty challenge -->
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/keygen/id-bad-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/id-bad-novalid.html
new file mode 100644
index 0000000000..1c8d72c781
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/id-bad-novalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>keygen as &lt;label> descendant, with wrong ID</title>
+</head>
+<body>
+<label for="foo">
+<keygen id="bar">
+</label>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/keygen/id-missing-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/id-missing-novalid.html
new file mode 100644
index 0000000000..1793192c85
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/id-missing-novalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>keygen as &lt;label> descendant, with no ID</title>
+</head>
+<body>
+<label for="foo">
+<keygen>
+</label>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/keygen/id-redundant-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/id-redundant-novalid.html
new file mode 100644
index 0000000000..9bc49b5ed1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/id-redundant-novalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>keygen as redundant &lt;label> descendant</title>
+</head>
+<body>
+<label for="foo">
+<input id="foo">
+<keygen>
+</label>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/keygen/keygen-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/keygen-novalid.html
new file mode 100644
index 0000000000..eaf82b4b98
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/keygen-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>keygen is never valid</title>
+</head>
+<body>
+<keygen>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-bad-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-bad-value-novalid.html
new file mode 100644
index 0000000000..791f7c2063
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-bad-value-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>keygen with invalid value for "keytype" attribute</title>
+</head>
+<body>
+<keygen keytype="dsa">
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-empty-novalid.html
new file mode 100644
index 0000000000..88c32a9690
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-empty-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>keygen with invalid empty "keytype" attribute</title>
+</head>
+<body>
+<keygen keytype="">
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-novalid.html
new file mode 100644
index 0000000000..a92a32a864
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/keytype-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>keygen with "keytype" attribute</title>
+</head>
+<body>
+<keygen keytype="rsa">
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/keygen/model-also-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/model-also-novalid.html
new file mode 100644
index 0000000000..953ec6ad09
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/model-also-novalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>keygen as &lt;label> descendant</title>
+</head>
+<body>
+<label for="foo">
+<keygen id="foo">
+</label>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/keygen/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/model-novalid.html
new file mode 100644
index 0000000000..8d267093ab
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/model-novalid.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>keygen as an invalid &lt;a> descendant</title>
+</head>
+<body>
+<a href="url">
+<keygen>
+</a>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/keygen/no-attributes-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/no-attributes-novalid.html
new file mode 100644
index 0000000000..ca17832aa6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/no-attributes-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>keygen with no attributes</title>
+</head>
+<body>
+<keygen>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/keygen/non-void-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/non-void-novalid.html
new file mode 100644
index 0000000000..fb5fcef0cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/keygen/non-void-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>no-void keygen</title>
+</head>
+<body>
+<keygen>foo</keygen>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/label/for-descendant-no-id-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/label/for-descendant-no-id-novalid.html
new file mode 100644
index 0000000000..2f1ed73f2b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/label/for-descendant-no-id-novalid.html
@@ -0,0 +1 @@
+<!doctype html><meta charset=utf-8><title>&lt;input id=a>&lt;label for=a>&lt;input></title><p>There should be an error. <input id=a><label for=a><input></label>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/label/for-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/label/for-isvalid.html
new file mode 100644
index 0000000000..c4a4e60da4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/label/for-isvalid.html
@@ -0,0 +1 @@
+<!doctype html><meta charset=utf-8><title>&lt;label for=a>&lt;input id=a></title><p>There should be no error. <label for=a><input id=a></label>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/label/multiple-descendants-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/label/multiple-descendants-novalid.html
new file mode 100644
index 0000000000..014085bb6b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/label/multiple-descendants-novalid.html
@@ -0,0 +1 @@
+<!doctype html><meta charset=utf-8><title>&lt;label>&lt;input>&lt;input></title><p>There should be an error. <label><input><input></label>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href-empty-novalid.html
new file mode 100644
index 0000000000..fb1f349f75
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty href is not valid</title>
+<link href="" rel>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href-isvalid.html
new file mode 100644
index 0000000000..1ebfd3bfcb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid href</title>
+<link href="a:foo.com" rel=help><!-- scheme-private -->
+<link href="foo:/" rel=help><!-- scheme-private-slash -->
+<link href="foo://" rel=help><!-- scheme-private-slash-slash -->
+<link href="foo:/bar.com/" rel=help><!-- scheme-private-path -->
+<link href="foo://///////" rel=help><!-- scheme-private-path-leading-slashes-only -->
+<link href="foo://///////bar.com/" rel=help><!-- scheme-private-path-leading-slashes-chars -->
+<link href="foo:////://///" rel=help><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<link href="c:/foo" rel=help><!-- scheme-private-single-letter -->
+<link href="madeupscheme:/example.com/" rel=help><!-- scheme-private-single-slash -->
+<link href="file:/example.com/" rel=help><!-- scheme-file-single-slash -->
+<link href="ftps:/example.com/" rel=help><!-- scheme-ftps-single-slash -->
+<link href="gopher:/example.com/" rel=help><!-- scheme-gopher-single-slash -->
+<link href="ws:/example.com/" rel=help><!-- scheme-ws-single-slash -->
+<link href="wss:/example.com/" rel=help><!-- scheme-wss-single-slash -->
+<link href="javascript:/example.com/" rel=help><!-- scheme-javascript-single-slash -->
+<link href="mailto:/example.com/" rel=help><!-- scheme-mailto-single-slash -->
+<link href="madeupscheme:example.com/" rel=help><!-- scheme-private-no-slash -->
+<link href="ftps:example.com/" rel=help><!-- scheme-ftps-no-slash -->
+<link href="gopher:example.com/" rel=help><!-- scheme-gopher-no-slash -->
+<link href="wss:example.com/" rel=help><!-- scheme-wss-no-slash -->
+<link href="mailto:example.com/" rel=help><!-- scheme-mailto-no-slash -->
+<link href="data:text/plain,foo" rel=help><!-- scheme-data-no-slash -->
+<link href="http://user:pass@foo:21/bar;par?b#c" rel=help><!-- userinfo -->
+<link href="http://[2001::1]" rel=help><!-- host-ipv6 -->
+<link href="http://[2001::1]:80" rel=help><!-- host-ipv6-port -->
+<link href="http://f:/c" rel=help><!-- port-none-but-colon -->
+<link href="http://f:0/c" rel=help><!-- port-0 -->
+<link href="http://f:00000000000000/c" rel=help><!-- port-00000000000000 -->
+<link href="http://f:00000000000000000000080/c" rel=help><!-- port-00000000000000000000080 -->
+<link href="http://a:b@c:29/d" rel=help><!-- userinfo-host-port-path -->
+<link href="http://foo.com:b@d/" rel=help><!-- userinfo-username-non-alpha -->
+<link href="http://foo/abcd?efgh?ijkl" rel=help><!-- query-contains-question-mark -->
+<link href="http://foo/abcd#foo?bar" rel=help><!-- fragment-contains-question-mark -->
+<link href="http://example.com/foo/%2e" rel=help><!-- path-percent-encoded-dot -->
+<link href="http://example.com/%20foo" rel=help><!-- path-percent-encoded-space -->
+<link href="http://example.com/©zbar" rel=help><!-- path-non-ascii -->
+<link href="http://example.com/foo%41%7a" rel=help><!-- path-percent-encoded-multiple -->
+<link href="http://example.com/foo%91" rel=help><!-- path-percent-encoded-u0091 -->
+<link href="http://example.com/foo%00" rel=help><!-- path-percent-encoded-u0000 -->
+<link href="http://example.com/%3A%3a%3C%3c" rel=help><!-- path-percent-encoded-mixed-case -->
+<link href="http://example.com/你好你好" rel=help><!-- path-unicode-han -->
+<link href="http://example.com//foo" rel=help><!-- path-uFEFF -->
+<link href="http://example.com/‮/foo/‭/bar" rel=help><!-- path-u202E-u202D -->
+<link href="http://💩" rel=help><!-- host-is-pile-of-poo -->
+<link href="http💩//:foo" rel=help><!-- path-contains-pile-of-poo -->
+<link href="http://example.com/foo?💩" rel=help><!-- query-contains-pile-of-poo -->
+<link href="http://example.com/foo#💩" rel=help><!-- fragment-contains-pile-of-poo -->
+<link href="http://192.0x00A80001" rel=help><!-- host-192.0x00A80001 -->
+<link href="http://%25DOMAIN:foobar@foodomain.com" rel=help><!-- userinfo-username-contains-percent-encoded -->
+<link href="http://@www.example.com" rel=help><!-- userinfo-empty -->
+<link href="http://:b@www.example.com" rel=help><!-- userinfo-user-empty -->
+<link href="http://a:@www.example.com" rel=help><!-- userinfo-password-empty -->
+<link href="http://GOO​⁠goo.com" rel=help><!-- host-exotic-whitespace -->
+<link href="http://www.foo。bar.com" rel=help><!-- host-exotic-dot -->
+<link href="http://Go.com" rel=help><!-- host-fullwidth -->
+<link href="http://你好你好" rel=help><!-- host-idn-unicode-han -->
+<link href="http://192.168.0.257/" rel=help><!-- host-IP-address-broken -->
+<link href="//foo/bar" rel=help><!-- scheme-schemeless-relative -->
+<link href="/" rel=help><!-- path-slash-only-relative -->
+<link href="/a/b/c" rel=help><!-- path-simple-relative -->
+<link href="/a%2fc" rel=help><!-- path-percent-encoded-slash-relative -->
+<link href="/a/%2f/c" rel=help><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<link href="?" rel=help><!-- query-empty-no-path-relative -->
+<link href="#" rel=help><!-- fragment-empty-hash-only-no-path-relative -->
+<link href="#/" rel=help><!-- fragment-slash-relative -->
+<link href="#;?" rel=help><!-- fragment-semicolon-question-mark-relative -->
+<link href="#β" rel=help><!-- fragment-non-ascii-relative -->
+<link href="foo.com" rel=help><!-- scheme-none-relative -->
+<link href=":" rel=help><!-- path-colon-relative -->
+<link href=":a" rel=help><!-- path-leading-colon-letter-relative -->
+<link href=":foo.com" rel=help><!-- path-leading-colon-chars-relative -->
+<link href=":/" rel=help><!-- path-leading-colon-slash-relative -->
+<link href=":#" rel=help><!-- path-leading-colon-hash-relative -->
+<link href=":23" rel=help><!-- path-leading-colon-number-relative -->
+<link href="/:23" rel=help><!-- path-slash-colon-number-relative -->
+<link href="::" rel=help><!-- path-leading-colon-colon-relative -->
+<link href="::23" rel=help><!-- path-colon-colon-number-relative -->
+<link href="💩http://foo" rel=help><!-- path-starts-with-pile-of-poo -->
+<link href="/💩" rel=help><!-- path-slash-pile-of-poo -->
+<link href="File://foo/bar.html" rel=help><!-- scheme-file-uppercase -->
+<link href="file://C|/foo/bar" rel=help><!-- scheme-file-slash-slash-c-bar -->
+<link href="file://server/foo/bar" rel=help><!-- scheme-file-host-included -->
+<link href="file:///foo/bar.txt" rel=help><!-- scheme-file-host-empty -->
+<link href="file:" rel=help><!-- scheme-file-scheme-only -->
+<link href="file:/" rel=help><!-- scheme-file-slash-only -->
+<link href="file://" rel=help><!-- scheme-file-slash-slash-only -->
+<link href="file:///" rel=help><!-- scheme-file-slash-slash-slash-only -->
+<link href="file:test" rel=help><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href-missing-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href-missing-novalid.html
new file mode 100644
index 0000000000..eded973f6b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href-missing-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta charset=utf-8>
+<title>link element missing href attribute</title>
+<link rel=stylesheet>
+</head>
+<body>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href-whitespace-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href-whitespace-only-novalid.html
new file mode 100644
index 0000000000..6874b11973
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href-whitespace-only-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty href is not valid</title>
+<link href="
+" rel>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..8f59c37ca8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: fragment-backslash</title>
+<link href="#\" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..77997986af
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: fragment-contains-hash</title>
+<link href="http://foo/path#f#g" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..3cd63e09c7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: fragment-leading-space</title>
+<link href="http://f:21/b# e" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-cr-novalid.html
new file mode 100644
index 0000000000..f66c1640ac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-cr</title>
+<link href="http://example. org" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..591dca8523
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://%41.com" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..484097db86
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://%ef%bc%85%ef%bc%94%ef%bc%91.com" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-empty-novalid.html
new file mode 100644
index 0000000000..30bfc0f084
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-empty</title>
+<link href="http://" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..027efe0d44
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://@/www.example.com" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..b07878ee91
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://user:pass@/" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..03b35eb582
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://[www.google.com]/" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..22b5e8d3cd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-invalid-unicode</title>
+<link href="http://﷐zyx.com" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..fcba2a20bd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://%ef%b7%90zyx.com" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-newline-novalid.html
new file mode 100644
index 0000000000..446a0d4803
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-newline</title>
+<link href="http://example.
+org" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-space-novalid.html
new file mode 100644
index 0000000000..7cf4ab8d3b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-space</title>
+<link href="http://example .org" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..34500ab8c0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://[1::2]:3:4" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-tab-novalid.html
new file mode 100644
index 0000000000..4f4a97bd3c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: host-tab</title>
+<link href="http://example .org" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..905c8661ff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://%00.com" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..084773e6f4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://%ef%bc%85%ef%bc%90%ef%bc%90.com" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..1e02cf8e81
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://example.com/foo%" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-contains-space-novalid.html
new file mode 100644
index 0000000000..8386f5d801
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-contains-space</title>
+<link href="/a/ /c" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..5c333681ba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://foo.com/\@" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..19d37d8f10
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href=":\" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..5580214cb0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href=":foo.com\" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-leading-space-novalid.html
new file mode 100644
index 0000000000..2889005854
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-leading-space</title>
+<link href="http://f:21/ b" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..599fecbbc2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://example.com/foo/%2e%2" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..630062db8e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="[61:24:74]:98" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-tab-novalid.html
new file mode 100644
index 0000000000..4c5e234c4f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-tab</title>
+<link href="http://example.com/foo bar" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..f8bcef833b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-trailing-space</title>
+<link href="http://f:21/b ?" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-u0091-novalid.html
new file mode 100644
index 0000000000..5bed826c04
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: path-u0091</title>
+<link href="http://example.com/foo‘" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-999999-novalid.html
new file mode 100644
index 0000000000..4b7e189c42
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-999999</title>
+<link href="http://f:999999/c" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-cr-novalid.html
new file mode 100644
index 0000000000..030307b479
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-cr</title>
+<link href="http://f: /c" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..0bf977156b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://2001::1]:80" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..04eb695a04
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-leading-colon</title>
+<link href="http://2001::1" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..f77f17e138
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-leading-dash</title>
+<link href="http://foo:-80/" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..2a8ab2aac0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-multiple-letters</title>
+<link href="http://f:fifty-two/c" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-newline-novalid.html
new file mode 100644
index 0000000000..5346b4fa2e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-newline</title>
+<link href="http://f:
+/c" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-single-letter-novalid.html
new file mode 100644
index 0000000000..f0b2d51179
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-single-letter</title>
+<link href="http://f:b/c" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-space-novalid.html
new file mode 100644
index 0000000000..1acf0b3d38
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-space</title>
+<link href="http://f: /c" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-tab-novalid.html
new file mode 100644
index 0000000000..4371db32de
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: port-tab</title>
+<link href="http://f: /c" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/query-leading-space-novalid.html
new file mode 100644
index 0000000000..1a45d5a807
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: query-leading-space</title>
+<link href="http://f:21/b? d" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..ccd4596d3d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: query-trailing-space</title>
+<link href="http://f:21/b?d #" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..70fd6492c5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="data:text/html,test#test" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..95f8958069
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="data:/example.com/" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..8b37e6b76f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-file-backslash</title>
+<link href="file:c:\foo\bar.html" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..cb02748125
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="file:/C|/foo/bar" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..e07fbfced4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="file://abc|/foo/bar" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..0364ce6497
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="file:///C|/foo/bar" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..17a72ac542
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="ftp:example.com/" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..c930a16b47
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="ftp:/example.com/" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..af1814b44b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-http-backslash</title>
+<link href="http:\\foo.com\" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..816bd3b254
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http::@c:29" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..1678caac76
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http:foo.com" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..f768ffa9dc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http:[61:27]/:foo" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..b2210d4900
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http:/example.com/" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..13c5e34620
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="https:example.com/" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..b9192eb216
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="https:/example.com/" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..3877fab7cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-cr</title>
+<link href="a: foo.com" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..5b747be012
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-newline</title>
+<link href="a:
+foo.com" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..65dd25d843
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-space</title>
+<link href="a: foo.com" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..934a8c4d37
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: scheme-trailing-tab</title>
+<link href="a: foo.com" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..78e636f58c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid href: userinfo-backslash</title>
+<link href="http://a\b:c\d@foo.com" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..259f84eb61
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://&a:foo(b]c@d:2/" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..5acd244ccf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://foo:💩@example.com" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..1cff4f2753
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://::@c@d:2" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/href/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/href/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..0db2f57b98
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/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>
+<link href="http://💩:foo@example.com" rel=help>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/imagesizes-no-imagesrcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/imagesizes-no-imagesrcset-novalid.html
new file mode 100644
index 0000000000..6eb0a969c3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/imagesizes-no-imagesrcset-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>imagesizes can be used only when imagesrcset is also present</title>
+<link rel=preload as=image imagesizes="(max-width: 579.98px) 85vw, 50vw">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/imagesrcset-no-as-image-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/imagesrcset-no-as-image-novalid.html
new file mode 100644
index 0000000000..8649d391ad
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/imagesrcset-no-as-image-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>imagesrcset can be used only when as is image</title>
+<link rel=preload as=font imagesrcset="image.jpg 1225w" imagesizes="(max-width: 579.98px) 85vw, 50vw">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/imagesrcset-no-preload-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/imagesrcset-no-preload-novalid.html
new file mode 100644
index 0000000000..9bb821b585
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/imagesrcset-no-preload-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>imagesrcset can be used only when rel is preload</title>
+<link rel=prefetch as=image imagesrcset="image.jpg 1225w" imagesizes="(max-width: 579.98px) 85vw, 50vw">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/link/imagesrcset-valid.html b/testing/web-platform/tests/conformance-checkers/html/elements/link/imagesrcset-valid.html
new file mode 100644
index 0000000000..fa3ca661dd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/link/imagesrcset-valid.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid imagesrcset & imagesizes</title>
+<link rel=preload as=image imagesrcset="image.jpg 1225w" imagesizes="(max-width: 579.98px) 85vw, 50vw">
+<link rel=preload as=image imagesrcset="image.jpg 1x">
+<link rel=preload as=image href="image.png" imagesrcset="image.jpg 2x">
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/map/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/map/model-isvalid.html
new file mode 100644
index 0000000000..ae6dbac6f7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/map/model-isvalid.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;map&gt;</title>
+</head>
+<body>
+ <!-- is block, contains blocks and <area> -->
+ <map class="class" id="id" name="id" lang="en">
+ <h2>header</h2>
+ <p><area alt="text" href='foo' coords="1,2,3,4">p</p>
+ <p>text</p>
+ <p><area alt="text" href='foo' coords="3,2,5,4">p</p>
+ <p>text2</p>
+ </map>
+
+ <!-- can contain interactive -->
+ <map id='foo' name="foo">
+ <p><a>text</a></p>
+ <p><area alt="text" href='foo' coords="3,2,5,4">p</p>
+ </map>
+
+ <!-- map with flow content and flow parent -->
+ <div><map name=foo><p>foo</p></map></div>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/map/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/map/model-novalid.html
new file mode 100644
index 0000000000..3ee9b822eb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/map/model-novalid.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;map&gt;</title>
+</head>
+<body>
+ <!-- is block, contains blocks and <area> -->
+ <map name="foo" class="class" id="id" lang="en">
+ <h2>header</h2>
+ <area alt="text" coords="1,2,3,4">
+ <p>text</p>
+ <area alt="text" coords="5,2,3,4">
+ <p>text2</p>
+ </map>
+
+ <!-- can contain interactive -->
+ <map>
+ <p><a>text</a></p>
+ <area alt="text" coords="5,2,3,4">
+ </map>
+
+ <!-- map with flow content and phrasing parent -->
+ <span><map name=foo><p>foo</p></map></span>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/mark/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/mark/model-isvalid.html
new file mode 100644
index 0000000000..20ba6d25d0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/mark/model-isvalid.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;m&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><mark class="class" lang="en">text</mark></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><mark class="class" lang="en">text</mark></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <mark></mark></p>
+ <p>text <dfn><mark></mark></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><mark><a>text</a></mark></p>
+ <p><dfn><mark><a>text</a></mark></dfn></p>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/meta/names-registered-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/meta/names-registered-isvalid.html
new file mode 100644
index 0000000000..f2cb75bb13
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/meta/names-registered-isvalid.html
@@ -0,0 +1,768 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>Registered extensions to the predefined set of metadata names</title>
+<meta name="aglsterms.accessibility" content>
+<meta name="AGLSTERMS.ACCESSIBILITY" content>
+<meta name="AgLsTeRmS.AcCeSsIbIlItY" content>
+<meta name="aglsterms.accessmode" content>
+<meta name="AGLSTERMS.ACCESSMODE" content>
+<meta name="AgLsTeRmS.AcCeSsMoDe" content>
+<meta name="aglsterms.act" content>
+<meta name="AGLSTERMS.ACT" content>
+<meta name="AgLsTeRmS.AcT" content>
+<meta name="aglsterms.aggregationlevel" content>
+<meta name="AGLSTERMS.AGGREGATIONLEVEL" content>
+<meta name="AgLsTeRmS.AgGrEgAtIoNlEvEl" content>
+<meta name="aglsterms.availability" content>
+<meta name="AGLSTERMS.AVAILABILITY" content>
+<meta name="AgLsTeRmS.AvAiLaBiLiTy" content>
+<meta name="aglsterms.case" content>
+<meta name="AGLSTERMS.CASE" content>
+<meta name="AgLsTeRmS.CaSe" content>
+<meta name="aglsterms.category" content>
+<meta name="AGLSTERMS.CATEGORY" content>
+<meta name="AgLsTeRmS.CaTeGoRy" content>
+<meta name="aglsterms.datelicensed" content>
+<meta name="AGLSTERMS.DATELICENSED" content>
+<meta name="AgLsTeRmS.DaTeLiCeNsEd" content>
+<meta name="aglsterms.documenttype" content>
+<meta name="AGLSTERMS.DOCUMENTTYPE" content>
+<meta name="AgLsTeRmS.DoCuMeNtTyPe" content>
+<meta name="aglsterms.function" content>
+<meta name="AGLSTERMS.FUNCTION" content>
+<meta name="AgLsTeRmS.FuNcTiOn" content>
+<meta name="aglsterms.isbasedon" content>
+<meta name="AGLSTERMS.ISBASEDON" content>
+<meta name="AgLsTeRmS.IsBaSeDoN" content>
+<meta name="aglsterms.isbasisfor" content>
+<meta name="AGLSTERMS.ISBASISFOR" content>
+<meta name="AgLsTeRmS.IsBaSiSfOr" content>
+<meta name="aglsterms.jurisdiction" content>
+<meta name="AGLSTERMS.JURISDICTION" content>
+<meta name="AgLsTeRmS.JuRiSdIcTiOn" content>
+<meta name="aglsterms.mandate" content>
+<meta name="AGLSTERMS.MANDATE" content>
+<meta name="AgLsTeRmS.MaNdAtE" content>
+<meta name="aglsterms.protectivemarking" content>
+<meta name="AGLSTERMS.PROTECTIVEMARKING" content>
+<meta name="AgLsTeRmS.PrOtEcTiVeMaRkInG" content>
+<meta name="aglsterms.regulation" content>
+<meta name="AGLSTERMS.REGULATION" content>
+<meta name="AgLsTeRmS.ReGuLaTiOn" content>
+<meta name="aglsterms.servicetype" content>
+<meta name="AGLSTERMS.SERVICETYPE" content>
+<meta name="AgLsTeRmS.SeRvIcEtYpE" content>
+<meta name="alexaverifyid" content>
+<meta name="ALEXAVERIFYID" content>
+<meta name="AlExAvErIfYiD" content>
+<meta name="apple-itunes-app" content>
+<meta name="APPLE-ITUNES-APP" content>
+<meta name="ApPlE-ItUnEs-aPp" content>
+<meta name="apple-mobile-web-app-capable" content>
+<meta name="APPLE-MOBILE-WEB-APP-CAPABLE" content>
+<meta name="ApPlE-MoBiLe-wEb-aPp-cApAbLe" content>
+<meta name="apple-mobile-web-app-status-bar-style" content>
+<meta name="APPLE-MOBILE-WEB-APP-STATUS-BAR-STYLE" content>
+<meta name="ApPlE-MoBiLe-wEb-aPp-sTaTuS-BaR-StYlE" content>
+<meta name="apple-mobile-web-app-title" content>
+<meta name="APPLE-MOBILE-WEB-APP-TITLE" content>
+<meta name="ApPlE-MoBiLe-wEb-aPp-tItLe" content>
+<meta name="apple-touch-fullscreen" content>
+<meta name="APPLE-TOUCH-FULLSCREEN" content>
+<meta name="ApPlE-ToUcH-FuLlScReEn" content>
+<meta name="application-url" content>
+<meta name="APPLICATION-URL" content>
+<meta name="ApPlIcAtIoN-UrL" content>
+<meta name="baiduspider" content>
+<meta name="BAIDUSPIDER" content>
+<meta name="BaIdUsPiDeR" content>
+<meta name="bitcoin" content>
+<meta name="BITCOIN" content>
+<meta name="BiTcOiN" content>
+<meta name="blazerr-secure" content>
+<meta name="BLAZERR-SECURE" content>
+<meta name="BlAzErR-SeCuRe" content>
+<meta name="blazerr-seo" content>
+<meta name="BLAZERR-SEO" content>
+<meta name="BlAzErR-SeO" content>
+<meta name="blazerr-ssl" content>
+<meta name="BLAZERR-SSL" content>
+<meta name="BlAzErR-SsL" content>
+<meta name="blazerr-support-id-noncookies" content>
+<meta name="BLAZERR-SUPPORT-ID-NONCOOKIES" content>
+<meta name="BlAzErR-SuPpOrT-Id-nOnCoOkIeS" content>
+<meta name="blazerr-support-identifier" content>
+<meta name="BLAZERR-SUPPORT-IDENTIFIER" content>
+<meta name="BlAzErR-SuPpOrT-IdEnTiFiEr" content>
+<meta name="cfia.gdr.activity" content>
+<meta name="CFIA.GDR.ACTIVITY" content>
+<meta name="CfIa.gDr.aCtIvItY" content>
+<meta name="cfia.gdr.commodity" content>
+<meta name="CFIA.GDR.COMMODITY" content>
+<meta name="CfIa.gDr.cOmMoDiTy" content>
+<meta name="cfia.gdr.include" content>
+<meta name="CFIA.GDR.INCLUDE" content>
+<meta name="CfIa.gDr.iNcLuDe" content>
+<meta name="cfia.gdr.program" content>
+<meta name="CFIA.GDR.PROGRAM" content>
+<meta name="CfIa.gDr.pRoGrAm" content>
+<meta name="citeseerxbot" content>
+<meta name="CITESEERXBOT" content>
+<meta name="CiTeSeErXbOt" content>
+<meta name="collection" content>
+<meta name="COLLECTION" content>
+<meta name="CoLlEcTiOn" content>
+<meta name="csrf-param" content>
+<meta name="CSRF-PARAM" content>
+<meta name="CsRf-pArAm" content>
+<meta name="csrf-token" content>
+<meta name="CSRF-TOKEN" content>
+<meta name="CsRf-tOkEn" content>
+<meta name="da_anonymiseip" content>
+<meta name="DA_ANONYMISEIP" content>
+<meta name="Da_aNoNyMiSeIp" content>
+<meta name="da_contactcompany" content>
+<meta name="DA_CONTACTCOMPANY" content>
+<meta name="Da_cOnTaCtCoMpAnY" content>
+<meta name="da_contactemail" content>
+<meta name="DA_CONTACTEMAIL" content>
+<meta name="Da_cOnTaCtEmAiL" content>
+<meta name="da_contactfirstname" content>
+<meta name="DA_CONTACTFIRSTNAME" content>
+<meta name="Da_cOnTaCtFiRsTnAmE" content>
+<meta name="da_contactlastname" content>
+<meta name="DA_CONTACTLASTNAME" content>
+<meta name="Da_cOnTaCtLaStNaMe" content>
+<meta name="da_contactname" content>
+<meta name="DA_CONTACTNAME" content>
+<meta name="Da_cOnTaCtNaMe" content>
+<meta name="da_contacttelephone" content>
+<meta name="DA_CONTACTTELEPHONE" content>
+<meta name="Da_cOnTaCtTeLePhOnE" content>
+<meta name="da_conversioncurrency" content>
+<meta name="DA_CONVERSIONCURRENCY" content>
+<meta name="Da_cOnVeRsIoNcUrReNcY" content>
+<meta name="da_conversionid" content>
+<meta name="DA_CONVERSIONID" content>
+<meta name="Da_cOnVeRsIoNiD" content>
+<meta name="da_conversionvalue" content>
+<meta name="DA_CONVERSIONVALUE" content>
+<meta name="Da_cOnVeRsIoNvAlUe" content>
+<meta name="da_goalcurrency" content>
+<meta name="DA_GOALCURRENCY" content>
+<meta name="Da_gOaLcUrReNcY" content>
+<meta name="da_goalid" content>
+<meta name="DA_GOALID" content>
+<meta name="Da_gOaLiD" content>
+<meta name="da_goalvalue" content>
+<meta name="DA_GOALVALUE" content>
+<meta name="Da_gOaLvAlUe" content>
+<meta name="da_interactionselector" content>
+<meta name="DA_INTERACTIONSELECTOR" content>
+<meta name="Da_iNtErAcTiOnSeLeCtOr" content>
+<meta name="da_pagerole" content>
+<meta name="DA_PAGEROLE" content>
+<meta name="Da_pAgErOlE" content>
+<meta name="da_pagetaxonomy" content>
+<meta name="DA_PAGETAXONOMY" content>
+<meta name="Da_pAgEtAxOnOmY" content>
+<meta name="da_pagetitle" content>
+<meta name="DA_PAGETITLE" content>
+<meta name="Da_pAgEtItLe" content>
+<meta name="da_pageversion" content>
+<meta name="DA_PAGEVERSION" content>
+<meta name="Da_pAgEvErSiOn" content>
+<meta name="da_sessionid" content>
+<meta name="DA_SESSIONID" content>
+<meta name="Da_sEsSiOnId" content>
+<meta name="da_userid" content>
+<meta name="DA_USERID" content>
+<meta name="Da_uSeRiD" content>
+<meta name="dc.date.issued" content>
+<meta name="DC.DATE.ISSUED" content>
+<meta name="Dc.dAtE.IsSuEd" content>
+<meta name="dc.language" content>
+<meta name="DC.LANGUAGE" content>
+<meta name="Dc.lAnGuAgE" content>
+<meta name="dcterms.abstract" content>
+<meta name="DCTERMS.ABSTRACT" content>
+<meta name="DcTeRmS.AbStRaCt" content>
+<meta name="dcterms.accessrights" content>
+<meta name="DCTERMS.ACCESSRIGHTS" content>
+<meta name="DcTeRmS.AcCeSsRiGhTs" content>
+<meta name="dcterms.accrualmethod" content>
+<meta name="DCTERMS.ACCRUALMETHOD" content>
+<meta name="DcTeRmS.AcCrUaLmEtHoD" content>
+<meta name="dcterms.accrualperiodicity" content>
+<meta name="DCTERMS.ACCRUALPERIODICITY" content>
+<meta name="DcTeRmS.AcCrUaLpErIoDiCiTy" content>
+<meta name="dcterms.accrualpolicy" content>
+<meta name="DCTERMS.ACCRUALPOLICY" content>
+<meta name="DcTeRmS.AcCrUaLpOlIcY" content>
+<meta name="dcterms.alternative" content>
+<meta name="DCTERMS.ALTERNATIVE" content>
+<meta name="DcTeRmS.AlTeRnAtIvE" content>
+<meta name="dcterms.audience" content>
+<meta name="DCTERMS.AUDIENCE" content>
+<meta name="DcTeRmS.AuDiEnCe" content>
+<meta name="dcterms.available" content>
+<meta name="DCTERMS.AVAILABLE" content>
+<meta name="DcTeRmS.AvAiLaBlE" content>
+<meta name="dcterms.bibliographiccitation" content>
+<meta name="DCTERMS.BIBLIOGRAPHICCITATION" content>
+<meta name="DcTeRmS.BiBlIoGrApHiCcItAtIoN" content>
+<meta name="dcterms.collection" content>
+<meta name="DCTERMS.COLLECTION" content>
+<meta name="DcTeRmS.CoLlEcTiOn" content>
+<meta name="dcterms.conformsto" content>
+<meta name="DCTERMS.CONFORMSTO" content>
+<meta name="DcTeRmS.CoNfOrMsTo" content>
+<meta name="dcterms.contributor" content>
+<meta name="DCTERMS.CONTRIBUTOR" content>
+<meta name="DcTeRmS.CoNtRiBuToR" content>
+<meta name="dcterms.coverage" content>
+<meta name="DCTERMS.COVERAGE" content>
+<meta name="DcTeRmS.CoVeRaGe" content>
+<meta name="dcterms.created" content>
+<meta name="DCTERMS.CREATED" content>
+<meta name="DcTeRmS.CrEaTeD" content>
+<meta name="dcterms.creator" content>
+<meta name="DCTERMS.CREATOR" content>
+<meta name="DcTeRmS.CrEaToR" content>
+<meta name="dcterms.date" content>
+<meta name="DCTERMS.DATE" content>
+<meta name="DcTeRmS.DaTe" content>
+<meta name="dcterms.dateaccepted" content>
+<meta name="DCTERMS.DATEACCEPTED" content>
+<meta name="DcTeRmS.DaTeAcCePtEd" content>
+<meta name="dcterms.datecopyrighted" content>
+<meta name="DCTERMS.DATECOPYRIGHTED" content>
+<meta name="DcTeRmS.DaTeCoPyRiGhTeD" content>
+<meta name="dcterms.datesubmitted" content>
+<meta name="DCTERMS.DATESUBMITTED" content>
+<meta name="DcTeRmS.DaTeSuBmItTeD" content>
+<meta name="dcterms.description" content>
+<meta name="DCTERMS.DESCRIPTION" content>
+<meta name="DcTeRmS.DeScRiPtIoN" content>
+<meta name="dcterms.educationlevel" content>
+<meta name="DCTERMS.EDUCATIONLEVEL" content>
+<meta name="DcTeRmS.EdUcAtIoNlEvEl" content>
+<meta name="dcterms.extent" content>
+<meta name="DCTERMS.EXTENT" content>
+<meta name="DcTeRmS.ExTeNt" content>
+<meta name="dcterms.format" content>
+<meta name="DCTERMS.FORMAT" content>
+<meta name="DcTeRmS.FoRmAt" content>
+<meta name="dcterms.hasformat" content>
+<meta name="DCTERMS.HASFORMAT" content>
+<meta name="DcTeRmS.HaSfOrMaT" content>
+<meta name="dcterms.haspart" content>
+<meta name="DCTERMS.HASPART" content>
+<meta name="DcTeRmS.HaSpArT" content>
+<meta name="dcterms.hasversion" content>
+<meta name="DCTERMS.HASVERSION" content>
+<meta name="DcTeRmS.HaSvErSiOn" content>
+<meta name="dcterms.identifier" content>
+<meta name="DCTERMS.IDENTIFIER" content>
+<meta name="DcTeRmS.IdEnTiFiEr" content>
+<meta name="dcterms.instructionalmethod" content>
+<meta name="DCTERMS.INSTRUCTIONALMETHOD" content>
+<meta name="DcTeRmS.InStRuCtIoNaLmEtHoD" content>
+<meta name="dcterms.isformatof" content>
+<meta name="DCTERMS.ISFORMATOF" content>
+<meta name="DcTeRmS.IsFoRmAtOf" content>
+<meta name="dcterms.ispartof" content>
+<meta name="DCTERMS.ISPARTOF" content>
+<meta name="DcTeRmS.IsPaRtOf" content>
+<meta name="dcterms.isreferencedby" content>
+<meta name="DCTERMS.ISREFERENCEDBY" content>
+<meta name="DcTeRmS.IsReFeReNcEdBy" content>
+<meta name="dcterms.isreplacedby" content>
+<meta name="DCTERMS.ISREPLACEDBY" content>
+<meta name="DcTeRmS.IsRePlAcEdBy" content>
+<meta name="dcterms.isrequiredby" content>
+<meta name="DCTERMS.ISREQUIREDBY" content>
+<meta name="DcTeRmS.IsReQuIrEdBy" content>
+<meta name="dcterms.issued" content>
+<meta name="DCTERMS.ISSUED" content>
+<meta name="DcTeRmS.IsSuEd" content>
+<meta name="dcterms.isversionof" content>
+<meta name="DCTERMS.ISVERSIONOF" content>
+<meta name="DcTeRmS.IsVeRsIoNoF" content>
+<meta name="dcterms.language" content>
+<meta name="DCTERMS.LANGUAGE" content>
+<meta name="DcTeRmS.LaNgUaGe" content>
+<meta name="dcterms.license" content>
+<meta name="DCTERMS.LICENSE" content>
+<meta name="DcTeRmS.LiCeNsE" content>
+<meta name="dcterms.mediator" content>
+<meta name="DCTERMS.MEDIATOR" content>
+<meta name="DcTeRmS.MeDiAtOr" content>
+<meta name="dcterms.medium" content>
+<meta name="DCTERMS.MEDIUM" content>
+<meta name="DcTeRmS.MeDiUm" content>
+<meta name="dcterms.modified" content>
+<meta name="DCTERMS.MODIFIED" content>
+<meta name="DcTeRmS.MoDiFiEd" content>
+<meta name="dcterms.provenance" content>
+<meta name="DCTERMS.PROVENANCE" content>
+<meta name="DcTeRmS.PrOvEnAnCe" content>
+<meta name="dcterms.publisher" content>
+<meta name="DCTERMS.PUBLISHER" content>
+<meta name="DcTeRmS.PuBlIsHeR" content>
+<meta name="dcterms.references" content>
+<meta name="DCTERMS.REFERENCES" content>
+<meta name="DcTeRmS.ReFeReNcEs" content>
+<meta name="dcterms.relation" content>
+<meta name="DCTERMS.RELATION" content>
+<meta name="DcTeRmS.ReLaTiOn" content>
+<meta name="dcterms.replaces" content>
+<meta name="DCTERMS.REPLACES" content>
+<meta name="DcTeRmS.RePlAcEs" content>
+<meta name="dcterms.requires" content>
+<meta name="DCTERMS.REQUIRES" content>
+<meta name="DcTeRmS.ReQuIrEs" content>
+<meta name="dcterms.rights" content>
+<meta name="DCTERMS.RIGHTS" content>
+<meta name="DcTeRmS.RiGhTs" content>
+<meta name="dcterms.rightsholder" content>
+<meta name="DCTERMS.RIGHTSHOLDER" content>
+<meta name="DcTeRmS.RiGhTsHoLdEr" content>
+<meta name="dcterms.source" content>
+<meta name="DCTERMS.SOURCE" content>
+<meta name="DcTeRmS.SoUrCe" content>
+<meta name="dcterms.spatial" content>
+<meta name="DCTERMS.SPATIAL" content>
+<meta name="DcTeRmS.SpAtIaL" content>
+<meta name="dcterms.subject" content>
+<meta name="DCTERMS.SUBJECT" content>
+<meta name="DcTeRmS.SuBjEcT" content>
+<meta name="dcterms.tableofcontents" content>
+<meta name="DCTERMS.TABLEOFCONTENTS" content>
+<meta name="DcTeRmS.TaBlEoFcOnTeNtS" content>
+<meta name="dcterms.temporal" content>
+<meta name="DCTERMS.TEMPORAL" content>
+<meta name="DcTeRmS.TeMpOrAl" content>
+<meta name="dcterms.title" content>
+<meta name="DCTERMS.TITLE" content>
+<meta name="DcTeRmS.TiTlE" content>
+<meta name="dcterms.type" content>
+<meta name="DCTERMS.TYPE" content>
+<meta name="DcTeRmS.TyPe" content>
+<meta name="dcterms.valid" content>
+<meta name="DCTERMS.VALID" content>
+<meta name="DcTeRmS.VaLiD" content>
+<meta name="designer" content>
+<meta name="DESIGNER" content>
+<meta name="DeSiGnEr" content>
+<meta name="entity" content>
+<meta name="ENTITY" content>
+<meta name="EnTiTy" content>
+<meta name="essaydirectory" content>
+<meta name="ESSAYDIRECTORY" content>
+<meta name="EsSaYdIrEcToRy" content>
+<meta name="fdse-description" content>
+<meta name="FDSE-DESCRIPTION" content>
+<meta name="FdSe-dEsCrIpTiOn" content>
+<meta name="fdse-index-as" content>
+<meta name="FDSE-INDEX-AS" content>
+<meta name="FdSe-iNdEx-aS" content>
+<meta name="fdse-keywords" content>
+<meta name="FDSE-KEYWORDS" content>
+<meta name="FdSe-kEyWoRdS" content>
+<meta name="fdse-refresh" content>
+<meta name="FDSE-REFRESH" content>
+<meta name="FdSe-rEfReSh" content>
+<meta name="fdse-robots" content>
+<meta name="FDSE-ROBOTS" content>
+<meta name="FdSe-rObOtS" content>
+<meta name="format-detection" content>
+<meta name="FORMAT-DETECTION" content>
+<meta name="FoRmAt-dEtEcTiOn" content>
+<meta name="fragment" content>
+<meta name="FRAGMENT" content>
+<meta name="FrAgMeNt" content>
+<meta name="gcterms.topictaxonomy" content>
+<meta name="GCTERMS.TOPICTAXONOMY" content>
+<meta name="GcTeRmS.ToPiCtAxOnOmY" content>
+<meta name="geo.a1" content>
+<meta name="GEO.A1" content>
+<meta name="GeO.A1" content>
+<meta name="geo.a2" content>
+<meta name="GEO.A2" content>
+<meta name="GeO.A2" content>
+<meta name="geo.a3" content>
+<meta name="GEO.A3" content>
+<meta name="GeO.A3" content>
+<meta name="geo.country" content>
+<meta name="GEO.COUNTRY" content>
+<meta name="GeO.CoUnTrY" content>
+<meta name="geo.lmk" content>
+<meta name="GEO.LMK" content>
+<meta name="GeO.LmK" content>
+<meta name="geo.placename" content>
+<meta name="GEO.PLACENAME" content>
+<meta name="GeO.PlAcEnAmE" content>
+<meta name="geo.position" content>
+<meta name="GEO.POSITION" content>
+<meta name="GeO.PoSiTiOn" content>
+<meta name="geo.region" content>
+<meta name="GEO.REGION" content>
+<meta name="GeO.ReGiOn" content>
+<meta name="globrix.bathrooms" content>
+<meta name="GLOBRIX.BATHROOMS" content>
+<meta name="GlObRiX.BaThRoOmS" content>
+<meta name="globrix.bedrooms" content>
+<meta name="GLOBRIX.BEDROOMS" content>
+<meta name="GlObRiX.BeDrOoMs" content>
+<meta name="globrix.condition" content>
+<meta name="GLOBRIX.CONDITION" content>
+<meta name="GlObRiX.CoNdItIoN" content>
+<meta name="globrix.features" content>
+<meta name="GLOBRIX.FEATURES" content>
+<meta name="GlObRiX.FeAtUrEs" content>
+<meta name="globrix.instruction" content>
+<meta name="GLOBRIX.INSTRUCTION" content>
+<meta name="GlObRiX.InStRuCtIoN" content>
+<meta name="globrix.latitude" content>
+<meta name="GLOBRIX.LATITUDE" content>
+<meta name="GlObRiX.LaTiTuDe" content>
+<meta name="globrix.longitude" content>
+<meta name="GLOBRIX.LONGITUDE" content>
+<meta name="GlObRiX.LoNgItUdE" content>
+<meta name="globrix.outsidespace" content>
+<meta name="GLOBRIX.OUTSIDESPACE" content>
+<meta name="GlObRiX.OuTsIdEsPaCe" content>
+<meta name="globrix.parking" content>
+<meta name="GLOBRIX.PARKING" content>
+<meta name="GlObRiX.PaRkInG" content>
+<meta name="globrix.period" content>
+<meta name="GLOBRIX.PERIOD" content>
+<meta name="GlObRiX.PeRiOd" content>
+<meta name="globrix.poa" content>
+<meta name="GLOBRIX.POA" content>
+<meta name="GlObRiX.PoA" content>
+<meta name="globrix.postcode" content>
+<meta name="GLOBRIX.POSTCODE" content>
+<meta name="GlObRiX.PoStCoDe" content>
+<meta name="globrix.price" content>
+<meta name="GLOBRIX.PRICE" content>
+<meta name="GlObRiX.PrIcE" content>
+<meta name="globrix.priceproximity" content>
+<meta name="GLOBRIX.PRICEPROXIMITY" content>
+<meta name="GlObRiX.PrIcEpRoXiMiTy" content>
+<meta name="globrix.tenure" content>
+<meta name="GLOBRIX.TENURE" content>
+<meta name="GlObRiX.TeNuRe" content>
+<meta name="globrix.type" content>
+<meta name="GLOBRIX.TYPE" content>
+<meta name="GlObRiX.TyPe" content>
+<meta name="globrix.underoffer" content>
+<meta name="GLOBRIX.UNDEROFFER" content>
+<meta name="GlObRiX.UnDeRoFfEr" content>
+<meta name="go-import" content>
+<meta name="GO-IMPORT" content>
+<meta name="Go-iMpOrT" content>
+<meta name="google" content>
+<meta name="GOOGLE" content>
+<meta name="GoOgLe" content>
+<meta name="google-site-verification" content>
+<meta name="GOOGLE-SITE-VERIFICATION" content>
+<meta name="GoOgLe-sItE-VeRiFiCaTiOn" content>
+<meta name="googlebot" content>
+<meta name="GOOGLEBOT" content>
+<meta name="GoOgLeBoT" content>
+<meta name="googlebot-mobile" content>
+<meta name="GOOGLEBOT-MOBILE" content>
+<meta name="GoOgLeBoT-MoBiLe" content>
+<meta name="gwt:property" content>
+<meta name="GWT:PROPERTY" content>
+<meta name="GwT:PrOpErTy" content>
+<meta name="handheldfriendly" content>
+<meta name="HANDHELDFRIENDLY" content>
+<meta name="HaNdHeLdFrIeNdLy" content>
+<meta name="icas.datetime" content>
+<meta name="ICAS.DATETIME" content>
+<meta name="IcAs.dAtEtImE" content>
+<meta name="icas.datetime.abbr" content>
+<meta name="ICAS.DATETIME.ABBR" content>
+<meta name="IcAs.dAtEtImE.AbBr" content>
+<meta name="icas.datetime.day" content>
+<meta name="ICAS.DATETIME.DAY" content>
+<meta name="IcAs.dAtEtImE.DaY" content>
+<meta name="icas.datetime.long" content>
+<meta name="ICAS.DATETIME.LONG" content>
+<meta name="IcAs.dAtEtImE.LoNg" content>
+<meta name="icbm" content>
+<meta name="ICBM" content>
+<meta name="IcBm" content>
+<meta name="itemsperpage" content>
+<meta name="ITEMSPERPAGE" content>
+<meta name="ItEmSpErPaGe" content>
+<meta name="meta_date" content>
+<meta name="META_DATE" content>
+<meta name="MeTa_dAtE" content>
+<meta name="mobile-agent" content>
+<meta name="MOBILE-AGENT" content>
+<meta name="MoBiLe-aGeNt" content>
+<meta name="mobile-web-app-capable" content>
+<meta name="MOBILE-WEB-APP-CAPABLE" content>
+<meta name="MoBiLe-wEb-aPp-cApAbLe" content>
+<meta name="mobileoptimized" content>
+<meta name="MOBILEOPTIMIZED" content>
+<meta name="MoBiLeOpTiMiZeD" content>
+<meta name="msapplication-config" content>
+<meta name="MSAPPLICATION-CONFIG" content>
+<meta name="MsApPlIcAtIoN-CoNfIg" content>
+<meta name="msapplication-navbutton-color" content>
+<meta name="MSAPPLICATION-NAVBUTTON-COLOR" content>
+<meta name="MsApPlIcAtIoN-NaVbUtToN-CoLoR" content>
+<meta name="msapplication-square150x150logo" content>
+<meta name="MSAPPLICATION-SQUARE150X150LOGO" content>
+<meta name="MsApPlIcAtIoN-SqUaRe150x150lOgO" content>
+<meta name="msapplication-square310x310logo" content>
+<meta name="MSAPPLICATION-SQUARE310X310LOGO" content>
+<meta name="MsApPlIcAtIoN-SqUaRe310x310lOgO" content>
+<meta name="msapplication-square70x70logo" content>
+<meta name="MSAPPLICATION-SQUARE70X70LOGO" content>
+<meta name="MsApPlIcAtIoN-SqUaRe70X70lOgO" content>
+<meta name="msapplication-starturl" content>
+<meta name="MSAPPLICATION-STARTURL" content>
+<meta name="MsApPlIcAtIoN-StArTuRl" content>
+<meta name="msapplication-tap-highlight" content>
+<meta name="MSAPPLICATION-TAP-HIGHLIGHT" content>
+<meta name="MsApPlIcAtIoN-TaP-HiGhLiGhT" content>
+<meta name="msapplication-task" content>
+<meta name="MSAPPLICATION-TASK" content>
+<meta name="MsApPlIcAtIoN-TaSk" content>
+<meta name="msapplication-tilecolor" content>
+<meta name="MSAPPLICATION-TILECOLOR" content>
+<meta name="MsApPlIcAtIoN-TiLeCoLoR" content>
+<meta name="msapplication-tileimage" content>
+<meta name="MSAPPLICATION-TILEIMAGE" content>
+<meta name="MsApPlIcAtIoN-TiLeImAgE" content>
+<meta name="msapplication-tooltip" content>
+<meta name="MSAPPLICATION-TOOLTIP" content>
+<meta name="MsApPlIcAtIoN-ToOlTiP" content>
+<meta name="msapplication-wide310x150logo" content>
+<meta name="MSAPPLICATION-WIDE310X150LOGO" content>
+<meta name="MsApPlIcAtIoN-WiDe310x150lOgO" content>
+<meta name="msapplication-window" content>
+<meta name="MSAPPLICATION-WINDOW" content>
+<meta name="MsApPlIcAtIoN-WiNdOw" content>
+<meta name="msvalidate.01" content>
+<meta name="MSVALIDATE.01" content>
+<meta name="MsVaLiDaTe.01" content>
+<meta name="norton-safeweb-site-verification" content>
+<meta name="NORTON-SAFEWEB-SITE-VERIFICATION" content>
+<meta name="NoRtOn-sAfEwEb-sItE-VeRiFiCaTiOn" content>
+<meta name="p:domain_verify" content>
+<meta name="P:DOMAIN_VERIFY" content>
+<meta name="P:DoMaIn_vErIfY" content>
+<meta name="pingdom" content>
+<meta name="PINGDOM" content>
+<meta name="PiNgDoM" content>
+<meta name="pinterest" content>
+<meta name="PINTEREST" content>
+<meta name="PiNtErEsT" content>
+<meta name="rating" content>
+<meta name="RATING" content>
+<meta name="RaTiNg" content>
+<meta name="referrer" content>
+<meta name="REFERRER" content>
+<meta name="ReFeRrEr" content>
+<meta name="repostusapikey" content>
+<meta name="REPOSTUSAPIKEY" content>
+<meta name="RePoStUsApIkEy" content>
+<meta name="resourceloaderdynamicstyles" content>
+<meta name="RESOURCELOADERDYNAMICSTYLES" content>
+<meta name="ReSoUrCeLoAdErDyNaMiCsTyLeS" content>
+<meta name="review_date" content>
+<meta name="REVIEW_DATE" content>
+<meta name="ReViEw_dAtE" content>
+<meta name="revision" content>
+<meta name="REVISION" content>
+<meta name="ReViSiOn" content>
+<meta name="revisit-after" content>
+<meta name="REVISIT-AFTER" content>
+<meta name="ReViSiT-AfTeR" content>
+<meta name="rights-standard" content>
+<meta name="RIGHTS-STANDARD" content>
+<meta name="RiGhTs-sTaNdArD" content>
+<meta name="robots" content>
+<meta name="ROBOTS" content>
+<meta name="RoBoTs" content>
+<meta name="rpuplugin" content>
+<meta name="RPUPLUGIN" content>
+<meta name="RpUpLuGiN" content>
+<meta name="rqid" content>
+<meta name="RQID" content>
+<meta name="RqId" content>
+<meta name="signet:authors" content>
+<meta name="SIGNET:AUTHORS" content>
+<meta name="SiGnEt:aUtHoRs" content>
+<meta name="signet:links" content>
+<meta name="SIGNET:LINKS" content>
+<meta name="SiGnEt:lInKs" content>
+<meta name="skype_toolbar" content>
+<meta name="SKYPE_TOOLBAR" content>
+<meta name="SkYpE_ToOlBaR" content>
+<meta name="slurp" content>
+<meta name="SLURP" content>
+<meta name="SlUrP" content>
+<meta name="startindex" content>
+<meta name="STARTINDEX" content>
+<meta name="StArTiNdEx" content>
+<meta name="startver" content>
+<meta name="STARTVER" content>
+<meta name="StArTvEr" content>
+<meta name="teoma" content>
+<meta name="TEOMA" content>
+<meta name="TeOmA" content>
+<meta name="totalresults" content>
+<meta name="TOTALRESULTS" content>
+<meta name="ToTaLrEsUlTs" content>
+<meta name="twitter:app:country" content>
+<meta name="TWITTER:APP:COUNTRY" content>
+<meta name="TwItTeR:ApP:CoUnTrY" content>
+<meta name="twitter:app:id:googleplay" content>
+<meta name="TWITTER:APP:ID:GOOGLEPLAY" content>
+<meta name="TwItTeR:ApP:Id:gOoGlEpLaY" content>
+<meta name="twitter:app:id:ipad" content>
+<meta name="TWITTER:APP:ID:IPAD" content>
+<meta name="TwItTeR:ApP:Id:iPaD" content>
+<meta name="twitter:app:id:iphone" content>
+<meta name="TWITTER:APP:ID:IPHONE" content>
+<meta name="TwItTeR:ApP:Id:iPhOnE" content>
+<meta name="twitter:app:url:googleplay" content>
+<meta name="TWITTER:APP:URL:GOOGLEPLAY" content>
+<meta name="TwItTeR:ApP:UrL:GoOgLePlAy" content>
+<meta name="twitter:app:url:ipad" content>
+<meta name="TWITTER:APP:URL:IPAD" content>
+<meta name="TwItTeR:ApP:UrL:IpAd" content>
+<meta name="twitter:app:url:iphone" content>
+<meta name="TWITTER:APP:URL:IPHONE" content>
+<meta name="TwItTeR:ApP:UrL:IpHoNe" content>
+<meta name="twitter:card" content>
+<meta name="TWITTER:CARD" content>
+<meta name="TwItTeR:CaRd" content>
+<meta name="twitter:creator" content>
+<meta name="TWITTER:CREATOR" content>
+<meta name="TwItTeR:CrEaToR" content>
+<meta name="twitter:creator:id" content>
+<meta name="TWITTER:CREATOR:ID" content>
+<meta name="TwItTeR:CrEaToR:Id" content>
+<meta name="twitter:description" content>
+<meta name="TWITTER:DESCRIPTION" content>
+<meta name="TwItTeR:DeScRiPtIoN" content>
+<meta name="twitter:domain" content>
+<meta name="TWITTER:DOMAIN" content>
+<meta name="TwItTeR:DoMaIn" content>
+<meta name="twitter:image" content>
+<meta name="TWITTER:IMAGE" content>
+<meta name="TwItTeR:ImAgE" content>
+<meta name="twitter:image0" content>
+<meta name="TWITTER:IMAGE0" content>
+<meta name="TwItTeR:ImAgE0" content>
+<meta name="twitter:image1" content>
+<meta name="TWITTER:IMAGE1" content>
+<meta name="TwItTeR:ImAgE1" content>
+<meta name="twitter:image2" content>
+<meta name="TWITTER:IMAGE2" content>
+<meta name="TwItTeR:ImAgE2" content>
+<meta name="twitter:image3" content>
+<meta name="TWITTER:IMAGE3" content>
+<meta name="TwItTeR:ImAgE3" content>
+<meta name="twitter:image:height" content>
+<meta name="TWITTER:IMAGE:HEIGHT" content>
+<meta name="TwItTeR:ImAgE:HeIgHt" content>
+<meta name="twitter:image:src" content>
+<meta name="TWITTER:IMAGE:SRC" content>
+<meta name="TwItTeR:ImAgE:SrC" content>
+<meta name="twitter:image:width" content>
+<meta name="TWITTER:IMAGE:WIDTH" content>
+<meta name="TwItTeR:ImAgE:WiDtH" content>
+<meta name="twitter:site" content>
+<meta name="TWITTER:SITE" content>
+<meta name="TwItTeR:SiTe" content>
+<meta name="twitter:site:id" content>
+<meta name="TWITTER:SITE:ID" content>
+<meta name="TwItTeR:SiTe:iD" content>
+<meta name="twitter:title" content>
+<meta name="TWITTER:TITLE" content>
+<meta name="TwItTeR:TiTlE" content>
+<meta name="twitter:url" content>
+<meta name="TWITTER:URL" content>
+<meta name="TwItTeR:UrL" content>
+<meta name="typemetal.formatprefs" content>
+<meta name="TYPEMETAL.FORMATPREFS" content>
+<meta name="TyPeMeTaL.FoRmAtPrEfS" content>
+<meta name="verify-v1" content>
+<meta name="VERIFY-V1" content>
+<meta name="VeRiFy-v1" content>
+<meta name="vfb-version" content>
+<meta name="VFB-VERSION" content>
+<meta name="VfB-VeRsIoN" content>
+<meta name="viewport" content>
+<meta name="VIEWPORT" content>
+<meta name="ViEwPoRt" content>
+<meta name="web_author" content>
+<meta name="WEB_AUTHOR" content>
+<meta name="WeB_AuThOr" content>
+<meta name="wot-verification" content>
+<meta name="WOT-VERIFICATION" content>
+<meta name="WoT-VeRiFiCaTiOn" content>
+<meta name="wt.ac" content>
+<meta name="WT.AC" content>
+<meta name="Wt.aC" content>
+<meta name="wt.ad" content>
+<meta name="WT.AD" content>
+<meta name="Wt.aD" content>
+<meta name="wt.cg_n" content>
+<meta name="WT.CG_N" content>
+<meta name="Wt.cG_N" content>
+<meta name="wt.cg_s" content>
+<meta name="WT.CG_S" content>
+<meta name="Wt.cG_S" content>
+<meta name="wt.mc_id" content>
+<meta name="WT.MC_ID" content>
+<meta name="Wt.mC_Id" content>
+<meta name="wt.si_n" content>
+<meta name="WT.SI_N" content>
+<meta name="Wt.sI_N" content>
+<meta name="wt.si_p" content>
+<meta name="WT.SI_P" content>
+<meta name="Wt.sI_P" content>
+<meta name="wt.si_x" content>
+<meta name="WT.SI_X" content>
+<meta name="Wt.sI_X" content>
+<meta name="wt.sv" content>
+<meta name="WT.SV" content>
+<meta name="Wt.sV" content>
+<meta name="wt.ti" content>
+<meta name="WT.TI" content>
+<meta name="Wt.tI" content>
+<meta name="y_key" content>
+<meta name="Y_KEY" content>
+<meta name="Y_KeY" content>
+<meta name="yandex-verification" content>
+<meta name="YANDEX-VERIFICATION" content>
+<meta name="YaNdEx-vErIfIcAtIoN" content>
+<meta name="zoomcategory" content>
+<meta name="ZOOMCATEGORY" content>
+<meta name="ZoOmCaTeGoRy" content>
+<meta name="zoomdescription" content>
+<meta name="ZOOMDESCRIPTION" content>
+<meta name="ZoOmDeScRiPtIoN" content>
+<meta name="zoomimage" content>
+<meta name="ZOOMIMAGE" content>
+<meta name="ZoOmImAgE" content>
+<meta name="zoompageboost" content>
+<meta name="ZOOMPAGEBOOST" content>
+<meta name="ZoOmPaGeBoOsT" content>
+<meta name="zoomtitle" content>
+<meta name="ZOOMTITLE" content>
+<meta name="ZoOmTiTlE" content>
+<meta name="zoomwords" content>
+<meta name="ZOOMWORDS" content>
+<meta name="ZoOmWoRdS" content>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/meta/names-standard-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/meta/names-standard-isvalid.html
new file mode 100644
index 0000000000..738af2a9dd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/meta/names-standard-isvalid.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Standard metadata names</title>
+<!-- all lowercase-->
+<meta name="application-name" content>
+<meta name="author" content>
+<meta name="description" content>
+<meta name="generator" content>
+<meta name="keywords" content>
+<!-- all uppercase -->
+<meta name="APPLICATION-NAME" content>
+<meta name="AUTHOR" content>
+<meta name="DESCRIPTION" content>
+<meta name="GENERATOR" content>
+<meta name="KEYWORDS" content>
+<!-- mixed case -->
+<meta name="aPplIcAtioN-nAmE" content>
+<meta name="AUtHOr" content>
+<meta name="dEScrIpTiON" content>
+<meta name="GEneRatoR" content>
+<meta name="kEyWoRDs" content>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/meta/refresh-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/meta/refresh-isvalid.html
new file mode 100644
index 0000000000..6ed74d2b53
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/meta/refresh-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid meta refresh</title>
+<meta http-equiv=refresh content="0; URL=a:foo.com"><!-- scheme-private -->
+<meta http-equiv=refresh content="0; URL=foo:/"><!-- scheme-private-slash -->
+<meta http-equiv=refresh content="0; URL=foo://"><!-- scheme-private-slash-slash -->
+<meta http-equiv=refresh content="0; URL=foo:/bar.com/"><!-- scheme-private-path -->
+<meta http-equiv=refresh content="0; URL=foo://///////"><!-- scheme-private-path-leading-slashes-only -->
+<meta http-equiv=refresh content="0; URL=foo://///////bar.com/"><!-- scheme-private-path-leading-slashes-chars -->
+<meta http-equiv=refresh content="0; URL=foo:////://///"><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<meta http-equiv=refresh content="0; URL=c:/foo"><!-- scheme-private-single-letter -->
+<meta http-equiv=refresh content="0; URL=madeupscheme:/example.com/"><!-- scheme-private-single-slash -->
+<meta http-equiv=refresh content="0; URL=file:/example.com/"><!-- scheme-file-single-slash -->
+<meta http-equiv=refresh content="0; URL=ftps:/example.com/"><!-- scheme-ftps-single-slash -->
+<meta http-equiv=refresh content="0; URL=gopher:/example.com/"><!-- scheme-gopher-single-slash -->
+<meta http-equiv=refresh content="0; URL=ws:/example.com/"><!-- scheme-ws-single-slash -->
+<meta http-equiv=refresh content="0; URL=wss:/example.com/"><!-- scheme-wss-single-slash -->
+<meta http-equiv=refresh content="0; URL=javascript:/example.com/"><!-- scheme-javascript-single-slash -->
+<meta http-equiv=refresh content="0; URL=mailto:/example.com/"><!-- scheme-mailto-single-slash -->
+<meta http-equiv=refresh content="0; URL=madeupscheme:example.com/"><!-- scheme-private-no-slash -->
+<meta http-equiv=refresh content="0; URL=ftps:example.com/"><!-- scheme-ftps-no-slash -->
+<meta http-equiv=refresh content="0; URL=gopher:example.com/"><!-- scheme-gopher-no-slash -->
+<meta http-equiv=refresh content="0; URL=wss:example.com/"><!-- scheme-wss-no-slash -->
+<meta http-equiv=refresh content="0; URL=mailto:example.com/"><!-- scheme-mailto-no-slash -->
+<meta http-equiv=refresh content="0; URL=data:text/plain,foo"><!-- scheme-data-no-slash -->
+<meta http-equiv=refresh content="0; URL=http://user:pass@foo:21/bar;par?b#c"><!-- userinfo -->
+<meta http-equiv=refresh content="0; URL=http://[2001::1]"><!-- host-ipv6 -->
+<meta http-equiv=refresh content="0; URL=http://[2001::1]:80"><!-- host-ipv6-port -->
+<meta http-equiv=refresh content="0; URL=http://f:/c"><!-- port-none-but-colon -->
+<meta http-equiv=refresh content="0; URL=http://f:0/c"><!-- port-0 -->
+<meta http-equiv=refresh content="0; URL=http://f:00000000000000/c"><!-- port-00000000000000 -->
+<meta http-equiv=refresh content="0; URL=http://f:00000000000000000000080/c"><!-- port-00000000000000000000080 -->
+<meta http-equiv=refresh content="0; URL=http://a:b@c:29/d"><!-- userinfo-host-port-path -->
+<meta http-equiv=refresh content="0; URL=http://foo.com:b@d/"><!-- userinfo-username-non-alpha -->
+<meta http-equiv=refresh content="0; URL=http://foo/abcd?efgh?ijkl"><!-- query-contains-question-mark -->
+<meta http-equiv=refresh content="0; URL=http://foo/abcd#foo?bar"><!-- fragment-contains-question-mark -->
+<meta http-equiv=refresh content="0; URL=http://example.com/foo/%2e"><!-- path-percent-encoded-dot -->
+<meta http-equiv=refresh content="0; URL=http://example.com/%20foo"><!-- path-percent-encoded-space -->
+<meta http-equiv=refresh content="0; URL=http://example.com/©zbar"><!-- path-non-ascii -->
+<meta http-equiv=refresh content="0; URL=http://example.com/foo%41%7a"><!-- path-percent-encoded-multiple -->
+<meta http-equiv=refresh content="0; URL=http://example.com/foo%91"><!-- path-percent-encoded-u0091 -->
+<meta http-equiv=refresh content="0; URL=http://example.com/foo%00"><!-- path-percent-encoded-u0000 -->
+<meta http-equiv=refresh content="0; URL=http://example.com/%3A%3a%3C%3c"><!-- path-percent-encoded-mixed-case -->
+<meta http-equiv=refresh content="0; URL=http://example.com/你好你好"><!-- path-unicode-han -->
+<meta http-equiv=refresh content="0; URL=http://example.com//foo"><!-- path-uFEFF -->
+<meta http-equiv=refresh content="0; URL=http://example.com/‮/foo/‭/bar"><!-- path-u202E-u202D -->
+<meta http-equiv=refresh content="0; URL=http://💩"><!-- host-is-pile-of-poo -->
+<meta http-equiv=refresh content="0; URL=http💩//:foo"><!-- path-contains-pile-of-poo -->
+<meta http-equiv=refresh content="0; URL=http://example.com/foo?💩"><!-- query-contains-pile-of-poo -->
+<meta http-equiv=refresh content="0; URL=http://example.com/foo#💩"><!-- fragment-contains-pile-of-poo -->
+<meta http-equiv=refresh content="0; URL=http://192.0x00A80001"><!-- host-192.0x00A80001 -->
+<meta http-equiv=refresh content="0; URL=http://%25DOMAIN:foobar@foodomain.com"><!-- userinfo-username-contains-percent-encoded -->
+<meta http-equiv=refresh content="0; URL=http://@www.example.com"><!-- userinfo-empty -->
+<meta http-equiv=refresh content="0; URL=http://:b@www.example.com"><!-- userinfo-user-empty -->
+<meta http-equiv=refresh content="0; URL=http://a:@www.example.com"><!-- userinfo-password-empty -->
+<meta http-equiv=refresh content="0; URL=http://GOO​⁠goo.com"><!-- host-exotic-whitespace -->
+<meta http-equiv=refresh content="0; URL=http://www.foo。bar.com"><!-- host-exotic-dot -->
+<meta http-equiv=refresh content="0; URL=http://Go.com"><!-- host-fullwidth -->
+<meta http-equiv=refresh content="0; URL=http://你好你好"><!-- host-idn-unicode-han -->
+<meta http-equiv=refresh content="0; URL=http://192.168.0.257/"><!-- host-IP-address-broken -->
+<meta http-equiv=refresh content="0; URL=//foo/bar"><!-- scheme-schemeless-relative -->
+<meta http-equiv=refresh content="0; URL=/"><!-- path-slash-only-relative -->
+<meta http-equiv=refresh content="0; URL=/a/b/c"><!-- path-simple-relative -->
+<meta http-equiv=refresh content="0; URL=/a%2fc"><!-- path-percent-encoded-slash-relative -->
+<meta http-equiv=refresh content="0; URL=/a/%2f/c"><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<meta http-equiv=refresh content="0; URL=?"><!-- query-empty-no-path-relative -->
+<meta http-equiv=refresh content="0; URL=#"><!-- fragment-empty-hash-only-no-path-relative -->
+<meta http-equiv=refresh content="0; URL=#/"><!-- fragment-slash-relative -->
+<meta http-equiv=refresh content="0; URL=#;?"><!-- fragment-semicolon-question-mark-relative -->
+<meta http-equiv=refresh content="0; URL=#β"><!-- fragment-non-ascii-relative -->
+<meta http-equiv=refresh content="0; URL=foo.com"><!-- scheme-none-relative -->
+<meta http-equiv=refresh content="0; URL=:"><!-- path-colon-relative -->
+<meta http-equiv=refresh content="0; URL=:a"><!-- path-leading-colon-letter-relative -->
+<meta http-equiv=refresh content="0; URL=:foo.com"><!-- path-leading-colon-chars-relative -->
+<meta http-equiv=refresh content="0; URL=:/"><!-- path-leading-colon-slash-relative -->
+<meta http-equiv=refresh content="0; URL=:#"><!-- path-leading-colon-hash-relative -->
+<meta http-equiv=refresh content="0; URL=:23"><!-- path-leading-colon-number-relative -->
+<meta http-equiv=refresh content="0; URL=/:23"><!-- path-slash-colon-number-relative -->
+<meta http-equiv=refresh content="0; URL=::"><!-- path-leading-colon-colon-relative -->
+<meta http-equiv=refresh content="0; URL=::23"><!-- path-colon-colon-number-relative -->
+<meta http-equiv=refresh content="0; URL=💩http://foo"><!-- path-starts-with-pile-of-poo -->
+<meta http-equiv=refresh content="0; URL=/💩"><!-- path-slash-pile-of-poo -->
+<meta http-equiv=refresh content="0; URL=File://foo/bar.html"><!-- scheme-file-uppercase -->
+<meta http-equiv=refresh content="0; URL=file://C|/foo/bar"><!-- scheme-file-slash-slash-c-bar -->
+<meta http-equiv=refresh content="0; URL=file://server/foo/bar"><!-- scheme-file-host-included -->
+<meta http-equiv=refresh content="0; URL=file:///foo/bar.txt"><!-- scheme-file-host-empty -->
+<meta http-equiv=refresh content="0; URL=file:"><!-- scheme-file-scheme-only -->
+<meta http-equiv=refresh content="0; URL=file:/"><!-- scheme-file-slash-only -->
+<meta http-equiv=refresh content="0; URL=file://"><!-- scheme-file-slash-slash-only -->
+<meta http-equiv=refresh content="0; URL=file:///"><!-- scheme-file-slash-slash-slash-only -->
+<meta http-equiv=refresh content="0; URL=file:test"><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/noscript/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/noscript/model-isvalid.html
new file mode 100644
index 0000000000..6d74e762b4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/noscript/model-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <noscript><style></style></noscript>
+ <meta charset=utf-8>
+ <title>&lt;noscript&gt; in &lt;head&gt;</title>
+</head>
+<body>
+<p>foo</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data-empty-novalid.html
new file mode 100644
index 0000000000..ffa455f9fe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty data is not valid</title>
+<object data=""></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data-isvalid.html
new file mode 100644
index 0000000000..65e6516ab9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid data</title>
+<object data="a:foo.com"></object><!-- scheme-private -->
+<object data="foo:/"></object><!-- scheme-private-slash -->
+<object data="foo://"></object><!-- scheme-private-slash-slash -->
+<object data="foo:/bar.com/"></object><!-- scheme-private-path -->
+<object data="foo://///////"></object><!-- scheme-private-path-leading-slashes-only -->
+<object data="foo://///////bar.com/"></object><!-- scheme-private-path-leading-slashes-chars -->
+<object data="foo:////://///"></object><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<object data="c:/foo"></object><!-- scheme-private-single-letter -->
+<object data="madeupscheme:/example.com/"></object><!-- scheme-private-single-slash -->
+<object data="file:/example.com/"></object><!-- scheme-file-single-slash -->
+<object data="ftps:/example.com/"></object><!-- scheme-ftps-single-slash -->
+<object data="gopher:/example.com/"></object><!-- scheme-gopher-single-slash -->
+<object data="ws:/example.com/"></object><!-- scheme-ws-single-slash -->
+<object data="wss:/example.com/"></object><!-- scheme-wss-single-slash -->
+<object data="javascript:/example.com/"></object><!-- scheme-javascript-single-slash -->
+<object data="mailto:/example.com/"></object><!-- scheme-mailto-single-slash -->
+<object data="madeupscheme:example.com/"></object><!-- scheme-private-no-slash -->
+<object data="ftps:example.com/"></object><!-- scheme-ftps-no-slash -->
+<object data="gopher:example.com/"></object><!-- scheme-gopher-no-slash -->
+<object data="wss:example.com/"></object><!-- scheme-wss-no-slash -->
+<object data="mailto:example.com/"></object><!-- scheme-mailto-no-slash -->
+<object data="data:text/plain,foo"></object><!-- scheme-data-no-slash -->
+<object data="http://user:pass@foo:21/bar;par?b#c"></object><!-- userinfo -->
+<object data="http://[2001::1]"></object><!-- host-ipv6 -->
+<object data="http://[2001::1]:80"></object><!-- host-ipv6-port -->
+<object data="http://f:/c"></object><!-- port-none-but-colon -->
+<object data="http://f:0/c"></object><!-- port-0 -->
+<object data="http://f:00000000000000/c"></object><!-- port-00000000000000 -->
+<object data="http://f:00000000000000000000080/c"></object><!-- port-00000000000000000000080 -->
+<object data="http://a:b@c:29/d"></object><!-- userinfo-host-port-path -->
+<object data="http://foo.com:b@d/"></object><!-- userinfo-username-non-alpha -->
+<object data="http://foo/abcd?efgh?ijkl"></object><!-- query-contains-question-mark -->
+<object data="http://foo/abcd#foo?bar"></object><!-- fragment-contains-question-mark -->
+<object data="http://example.com/foo/%2e"></object><!-- path-percent-encoded-dot -->
+<object data="http://example.com/%20foo"></object><!-- path-percent-encoded-space -->
+<object data="http://example.com/©zbar"></object><!-- path-non-ascii -->
+<object data="http://example.com/foo%41%7a"></object><!-- path-percent-encoded-multiple -->
+<object data="http://example.com/foo%91"></object><!-- path-percent-encoded-u0091 -->
+<object data="http://example.com/foo%00"></object><!-- path-percent-encoded-u0000 -->
+<object data="http://example.com/%3A%3a%3C%3c"></object><!-- path-percent-encoded-mixed-case -->
+<object data="http://example.com/你好你好"></object><!-- path-unicode-han -->
+<object data="http://example.com//foo"></object><!-- path-uFEFF -->
+<object data="http://example.com/‮/foo/‭/bar"></object><!-- path-u202E-u202D -->
+<object data="http://💩"></object><!-- host-is-pile-of-poo -->
+<object data="http💩//:foo"></object><!-- path-contains-pile-of-poo -->
+<object data="http://example.com/foo?💩"></object><!-- query-contains-pile-of-poo -->
+<object data="http://example.com/foo#💩"></object><!-- fragment-contains-pile-of-poo -->
+<object data="http://192.0x00A80001"></object><!-- host-192.0x00A80001 -->
+<object data="http://%25DOMAIN:foobar@foodomain.com"></object><!-- userinfo-username-contains-percent-encoded -->
+<object data="http://@www.example.com"></object><!-- userinfo-empty -->
+<object data="http://:b@www.example.com"></object><!-- userinfo-user-empty -->
+<object data="http://a:@www.example.com"></object><!-- userinfo-password-empty -->
+<object data="http://GOO​⁠goo.com"></object><!-- host-exotic-whitespace -->
+<object data="http://www.foo。bar.com"></object><!-- host-exotic-dot -->
+<object data="http://Go.com"></object><!-- host-fullwidth -->
+<object data="http://你好你好"></object><!-- host-idn-unicode-han -->
+<object data="http://192.168.0.257/"></object><!-- host-IP-address-broken -->
+<object data="//foo/bar"></object><!-- scheme-schemeless-relative -->
+<object data="/"></object><!-- path-slash-only-relative -->
+<object data="/a/b/c"></object><!-- path-simple-relative -->
+<object data="/a%2fc"></object><!-- path-percent-encoded-slash-relative -->
+<object data="/a/%2f/c"></object><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<object data="?"></object><!-- query-empty-no-path-relative -->
+<object data="#"></object><!-- fragment-empty-hash-only-no-path-relative -->
+<object data="#/"></object><!-- fragment-slash-relative -->
+<object data="#;?"></object><!-- fragment-semicolon-question-mark-relative -->
+<object data="#β"></object><!-- fragment-non-ascii-relative -->
+<object data="foo.com"></object><!-- scheme-none-relative -->
+<object data=":"></object><!-- path-colon-relative -->
+<object data=":a"></object><!-- path-leading-colon-letter-relative -->
+<object data=":foo.com"></object><!-- path-leading-colon-chars-relative -->
+<object data=":/"></object><!-- path-leading-colon-slash-relative -->
+<object data=":#"></object><!-- path-leading-colon-hash-relative -->
+<object data=":23"></object><!-- path-leading-colon-number-relative -->
+<object data="/:23"></object><!-- path-slash-colon-number-relative -->
+<object data="::"></object><!-- path-leading-colon-colon-relative -->
+<object data="::23"></object><!-- path-colon-colon-number-relative -->
+<object data="💩http://foo"></object><!-- path-starts-with-pile-of-poo -->
+<object data="/💩"></object><!-- path-slash-pile-of-poo -->
+<object data="File://foo/bar.html"></object><!-- scheme-file-uppercase -->
+<object data="file://C|/foo/bar"></object><!-- scheme-file-slash-slash-c-bar -->
+<object data="file://server/foo/bar"></object><!-- scheme-file-host-included -->
+<object data="file:///foo/bar.txt"></object><!-- scheme-file-host-empty -->
+<object data="file:"></object><!-- scheme-file-scheme-only -->
+<object data="file:/"></object><!-- scheme-file-slash-only -->
+<object data="file://"></object><!-- scheme-file-slash-slash-only -->
+<object data="file:///"></object><!-- scheme-file-slash-slash-slash-only -->
+<object data="file:test"></object><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data-type-missing-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data-type-missing-novalid.html
new file mode 100644
index 0000000000..03f84f9044
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data-type-missing-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta charset=utf-8>
+<title>object element missing data and type attribute</title>
+</head>
+<body>
+<object></object>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data-whitespace-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data-whitespace-only-novalid.html
new file mode 100644
index 0000000000..26b77fd467
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data-whitespace-only-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty data is not valid</title>
+<object data="
+"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..db712e2482
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: fragment-backslash</title>
+<object data="#\"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..91c1531977
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: fragment-contains-hash</title>
+<object data="http://foo/path#f#g"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..bf09cca1ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: fragment-leading-space</title>
+<object data="http://f:21/b# e"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-cr-novalid.html
new file mode 100644
index 0000000000..0d834e8da0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: host-cr</title>
+<object data="http://example. org"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..d9f6ead7a0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: host-double-percent-encoded</title>
+<object data="http://%41.com"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..7bcff83e1e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: host-double-percent-encoded-percent-encoded</title>
+<object data="http://%ef%bc%85%ef%bc%94%ef%bc%91.com"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-empty-novalid.html
new file mode 100644
index 0000000000..2e2d6d84a7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: host-empty</title>
+<object data="http://"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..db6dc05564
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: host-empty-userinfo-empty</title>
+<object data="http://@/www.example.com"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..a468c3743c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: host-empty-with-userinfo</title>
+<object data="http://user:pass@/"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..64388a6a5c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: host-hostname-in-brackets</title>
+<object data="http://[www.google.com]/"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..ee26451bfb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: host-invalid-unicode</title>
+<object data="http://﷐zyx.com"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..600c40146c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: host-invalid-unicode-percent-encoded</title>
+<object data="http://%ef%b7%90zyx.com"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-newline-novalid.html
new file mode 100644
index 0000000000..9cda7a1cca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: host-newline</title>
+<object data="http://example.
+org"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-space-novalid.html
new file mode 100644
index 0000000000..24ee0daf46
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: host-space</title>
+<object data="http://example .org"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..e65b6a35da
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: host-square-brackets-port-contains-colon</title>
+<object data="http://[1::2]:3:4"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-tab-novalid.html
new file mode 100644
index 0000000000..06424d027a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: host-tab</title>
+<object data="http://example .org"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..0782bd2baf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: host-u0000-percent-encoded</title>
+<object data="http://%00.com"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..72bee10c22
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: host-u0000-percent-encoded-percent-encoded</title>
+<object data="http://%ef%bc%85%ef%bc%90%ef%bc%90.com"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..7672e0075c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: path-bare-percent-sign</title>
+<object data="http://example.com/foo%"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-contains-space-novalid.html
new file mode 100644
index 0000000000..306bd90cbd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: path-contains-space</title>
+<object data="/a/ /c"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..4d421d7e77
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: path-leading-backslash-at-sign</title>
+<object data="http://foo.com/\@"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..bab2c3661a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: path-leading-colon-backslash</title>
+<object data=":\"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..d24fc52e6f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: path-leading-colon-chars-backslash</title>
+<object data=":foo.com\"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-leading-space-novalid.html
new file mode 100644
index 0000000000..9093f5e26e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: path-leading-space</title>
+<object data="http://f:21/ b"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..d0a32ca506
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: path-percent-encoded-malformed</title>
+<object data="http://example.com/foo/%2e%2"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..d3c020df8a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: path-relative-square-brackets</title>
+<object data="[61:24:74]:98"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-tab-novalid.html
new file mode 100644
index 0000000000..393ad621ba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: path-tab</title>
+<object data="http://example.com/foo bar"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..7637e81e43
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: path-trailing-space</title>
+<object data="http://f:21/b ?"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-u0091-novalid.html
new file mode 100644
index 0000000000..16b7b75044
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: path-u0091</title>
+<object data="http://example.com/foo‘"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-999999-novalid.html
new file mode 100644
index 0000000000..7cc877269c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: port-999999</title>
+<object data="http://f:999999/c"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-cr-novalid.html
new file mode 100644
index 0000000000..c66522f3da
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: port-cr</title>
+<object data="http://f: /c"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..23a94ce367
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: port-leading-colon-bracket-colon</title>
+<object data="http://2001::1]:80"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..67d1d40f1b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: port-leading-colon</title>
+<object data="http://2001::1"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..ace5c2109e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: port-leading-dash</title>
+<object data="http://foo:-80/"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..72aabe72dc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: port-multiple-letters</title>
+<object data="http://f:fifty-two/c"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-newline-novalid.html
new file mode 100644
index 0000000000..f9cec6d9b3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: port-newline</title>
+<object data="http://f:
+/c"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-single-letter-novalid.html
new file mode 100644
index 0000000000..1c349f119b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: port-single-letter</title>
+<object data="http://f:b/c"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-space-novalid.html
new file mode 100644
index 0000000000..0efa3a6466
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: port-space</title>
+<object data="http://f: /c"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-tab-novalid.html
new file mode 100644
index 0000000000..d472787a90
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: port-tab</title>
+<object data="http://f: /c"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/query-leading-space-novalid.html
new file mode 100644
index 0000000000..a079135891
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: query-leading-space</title>
+<object data="http://f:21/b? d"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..6a8cc4bc63
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: query-trailing-space</title>
+<object data="http://f:21/b?d #"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..7075d88a07
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/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>
+<object data="data:text/html,test#test"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..97d1d04183
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-data-single-slash</title>
+<object data="data:/example.com/"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..829632449f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-file-backslash</title>
+<object data="file:c:\foo\bar.html"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..a5d0c782b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-file-single-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-file-single-slash-c-bar</title>
+<object data="file:/C|/foo/bar"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..0cf7b3792f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-file-slash-slash-abc-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-file-slash-slash-abc-bar</title>
+<object data="file://abc|/foo/bar"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..4109b8c848
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-file-triple-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-file-triple-slash-c-bar</title>
+<object data="file:///C|/foo/bar"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..a828a9fb66
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-ftp-no-slash</title>
+<object data="ftp:example.com/"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..0f4a5d3115
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-ftp-single-slash</title>
+<object data="ftp:/example.com/"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..4286ae797f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-http-backslash</title>
+<object data="http:\\foo.com\"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..522f34cb9d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-http-no-slash-colon</title>
+<object data="http::@c:29"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..8ae3cc5e45
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-http-no-slash</title>
+<object data="http:foo.com"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..af87406c3c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-http-no-slash-square-bracket</title>
+<object data="http:[61:27]/:foo"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..3923512854
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-http-single-slash</title>
+<object data="http:/example.com/"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..79ca00c60b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-https-no-slash</title>
+<object data="https:example.com/"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..17f0317420
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-https-single-slash</title>
+<object data="https:/example.com/"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..4c9c1226c8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-trailing-cr</title>
+<object data="a: foo.com"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..7a46f0ccc9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-trailing-newline</title>
+<object data="a:
+foo.com"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..756cbb9c76
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-trailing-space</title>
+<object data="a: foo.com"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..f85ac5dcda
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: scheme-trailing-tab</title>
+<object data="a: foo.com"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..c196363507
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: userinfo-backslash</title>
+<object data="http://a\b:c\d@foo.com"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..c1b3669e38
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: userinfo-password-bad-chars</title>
+<object data="http://&a:foo(b]c@d:2/"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..b6f542d72d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: userinfo-password-contains-pile-of-poo</title>
+<object data="http://foo:💩@example.com"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..15763d0e07
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: userinfo-username-contains-at-sign</title>
+<object data="http://::@c@d:2"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..9cb6d9cc28
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/data/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid data: userinfo-username-contains-pile-of-poo</title>
+<object data="http://💩:foo@example.com"></object>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/model-isvalid.html
new file mode 100644
index 0000000000..820915ed3a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/model-isvalid.html
@@ -0,0 +1,79 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;object&gt;</title>
+</head>
+<body>
+ <map name="idref"></map>
+ <!-- is structured inline -->
+ <p><object
+ data="uri"
+ height="40"
+ usemap="#idref"
+ width="40"
+ class="class"
+ lang="en"></object></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><object
+ data="uri"
+ height="40"
+ usemap="#idref"
+ width="40"
+ class="class"
+ lang="en"></object></dfn></p>
+
+
+ <!-- can contain strictly inline while in strictly inline context, but param must come first -->
+ <p><dfn>strictly inline
+ <object data='f'>
+ <em>text</em>
+ </object>
+ </dfn></p>
+ <p><dfn>strictly inline
+ <object data='f'>
+ <param name="foo" value='bar'><param name="bar" value='foo'>
+ <em>text</em>
+ </object>
+ </dfn></p>
+
+ <!-- can contain blocks while in block context, but param must come first -->
+<!-- REVISIT
+ <object>
+ <p>text</p>
+ </object>
+ <object>
+ <param name="foo" value='bar'><param name="bar" value='foo'>
+ <p>text</p>
+ </object>
+-->
+ <!-- can contain interactive if ancestor does not forbid it, but param must come first -->
+ <p>paragraph
+ <object data='f'>
+ <a>link</a>
+ </object>
+ </p>
+ <p>paragraph
+ <object data='f'>
+ <param name="foo" value='bar'><param name="bar" value='foo'>
+ <a>link</a>
+ </object>
+ </p>
+ <p><dfn>strictly inline
+ <object data='f'>
+ <a>link</a>
+ </object>
+ </dfn></p>
+ <p><dfn>strictly inline
+ <object data='f'>
+ <param name="foo" value='bar'><param name="bar" value='foo'>
+ <a>link</a>
+ </object>
+ </dfn></p>
+
+ <!-- object with flow content and flow parent -->
+ <div><object data=foo><p>foo</p></object></div>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/object/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/object/model-novalid.html
new file mode 100644
index 0000000000..f5037efa81
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/object/model-novalid.html
@@ -0,0 +1,81 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;obj&gt;</title>
+</head>
+<body>
+ <!-- classid, codebase, data, usemap are uris; archive is uri list
+ width and height are positive integers
+ type and codetype are MIME types -->
+ <p><object archive="&lt;"></object></p>
+ <p><object classid="&lt;"></object></p>
+ <p><object codebase="&lt;"></object></p>
+ <p><object codetype="//"></object></p>
+ <p><object data="&lt;"></object></p>
+ <p><object height="4.2"></object></p>
+ <p><object type="//"></object></p>
+ <p><object usemap="&lt;"></object></p>
+ <p><object width="0"></object></p>
+
+ <!-- cannot contain blocks while in inline context -->
+ <p>paragraph
+ <object>
+ <p>para</p>
+ </object>
+ </p>
+
+ <!-- cannot contain blocks while in strictly inline context -->
+ <p><dfn>strictly inline
+ <object>
+ <p>para</p>
+ </object>
+ </dfn></p>
+
+ <!-- cannot contain structured inline while in strictly inline context -->
+ <p><dfn>strictly inline
+ <object>
+ <ul><li>para</li></ul>
+ </object>
+ </dfn></p>
+
+ <!-- cannot contain inline while in block context -->
+ <object>
+ <em>inline</em> text
+ </object>
+
+ <!-- param must be first -->
+ <p>paragraph
+ <object>
+ <em>text</em>
+ <param name="foo">
+ </object>
+ </p>
+ <p><dfn>strictly inline
+ <object>
+ text
+ <param name="foo">
+ </object>
+ </dfn></p>
+ <object>
+ <p>para</p>
+ <param name="foo">
+ </object>
+
+ <!-- cannot contain interactive if ancestor forbids it -->
+ <p><a>paragraph
+ <object>
+ <a>para</a>
+ </object>
+ </a></p>
+ <p><dfn><a>strictly inline
+ <object>
+ <a>para</a>
+ </object>
+ </a></dfn></p>
+
+ <!-- object with flow content and phrasing parent -->
+ <span><object data=foo><p>foo</p></object></span>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ol/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ol/model-isvalid.html
new file mode 100644
index 0000000000..28e545a129
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ol/model-isvalid.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Ordered List: &lt;ol&gt; &lt;li&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <ol class="class" id="id" lang="en" start="05">
+ <li class="class" id="id2" lang="en" value="9">text</li>
+ </ol>
+
+ <!-- can be empty -->
+ <ol></ol>
+ <ol>
+ <li></li>
+ <li></li>
+ </ol>
+
+ <!-- can contain structured inline -->
+ <ol>
+ <li>some <em>text</em>
+ <pre>more text</pre>
+ </li>
+ </ol>
+
+ <!-- can contain blocks -->
+ <ol>
+ <li>
+ <p>some</p>
+ <p>text</p>
+ </li>
+ </ol>
+
+ <!-- can contain interactive -->
+ <ol><li><a>text</a></li></ol>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ol/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ol/model-novalid.html
new file mode 100644
index 0000000000..2b00a34e6c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ol/model-novalid.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Ordered List: &lt;ol&gt; &lt;li&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <ol class="class" id="id" lang="en" start="05">
+ <li class="class" id="id" lang="en" value="9">text</li>
+ </ol>
+
+ <!-- is structured inline -->
+ <p>paragraph
+ <ol class="class" id="id" lang="en" start="-8">
+ <li class="class" id="id" lang="en" value="-19">text</li>
+ </ol>
+ </p>
+
+ <!-- can be empty -->
+ <ol></ol>
+ <ol>
+ <li></li>
+ <li></li>
+ </ol>
+
+ <!-- cannot contain structured inline -->
+ <ol>
+ <li>some <em>text</em>
+ <pre>more text</pre>
+ </li>
+ </ol>
+ <p>paragraph
+ <ol>
+ <li>some <em>text</em>
+ <pre>more text</pre>
+ </li>
+ </ol>
+ </p>
+
+ <!-- can contain blocks -->
+ <ol>
+ <li>
+ <p>some</p>
+ <p>text</p>
+ </li>
+ </ol>
+
+ <!-- can contain interactive -->
+ <ol><li><a>text</a></li></ol>
+ <p>paragraph
+ <ol><li><a>text</a></li></ol>
+ </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/option/label-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/option/label-isvalid.html
new file mode 100644
index 0000000000..66c3a4f080
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/option/label-isvalid.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>option element with label attribute</title>
+<select>
+<option label=foo></option>
+</select>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/option/label-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/option/label-novalid.html
new file mode 100644
index 0000000000..c68367a4fc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/option/label-novalid.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>option element with empty label attribute</title>
+<select>
+<option label=""></option>
+</select>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/option/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/option/model-isvalid.html
new file mode 100644
index 0000000000..7cc75ab806
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/option/model-isvalid.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>non-empty option element</title>
+<select>
+<option>foo</option>
+</select>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/option/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/option/model-novalid.html
new file mode 100644
index 0000000000..dbe431d5f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/option/model-novalid.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>empty option element</title>
+<select>
+<option></option>
+</select>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/p/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/p/model-isvalid.html
new file mode 100644
index 0000000000..9d9e2a11d8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/p/model-isvalid.html
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;p&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <p class="class" id="id" lang="en">text</p>
+
+ <!-- can contain interactive -->
+ <p><a>text</a></p>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/p/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/p/model-novalid.html
new file mode 100644
index 0000000000..18cdd54996
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/p/model-novalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;p&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <p class="class" id="id" lang="en">text</p>
+
+ <!-- can contain interactive -->
+ <p><a>text</a></p>
+
+ <!-- cannot contain structured inline -->
+ <p>text <ul><li>list</li></ul> <em>elem</em></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/param/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/param/model-isvalid.html
new file mode 100644
index 0000000000..eedf9d0066
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/param/model-isvalid.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;param&gt;</title>
+</head>
+<body>
+<p>
+ <object data='foo'><param name="foo" value='bar'></object>
+
+ <object data='foo'><param name="foo" value="!@#$%$ ^&amp;)"></object>
+ <object data='foo'><param name="foo" value="!@#$%$ ^&amp;)"></object>
+
+ <object data='foo'><param name="foo" value="uri"></object>
+ <object data='foo'><param name="foo" value="uri"></object>
+</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/param/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/param/model-novalid.html
new file mode 100644
index 0000000000..ad780fc833
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/param/model-novalid.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;param&gt;</title>
+</head>
+<body>
+ <!-- param is not block or inline -->
+ <param name="foo">
+ <p>para<param name="foo"></p>
+ <p><dfn>strictly<param name="foo"></dfn></p>
+
+ <!-- param must be empty -->
+ <object><param name="foo"><p>yo</p></object>
+ <p><object><param name="foo"><em>some</em> text</object></p>
+
+ <!-- name is required -->
+ <object><param></object>
+
+ <!-- param data value cannot have type attr -->
+ <object><param name="foo" value="!@#$%$ ^&amp;)"
+ type="application/octet-stream"></object>
+ <object><param name="foo" valuetype="data" value="!@#$%$ ^&amp;)"
+ type="application/octet-stream"></object>
+
+ <!-- param ref value must be URI -->
+ <object><param name="foo" valuetype="ref" value="&lt;"></object>
+ <object><param name="foo" valuetype="ref" value="&lt;"
+ type="application/octet-stream"></object>
+
+ <!-- param object value must be IDREF, cannot have type attr -->
+ <object><param name="foo" valuetype="object" value="sth"></object>
+ <object><param name="foo" valuetype="object" value="#"></object>
+ <object><param name="foo" valuetype="object" value="#"
+ type="application/octet-stream"></object>
+
+ <!-- valuetype can't take any other values -->
+ <object><param name="foo" valuetype="sth"></object>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-all-spaces-with-following-source-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-all-spaces-with-following-source-srcset-novalid.html
new file mode 100644
index 0000000000..e63f7c1219
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-all-spaces-with-following-source-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid always-matching-source-media-all-spaces-with-following-source-srcset</title>
+<picture><source srcset=x media=' all '><source srcset=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-all-with-following-source-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-all-with-following-source-srcset-novalid.html
new file mode 100644
index 0000000000..f97bc41f45
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-all-with-following-source-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid always-matching-source-media-all-with-following-source-srcset</title>
+<picture><source srcset=x media=all><source srcset=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-empty-with-following-source-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-empty-with-following-source-srcset-novalid.html
new file mode 100644
index 0000000000..b1bf9476d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-empty-with-following-source-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid always-matching-source-media-empty-with-following-source-srcset</title>
+<picture><source srcset=x media><source srcset=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-spaces-with-following-source-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-spaces-with-following-source-srcset-novalid.html
new file mode 100644
index 0000000000..66641ad612
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-spaces-with-following-source-srcset-novalid.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid always-matching-source-media-spaces-with-following-source-srcset</title>
+<picture><source srcset=x media='
+ '><source srcset=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-uppercase-with-following-source-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-uppercase-with-following-source-srcset-novalid.html
new file mode 100644
index 0000000000..584dfe97c7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-media-uppercase-with-following-source-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid always-matching-source-media-uppercase-with-following-source-srcset</title>
+<picture><source srcset=x media=ALL><source srcset=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-sizes-with-following-source-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-sizes-with-following-source-srcset-novalid.html
new file mode 100644
index 0000000000..4fdbe261b3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-sizes-with-following-source-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid always-matching-source-sizes-with-following-source-srcset</title>
+<picture><source srcset='x 100w' sizes=50vw><source srcset=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-with-following-img-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-with-following-img-srcset-novalid.html
new file mode 100644
index 0000000000..15e0a02c9f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-with-following-img-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid always-matching-source-with-following-img-srcset</title>
+<picture><source srcset=x><img src=x srcset=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-with-following-source-media-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-with-following-source-media-novalid.html
new file mode 100644
index 0000000000..b3723fc63b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-with-following-source-media-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid always-matching-source-with-following-source-media</title>
+<picture><source srcset=x><source srcset=x media=screen><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-with-following-source-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-with-following-source-srcset-novalid.html
new file mode 100644
index 0000000000..45046bcc44
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-with-following-source-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid always-matching-source-with-following-source-srcset</title>
+<picture><source srcset=x><source srcset=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-with-following-source-type-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-with-following-source-type-novalid.html
new file mode 100644
index 0000000000..ad6f6bd971
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/always-matching-source-with-following-source-type-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid always-matching-source-with-following-source-type</title>
+<picture><source srcset=x><source srcset=x type=image/gif><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/audio-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/audio-srcset-novalid.html
new file mode 100644
index 0000000000..39d47ac73a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/audio-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid audio-srcset</title>
+<audio src=x srcset=x></audio> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-img-end-tag-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-img-end-tag-novalid.html
new file mode 100644
index 0000000000..69676d5cb2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-img-end-tag-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid html-syntax-img-end-tag</title>
+<picture><img src=x alt></img></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-picture-no-end-tag-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-picture-no-end-tag-novalid.html
new file mode 100644
index 0000000000..f12ef1203f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-picture-no-end-tag-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid html-syntax-picture-no-end-tag</title>
+<picture><img src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-picture-slash-no-end-tag-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-picture-slash-no-end-tag-novalid.html
new file mode 100644
index 0000000000..a555b834d0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-picture-slash-no-end-tag-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid html-syntax-picture-slash-no-end-tag</title>
+<picture/><img src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-picture-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-picture-slash-novalid.html
new file mode 100644
index 0000000000..ffb3476e3a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-picture-slash-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid html-syntax-picture-slash</title>
+<picture/><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-source-end-tag-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-source-end-tag-novalid.html
new file mode 100644
index 0000000000..747a6def29
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/html-syntax-source-end-tag-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid html-syntax-source-end-tag</title>
+<picture><source srcset=x></source><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-novalid.html
new file mode 100644
index 0000000000..23f09e118e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid img-no-src</title>
+<img alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-with-picture-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-with-picture-novalid.html
new file mode 100644
index 0000000000..e414b938a0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-with-picture-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid img-no-src-with-picture</title>
+<picture><img alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-with-source-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-with-source-novalid.html
new file mode 100644
index 0000000000..10ef732eb4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-with-source-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid img-no-src-with-source</title>
+<picture><source srcset=x><img alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-with-srcset-and-picture-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-with-srcset-and-picture-novalid.html
new file mode 100644
index 0000000000..d91f5a7e58
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-with-srcset-and-picture-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid img-no-src-with-srcset-and-picture</title>
+<picture><img srcset=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-with-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-with-srcset-novalid.html
new file mode 100644
index 0000000000..de5b4504db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-no-src-with-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid img-no-src-with-srcset</title>
+<img srcset=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-srcset-no-descriptor-with-sizes-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-srcset-no-descriptor-with-sizes-novalid.html
new file mode 100644
index 0000000000..12101c39dd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-srcset-no-descriptor-with-sizes-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid img-srcset-no-descriptor-with-sizes</title>
+<img src=x srcset='x' sizes=50vw alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-srcset-w-and-x-width-sizes-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-srcset-w-and-x-width-sizes-novalid.html
new file mode 100644
index 0000000000..e3f979775b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-srcset-w-and-x-width-sizes-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid img-srcset-w-and-x-width-sizes</title>
+<img src=x srcset='x 100w, y 2x' sizes=50vw alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-srcset-w-no-sizes-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-srcset-w-no-sizes-novalid.html
new file mode 100644
index 0000000000..3a62ae2352
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-srcset-w-no-sizes-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid img-srcset-w-no-sizes</title>
+<img srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-type-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-type-novalid.html
new file mode 100644
index 0000000000..c65a153a17
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-type-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid img-type</title>
+<img src=x type=image/gif alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-type-with-picture-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-type-with-picture-novalid.html
new file mode 100644
index 0000000000..844eb5cfa0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-type-with-picture-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid img-type-with-picture</title>
+<picture><img src=x type=image/gif alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-with-sizes-no-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-with-sizes-no-srcset-novalid.html
new file mode 100644
index 0000000000..4afba12474
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/img-with-sizes-no-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid img-with-sizes-no-srcset</title>
+<img sizes=50vw src=foo alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/input-type-image-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/input-type-image-srcset-novalid.html
new file mode 100644
index 0000000000..f8c882c059
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/input-type-image-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid input-type-image-srcset</title>
+<input type=image src=x srcset=x alt=x> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-br-after-img-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-br-after-img-novalid.html
new file mode 100644
index 0000000000..21b5995725
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-br-after-img-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-br-after-img</title>
+<picture><img src=x alt><br></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-br-after-source-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-br-after-source-novalid.html
new file mode 100644
index 0000000000..ae89b13710
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-br-after-source-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-br-after-source</title>
+<picture><source srcset=x><br><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-br-before-img-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-br-before-img-novalid.html
new file mode 100644
index 0000000000..9e0f29df1d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-br-before-img-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-br-before-img</title>
+<picture><br><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-br-before-source-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-br-before-source-novalid.html
new file mode 100644
index 0000000000..08fc66213d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-br-before-source-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-br-before-source</title>
+<picture><br><source srcset=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-figure-wrapping-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-figure-wrapping-novalid.html
new file mode 100644
index 0000000000..948cb83a2a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-figure-wrapping-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-figure-wrapping</title>
+<picture><figure><img src=x alt></figure></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-input-type-hidden-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-input-type-hidden-novalid.html
new file mode 100644
index 0000000000..29e5310ce8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-input-type-hidden-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-input-type-hidden</title>
+<picture><input type=hidden name=x value=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-math-nog-img-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-math-nog-img-novalid.html
new file mode 100644
index 0000000000..cbe6391cf5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-math-nog-img-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-math-nog-img</title>
+<picture><math></math></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-noscript-after-source-no-img-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-noscript-after-source-no-img-novalid.html
new file mode 100644
index 0000000000..e66f616843
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-noscript-after-source-no-img-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-noscript-after-source-no-img</title>
+<picture><source srcset=x><noscript><img src=x alt></noscript></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-noscript-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-noscript-novalid.html
new file mode 100644
index 0000000000..430cc880fb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-noscript-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-noscript</title>
+<picture><img src=x alt><noscript></noscript></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-p-after-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-p-after-novalid.html
new file mode 100644
index 0000000000..f09c344ce4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-p-after-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-p-after</title>
+<picture><source srcset=x><img src=x alt><p></p></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-p-before-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-p-before-novalid.html
new file mode 100644
index 0000000000..3e12510b54
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-p-before-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-p-before</title>
+<picture><p></p><source srcset=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-p-wrapping-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-p-wrapping-novalid.html
new file mode 100644
index 0000000000..45d19b4276
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-p-wrapping-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-p-wrapping</title>
+<picture><p><source srcset=x><img src=x alt></p></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-picture-before-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-picture-before-novalid.html
new file mode 100644
index 0000000000..001e5429b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-picture-before-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-picture-before</title>
+<picture><picture><img src=x alt></picture><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-picture-wrapping-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-picture-wrapping-novalid.html
new file mode 100644
index 0000000000..611ebde6d3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-picture-wrapping-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-picture-wrapping</title>
+<picture><picture><img src=x alt></picture></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-span-after-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-span-after-novalid.html
new file mode 100644
index 0000000000..0e6d842539
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-span-after-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-span-after</title>
+<picture><source srcset=x><img src=x alt><span></span></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-span-before-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-span-before-novalid.html
new file mode 100644
index 0000000000..4fd5c2c1c3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-span-before-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-span-before</title>
+<picture><span></span><source srcset=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-span-wrapping-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-span-wrapping-novalid.html
new file mode 100644
index 0000000000..5e9262ddb7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-span-wrapping-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-span-wrapping</title>
+<picture><span><source srcset=x><img src=x alt></span></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-style-scroped-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-style-scroped-novalid.html
new file mode 100644
index 0000000000..bb622258f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-style-scroped-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-style-scroped</title>
+<picture><style scroped></style><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-svg-no-img-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-svg-no-img-novalid.html
new file mode 100644
index 0000000000..1464b8f79b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-svg-no-img-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-svg-no-img</title>
+<picture><svg></svg></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-svg-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-svg-novalid.html
new file mode 100644
index 0000000000..769415548e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-svg-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-svg</title>
+<picture><img src=x alt><svg></svg></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-text-after-img-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-text-after-img-novalid.html
new file mode 100644
index 0000000000..f730e98115
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-text-after-img-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-text-after-img</title>
+<picture><img src=x alt>x</picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-text-after-source-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-text-after-source-novalid.html
new file mode 100644
index 0000000000..8202317414
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-text-after-source-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-text-after-source</title>
+<picture><source srcset=x>x<img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-text-before-img-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-text-before-img-novalid.html
new file mode 100644
index 0000000000..dc5b2e57a1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-text-before-img-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-text-before-img</title>
+<picture>x<img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-text-before-source-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-text-before-source-novalid.html
new file mode 100644
index 0000000000..0817bd3616
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-text-before-source-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-text-before-source</title>
+<picture>x<source srcset=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-video-before-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-video-before-novalid.html
new file mode 100644
index 0000000000..e7f2cd93d2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-video-before-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-video-before</title>
+<picture><video></video><source srcset=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-video-no-img-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-video-no-img-novalid.html
new file mode 100644
index 0000000000..e65fe3d85e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/junk-video-no-img-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid junk-video-no-img</title>
+<picture><video></video></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/link-rel-icon-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/link-rel-icon-srcset-novalid.html
new file mode 100644
index 0000000000..bbd4ec8eca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/link-rel-icon-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid link-rel-icon-srcset</title>
+<link rel=icon srcset=x href=x> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-empty-picture-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-empty-picture-novalid.html
new file mode 100644
index 0000000000..5772ba29a7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-empty-picture-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid missing-img-empty-picture</title>
+<picture></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-only-script-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-only-script-novalid.html
new file mode 100644
index 0000000000..5d1e7dca71
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-only-script-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid missing-img-only-script</title>
+<picture><script></script></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-only-source-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-only-source-novalid.html
new file mode 100644
index 0000000000..dc535ae8fb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-only-source-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid missing-img-only-source</title>
+<picture><source srcset=x></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-script-and-source-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-script-and-source-novalid.html
new file mode 100644
index 0000000000..c41226368c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-script-and-source-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid missing-img-script-and-source</title>
+<picture><script></script><source srcset=x></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-source-and-script-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-source-and-script-novalid.html
new file mode 100644
index 0000000000..01f4c83364
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/missing-img-source-and-script-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid missing-img-source-and-script</title>
+<picture><source srcset=x><script></script></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/multiple-img-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/multiple-img-novalid.html
new file mode 100644
index 0000000000..5da354872d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/multiple-img-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid multiple-img</title>
+<picture><img src=x alt><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/multiple-img-with-script-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/multiple-img-with-script-novalid.html
new file mode 100644
index 0000000000..9a0d3c7b44
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/multiple-img-with-script-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid multiple-img-with-script</title>
+<picture><img src=x alt><script></script><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/multiple-img-with-source-and-script-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/multiple-img-with-source-and-script-novalid.html
new file mode 100644
index 0000000000..a97d7ccca1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/multiple-img-with-source-and-script-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid multiple-img-with-source-and-script</title>
+<picture><source srcset=x><img src=x alt><script></script><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/multiple-img-with-source-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/multiple-img-with-source-novalid.html
new file mode 100644
index 0000000000..60740ee48e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/multiple-img-with-source-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid multiple-img-with-source</title>
+<picture><source srcset=x><img src=x alt><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/object-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/object-srcset-novalid.html
new file mode 100644
index 0000000000..62482e92db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/object-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid object-srcset</title>
+<object data=x srcset=x></object> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-dl-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-dl-novalid.html
new file mode 100644
index 0000000000..8277b989d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-dl-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid parent-dl</title>
+<dl><picture><img src=x alt></picture></dl> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-hgroup-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-hgroup-novalid.html
new file mode 100644
index 0000000000..936d93e21f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-hgroup-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid parent-hgroup</title>
+<hgroup><h1>x</h1><picture><img src=x alt></picture></hgroup> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-noscript-in-head-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-noscript-in-head-novalid.html
new file mode 100644
index 0000000000..d04b77248c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-noscript-in-head-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid parent-noscript-in-head</title>
+<noscript><picture><img src=x alt></picture></noscript> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-rp-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-rp-novalid.html
new file mode 100644
index 0000000000..5763e57ae9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-rp-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid parent-rp</title>
+<ruby>x<rp><picture><img src=x alt></picture></rp><rt>x</rt><rp>x</rp></ruby> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-ul-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-ul-novalid.html
new file mode 100644
index 0000000000..2bad211f31
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/parent-ul-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid parent-ul</title>
+<ul><picture><img src=x alt></picture></ul> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-align-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-align-novalid.html
new file mode 100644
index 0000000000..81ce1eeed0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-align-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-align</title>
+<picture align=left><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-alt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-alt-novalid.html
new file mode 100644
index 0000000000..80f5bfe948
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-alt-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-alt</title>
+<picture alt><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-application-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-application-novalid.html
new file mode 100644
index 0000000000..db4a9356c3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-application-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-aria-role-application</title>
+<picture role=application><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-button-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-button-novalid.html
new file mode 100644
index 0000000000..e362cfdc23
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-button-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-aria-role-button</title>
+<picture role=button><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-img-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-img-novalid.html
new file mode 100644
index 0000000000..1d9540acf5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-img-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-aria-role-img</title>
+<picture role=img><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-presentation-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-presentation-novalid.html
new file mode 100644
index 0000000000..428fdc7477
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-presentation-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-aria-role-presentation</title>
+<picture role=presentation><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-region-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-region-novalid.html
new file mode 100644
index 0000000000..b264824ea8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-aria-role-region-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-aria-role-region</title>
+<picture role=region><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-border-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-border-novalid.html
new file mode 100644
index 0000000000..1882bb31e6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-border-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-border</title>
+<picture border=1><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-crossorigin-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-crossorigin-novalid.html
new file mode 100644
index 0000000000..ed45d49a63
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-crossorigin-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-crossorigin</title>
+<picture crossorigin><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-height-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-height-novalid.html
new file mode 100644
index 0000000000..ad7da34636
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-height-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-height</title>
+<picture height=100><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-hspace-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-hspace-novalid.html
new file mode 100644
index 0000000000..fb9b97ee58
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-hspace-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-hspace</title>
+<picture hspace=1><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-ismap-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-ismap-novalid.html
new file mode 100644
index 0000000000..58fcfcfae2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-ismap-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-ismap</title>
+<picture ismap><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-isvalid.html
new file mode 100644
index 0000000000..d25e2ceaaf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-isvalid.html
@@ -0,0 +1,110 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>valid picture</title>
+<template><picture><img src=x alt></picture></template> <!-- parent-template-in-head -->
+<body>
+<img src=x alt> <!-- basic-img-src -->
+<picture><img src=x alt></picture> <!-- basic-picture-img-src -->
+<picture><source srcset=x><img src=x alt></picture> <!-- basic-picture-source -->
+<picture><source srcset=x height=100><img src=x alt></picture> <!-- source-height -->
+<picture><source srcset=x width=100><img src=x alt></picture> <!-- source-width -->
+<picture> <!--x--> <source srcset=x> <!--x--> <img src=x alt> <!--x--> </picture> <!-- inter-element-whitespace -->
+<p><picture><img src=x alt></picture></p> <!-- parent-p -->
+<h1><picture><img src=x alt=x></picture></h1> <!-- parent-h1 -->
+<noscript><picture><img src=x alt></picture></noscript> <!-- parent-noscript-in-body -->
+<object data=x><picture><img src=x alt></picture></object> <!-- parent-object -->
+<video src=x><picture><img src=x alt></picture></video> <!-- parent-video -->
+<section><h2>x</h2><picture><img src=x alt></picture></section> <!-- parent-section -->
+<main><picture><img src=x alt></picture></main> <!-- parent-main -->
+<canvas><picture><img src=x alt></picture></canvas> <!-- parent-canvas -->
+<template><picture><img src=x alt></picture></template> <!-- parent-template-in-body -->
+<ruby><picture><img src=x alt></picture><rt>x</rt></ruby> <!-- parent-ruby -->
+<ruby>x<rt><picture><img src=x alt></picture></rt></ruby> <!-- parent-rt -->
+<a href=x><picture><img src=x alt></picture></a> <!-- parent-a -->
+<button><picture><img src=x alt></picture></button> <!-- parent-button -->
+<table><tr><td><picture><img src=x alt></picture></table> <!-- parent-td -->
+<picture><script></script><source srcset=x><img src=x alt></picture> <!-- script-first -->
+<picture><template></template><source srcset=x><img src=x alt></picture> <!-- template-first -->
+<picture><source srcset=x><script></script><img src=x alt></picture> <!-- script-between -->
+<picture><source srcset=x><img src=x alt><script></script></picture> <!-- script-after -->
+<picture><script></script><source srcset=x><img src=x alt><script></script></picture> <!-- script-before-after -->
+<picture><script></script><source srcset=x><script></script><img src=x alt><script></script></picture> <!-- script-before-between-after -->
+<picture><template></template><source srcset=x><script></script><img src=x alt><template></template></picture> <!-- script-and-template -->
+<picture><source srcset=x media=screen><img src=x srcset=x alt></picture> <!-- source-with-media-img-with-srcset -->
+<picture><source srcset=x media=SCREEN><img src=x srcset=x alt></picture> <!-- source-with-media-uppercase-img-with-srcset -->
+<picture><source srcset=x media='
+ screen
+ '><img src=x srcset=x alt></picture> <!-- source-with-media-spaces-img-with-srcset -->
+<picture><source srcset=x media=screen><source srcset=x><img src=x alt></picture> <!-- source-with-media-source-with-srcset -->
+<picture><source srcset=x type=image/gif><img src=x srcset=x alt></picture> <!-- source-with-type-img-with-srcset -->
+<picture><source srcset=x type=image/gif><source srcset=x><img src=x alt></picture> <!-- source-with-type-source-with-srcset -->
+<img srcset='x 100w, y 200w' sizes=50vw src=x alt> <!-- img-with-sizes -->
+<picture><source srcset='x 100w, y 200w' sizes=50vw><img src=x alt></picture> <!-- source-with-sizes -->
+<embed srcset> <!-- embed-srcset-empty -->
+<embed srcset='foo bar'> <!-- embed-srcset-junk -->
+<embed sizes> <!-- embed-sizes-empty -->
+<embed sizes='foo bar'> <!-- embed-sizes-junk -->
+<img src=x srcset='x 1x, y 2x' alt> <!-- img-src-also-in-srcset-1x -->
+<img src=x srcset='y 1x, x 2x' alt> <!-- img-src-also-in-srcset-2x -->
+<img src=x srcset='x 100w, y 200w' sizes=100vw alt> <!-- img-src-also-in-srcset-w -->
+<img src=x srcset='y 1x, z 2x' alt> <!-- img-src-not-in-srcset-x -->
+<img src=x srcset='y 100w, z 200w' sizes=100vw alt> <!-- img-src-not-in-srcset-w -->
+<picture><source srcset=x type=image/gif><img src=x alt></picture> <!-- source-type -->
+<picture><source srcset='x 1x, y 2x' type=image/gif><img src=x alt></picture> <!-- source-type-srcset-x -->
+<picture><source srcset='x 100w, y 200w' type=image/gif sizes=50vw><img src=x alt></picture> <!-- source-type-srcset-w-sizes -->
+<img sizes='(min-width:500px) 500px, 100vw' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-media-min-width -->
+<img sizes='(min-width:1500px) 500px, (min-width:1000px) 33vw, (min-width:500px) 50vw, 100vw' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-multiple-source-sizes -->
+<img sizes='(min-width:500px) 500px' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-no-default -->
+<img sizes='(not (width:500px)) and (width:500px) 500px' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-media-not-and -->
+<img sizes='500px' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-only-default -->
+<img sizes='calc(500px)' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-calc-in-default -->
+<img sizes='(min-width:500px) calc(500px)' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-calc-in-source-size-value -->
+<img sizes='(min-width:calc(500px)) 500px' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-calc-in-media -->
+<img sizes='0' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-zero -->
+<img sizes='-0' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-minus-zero -->
+<img sizes='1em' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-em-in-source-size-value -->
+<img sizes='1ex' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-ex-in-source-size-value -->
+<img sizes='1ch' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-ch-in-source-size-value -->
+<img sizes='1rem' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-rem-in-source-size-value -->
+<img sizes='1vw' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-vw-in-source-size-value -->
+<img sizes='1vh' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-vh-in-source-size-value -->
+<img sizes='1vmin' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-vmin-in-source-size-value -->
+<img sizes='1vmax' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-vmax-in-source-size-value -->
+<img sizes='1cm' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-cm-in-source-size-value -->
+<img sizes='1mm' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-mm-in-source-size-value -->
+<img sizes='1q' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-q-in-source-size-value -->
+<img sizes='1in' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-in-in-source-size-value -->
+<img sizes='1pc' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-pc-in-source-size-value -->
+<img sizes='1pt' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-pt-in-source-size-value -->
+<img sizes='1px' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-px-in-source-size-value -->
+<img sizes='0.2px' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-non-integer-px-in-source-size-value -->
+<img sizes='/**/50vw' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-leading-css-comment -->
+<img sizes='50vw/**/' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-trailing-css-comment -->
+<img sizes='+50vw' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-plus -->
+<img sizes='.2px' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-non-integer-omitted-zero -->
+<img sizes='-0e-0px' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-scientifi-notation-0 -->
+<img sizes='+11.11e+11px' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-scientifi-notation-1 -->
+<img sizes='2.2e2px' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-scientifi-notation-2 -->
+<img sizes='33E33px' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-scientifi-notation-3 -->
+<img sizes='.4E4px' srcset='x 100w, y 200w' src=x alt> <!-- sizes-microsyntax-scientifi-notation-4 -->
+<img srcset='x,x' src=x alt> <!-- srcset-microsyntax-comma-in-url -->
+<img srcset='%2Cx' src=x alt> <!-- srcset-microsyntax-percent-escaped-leading-comma-in-url -->
+<img srcset='x%2C' src=x alt> <!-- srcset-microsyntax-percent-escaped-trailing-comma-in-url -->
+<img srcset='%20' src=x alt> <!-- srcset-microsyntax-percent-escaped-space-in-url -->
+<img srcset='x 1w' sizes=100vw src=x alt> <!-- srcset-microsyntax-w -->
+<img srcset='x 1x' src=x alt> <!-- srcset-microsyntax-x -->
+<img srcset='x .5x' src=x alt> <!-- srcset-microsyntax-leading-dot-x -->
+<img srcset='x 1.5x' src=x alt> <!-- srcset-microsyntax-non-integer-x -->
+<img srcset='x 1e0x' src=x alt> <!-- srcset-microsyntax-scientific-notation-x -->
+<img srcset='x 1.5e0x' src=x alt> <!-- srcset-microsyntax-scientific-notation-decimals-x -->
+<img srcset='x 1e+0x' src=x alt> <!-- srcset-microsyntax-scientific-notation-e-plus-x -->
+<img srcset='x 1e-0x' src=x alt> <!-- srcset-microsyntax-scientific-notation-e-minus-x -->
+<img srcset='x 1E0x' src=x alt> <!-- srcset-microsyntax-scientific-notation-e-uppercase-x -->
+<img srcset='x 1x,y 2x' src=x alt> <!-- srcset-microsyntax-no-space-between-candidates -->
+<picture><img crossorigin src=x alt></picture> <!-- img-crossorigin-with-picture -->
+<picture><img usemap=#x src=x alt></picture><map name=x></map> <!-- img-usemap-with-picture -->
+<a href=x><picture><img ismap src=x alt></picture></a> <!-- img-ismap-with-picture -->
+<picture><img src=x alt width=1 height=1></picture> <!-- img-width-height-with-picture -->
+<picture><img src=x alt width=0 height=0></picture> <!-- img-width-height-zero-with-picture -->
+<picture title=x class=x dir=ltr hidden id=asdf tabindex=0><img src=x alt></picture> <!-- picture-global-attributes -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-longdesc-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-longdesc-novalid.html
new file mode 100644
index 0000000000..2aa1e086b1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-longdesc-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-longdesc</title>
+<picture longdesc=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-lowsrc-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-lowsrc-novalid.html
new file mode 100644
index 0000000000..be2315431d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-lowsrc-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-lowsrc</title>
+<picture lowsrc=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-media-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-media-novalid.html
new file mode 100644
index 0000000000..4e3e8c4f42
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-media-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-media</title>
+<picture media=screen><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-name-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-name-novalid.html
new file mode 100644
index 0000000000..b846050183
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-name-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-name</title>
+<picture name=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-sizes-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-sizes-novalid.html
new file mode 100644
index 0000000000..8f90bdd6d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-sizes-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-sizes</title>
+<picture sizes=50vw><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-src-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-src-novalid.html
new file mode 100644
index 0000000000..00b5825c4f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-src-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-src</title>
+<picture src=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-srcset-novalid.html
new file mode 100644
index 0000000000..6075ef734e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-srcset</title>
+<picture srcset=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-usemap-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-usemap-novalid.html
new file mode 100644
index 0000000000..60d2cdcf6f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-usemap-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-usemap</title>
+<picture usemap><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-vspace-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-vspace-novalid.html
new file mode 100644
index 0000000000..aed4fa45ac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-vspace-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-vspace</title>
+<picture vspace=1><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-width-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-width-novalid.html
new file mode 100644
index 0000000000..01b3901953
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/picture-width-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid picture-width</title>
+<picture width=100><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-auto-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-auto-source-size-value-novalid.html
new file mode 100644
index 0000000000..df9c8b24e8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-auto-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-auto-source-size-value</title>
+<img sizes='auto' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-comma-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-comma-novalid.html
new file mode 100644
index 0000000000..c33642a21d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-comma-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-comma</title>
+<img sizes=',' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-css-comment-after-plus-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-css-comment-after-plus-novalid.html
new file mode 100644
index 0000000000..14c85d1e67
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-css-comment-after-plus-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-css-comment-after-plus</title>
+<img sizes='+/**/50vw' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-css-comment-before-unit-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-css-comment-before-unit-novalid.html
new file mode 100644
index 0000000000..3e5ee116ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-css-comment-before-unit-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-css-comment-before-unit</title>
+<img sizes='50/**/vw' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-default-first-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-default-first-novalid.html
new file mode 100644
index 0000000000..5afb90ef04
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-default-first-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-default-first</title>
+<img sizes='100vw, (min-width:500px) 500px' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-default-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-default-source-size-value-novalid.html
new file mode 100644
index 0000000000..3a419b379c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-default-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-default-source-size-value</title>
+<img sizes='default' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-deg-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-deg-source-size-value-novalid.html
new file mode 100644
index 0000000000..038faa5323
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-deg-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-deg-source-size-value</title>
+<img sizes='1deg' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-dpcm-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-dpcm-source-size-value-novalid.html
new file mode 100644
index 0000000000..84db64355b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-dpcm-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-dpcm-source-size-value</title>
+<img sizes='1dpcm' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-dpi-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-dpi-source-size-value-novalid.html
new file mode 100644
index 0000000000..a50757617b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-dpi-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-dpi-source-size-value</title>
+<img sizes='1dpi' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-dppx-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-dppx-source-size-value-novalid.html
new file mode 100644
index 0000000000..e50642ba48
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-dppx-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-dppx-source-size-value</title>
+<img sizes='1dppx' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-empty-novalid.html
new file mode 100644
index 0000000000..9ffe660d5f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-empty-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-empty</title>
+<img sizes='' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-foo-bar-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-foo-bar-source-size-value-novalid.html
new file mode 100644
index 0000000000..45ce5512bf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-foo-bar-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-foo-bar-source-size-value</title>
+<img sizes='foo-bar' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-grad-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-grad-source-size-value-novalid.html
new file mode 100644
index 0000000000..ac89302bce
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-grad-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-grad-source-size-value</title>
+<img sizes='1grad' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-hz-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-hz-source-size-value-novalid.html
new file mode 100644
index 0000000000..94d58ec98c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-hz-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-hz-source-size-value</title>
+<img sizes='1Hz' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-inherit-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-inherit-source-size-value-novalid.html
new file mode 100644
index 0000000000..96103df2dc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-inherit-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-inherit-source-size-value</title>
+<img sizes='inherit' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-initial-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-initial-source-size-value-novalid.html
new file mode 100644
index 0000000000..94dfcbd943
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-initial-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-initial-source-size-value</title>
+<img sizes='initial' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-junk-in-default-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-junk-in-default-novalid.html
new file mode 100644
index 0000000000..d73502a8ec
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-junk-in-default-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-junk-in-default</title>
+<img sizes='(min-width:500px) 500px, 100vw foo bar' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-junk-in-source-size-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-junk-in-source-size-novalid.html
new file mode 100644
index 0000000000..9681d67bf1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-junk-in-source-size-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-junk-in-source-size</title>
+<img sizes='(min-width:500px) 500px foo bar, 100vw' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-khz-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-khz-source-size-value-novalid.html
new file mode 100644
index 0000000000..b1a31b0c02
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-khz-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-khz-source-size-value</title>
+<img sizes='1kHz' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-all-and-min-width-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-all-and-min-width-novalid.html
new file mode 100644
index 0000000000..8ba429c8a1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-all-and-min-width-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-media-all-and-min-width</title>
+<img sizes='all and (min-width:500px) 500px, 100vw' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-all-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-all-novalid.html
new file mode 100644
index 0000000000..e09bb2b593
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-all-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-media-all</title>
+<img sizes='all 500px, 100vw' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-bad-junk-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-bad-junk-novalid.html
new file mode 100644
index 0000000000..0d5854417f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-bad-junk-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-media-bad-junk</title>
+<img sizes='(}) 500px, 100vw' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-general-enclosed-junk-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-general-enclosed-junk-novalid.html
new file mode 100644
index 0000000000..67f8082717
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-general-enclosed-junk-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-media-general-enclosed-junk</title>
+<img sizes='(123) 500px, 100vw' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-min-width-no-parenthesis-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-min-width-no-parenthesis-novalid.html
new file mode 100644
index 0000000000..0a3e5cb2c6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-media-min-width-no-parenthesis-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-media-min-width-no-parenthesis</title>
+<img sizes='min-width:500px 500px, 100vw' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-ms-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-ms-source-size-value-novalid.html
new file mode 100644
index 0000000000..da8f67714e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-ms-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-ms-source-size-value</title>
+<img sizes='1ms' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-negative-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-negative-source-size-value-novalid.html
new file mode 100644
index 0000000000..ad28f404b5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-negative-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-negative-source-size-value</title>
+<img sizes='-1px' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-no-unit-in-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-no-unit-in-source-size-value-novalid.html
new file mode 100644
index 0000000000..915d5be21f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-no-unit-in-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-no-unit-in-source-size-value</title>
+<img sizes='(min-width:500px) 50, 100vw' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-percent-in-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-percent-in-source-size-value-novalid.html
new file mode 100644
index 0000000000..7d5b7c102d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-percent-in-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-percent-in-source-size-value</title>
+<img sizes='(min-width:500px) 50%, 100vw' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-rad-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-rad-source-size-value-novalid.html
new file mode 100644
index 0000000000..c33365f754
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-rad-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-rad-source-size-value</title>
+<img sizes='1rad' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-s-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-s-source-size-value-novalid.html
new file mode 100644
index 0000000000..0aac2f5330
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-s-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-s-source-size-value</title>
+<img sizes='1s' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-scientific-notation-negative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-scientific-notation-negative-novalid.html
new file mode 100644
index 0000000000..816f2fa0e2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-scientific-notation-negative-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-scientific-notation-negative</title>
+<img sizes='-1e+0px' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-scientific-notation-non-integer-in-exponent-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-scientific-notation-non-integer-in-exponent-novalid.html
new file mode 100644
index 0000000000..fac203893e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-scientific-notation-non-integer-in-exponent-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-scientific-notation-non-integer-in-exponent</title>
+<img sizes='1e+1.5px' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-trailing-comma-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-trailing-comma-novalid.html
new file mode 100644
index 0000000000..29316620ec
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-trailing-comma-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-trailing-comma</title>
+<img sizes='(min-width:500px) 500px, 100vw,' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-trailing-junk-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-trailing-junk-novalid.html
new file mode 100644
index 0000000000..deef3b0e43
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-trailing-junk-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-trailing-junk</title>
+<img sizes='(min-width:500px) 500px, 100vw, foo bar' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-turn-source-size-value-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-turn-source-size-value-novalid.html
new file mode 100644
index 0000000000..4e7870d5b1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-turn-source-size-value-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-turn-source-size-value</title>
+<img sizes='1turn' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-two-defaults-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-two-defaults-novalid.html
new file mode 100644
index 0000000000..bb5a144b52
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/sizes-microsyntax-two-defaults-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid sizes-microsyntax-two-defaults</title>
+<img sizes='500px, 100vw' srcset='x 100w, y 200w' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-after-img-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-after-img-novalid.html
new file mode 100644
index 0000000000..de9f5461ff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-after-img-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-after-img</title>
+<picture><img src=x alt><source srcset=x></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-align-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-align-novalid.html
new file mode 100644
index 0000000000..958aea50ee
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-align-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-align</title>
+<picture><source srcset=x align=left><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-alt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-alt-novalid.html
new file mode 100644
index 0000000000..31799a727c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-alt-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-alt</title>
+<picture><source srcset=x alt><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-aria-role-img-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-aria-role-img-novalid.html
new file mode 100644
index 0000000000..d88e29ff93
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-aria-role-img-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-aria-role-img</title>
+<picture><source role=img srcset=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-aria-role-presentation-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-aria-role-presentation-novalid.html
new file mode 100644
index 0000000000..13464a0141
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-aria-role-presentation-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-aria-role-presentation</title>
+<picture><source role=presentation srcset=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-before-and-after-img-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-before-and-after-img-novalid.html
new file mode 100644
index 0000000000..9b54722b26
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-before-and-after-img-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-before-and-after-img</title>
+<picture><source srcset=x><img src=x alt><source srcset=x></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-border-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-border-novalid.html
new file mode 100644
index 0000000000..c75a221912
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-border-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-border</title>
+<picture><source srcset=x border=1><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-crossorigin-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-crossorigin-novalid.html
new file mode 100644
index 0000000000..aadccf9658
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-crossorigin-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-crossorigin</title>
+<picture><source srcset=x crossorigin><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-hspace-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-hspace-novalid.html
new file mode 100644
index 0000000000..cf796bd27d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-hspace-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-hspace</title>
+<picture><source srcset=x hspace=1><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-ismap-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-ismap-novalid.html
new file mode 100644
index 0000000000..a31514f431
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-ismap-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-ismap</title>
+<picture><source srcset=x ismap><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-longdesc-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-longdesc-novalid.html
new file mode 100644
index 0000000000..84a6f124db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-longdesc-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-longdesc</title>
+<picture><source srcset=x longdesc=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-name-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-name-novalid.html
new file mode 100644
index 0000000000..0308647413
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-name-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-name</title>
+<picture><source srcset=x crossorigin><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-no-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-no-srcset-novalid.html
new file mode 100644
index 0000000000..5b2a3837b6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-no-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-no-srcset</title>
+<picture><source><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-no-srcset-with-media-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-no-srcset-with-media-novalid.html
new file mode 100644
index 0000000000..a3e6874331
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-no-srcset-with-media-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-no-srcset-with-media</title>
+<picture><source media=screen><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-no-srcset-with-sizes-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-no-srcset-with-sizes-novalid.html
new file mode 100644
index 0000000000..503f7d5585
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-no-srcset-with-sizes-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-no-srcset-with-sizes</title>
+<picture><source sizes=50vw><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-no-srcset-with-type-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-no-srcset-with-type-novalid.html
new file mode 100644
index 0000000000..4d21d5b860
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-no-srcset-with-type-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-no-srcset-with-type</title>
+<picture><source type='image/webp'><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-src-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-src-novalid.html
new file mode 100644
index 0000000000..758a29a9fa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-src-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-src</title>
+<picture><source src=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-src-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-src-srcset-novalid.html
new file mode 100644
index 0000000000..3dbab2194d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-src-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-src-srcset</title>
+<picture><source src=x srcset=x><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-srcset-h-with-sizes-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-srcset-h-with-sizes-novalid.html
new file mode 100644
index 0000000000..91bbf65cfd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-srcset-h-with-sizes-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-srcset-h-with-sizes</title>
+<picture><source srcset='x 100h, y 200h' sizes=50vw><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-srcset-w-and-x-with-sizes-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-srcset-w-and-x-with-sizes-novalid.html
new file mode 100644
index 0000000000..babdcb6b9b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-srcset-w-and-x-with-sizes-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-srcset-w-and-x-with-sizes</title>
+<picture><source srcset='x 100w, y 2x' sizes=50vw><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-srcset-w-no-sizes-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-srcset-w-no-sizes-novalid.html
new file mode 100644
index 0000000000..94fd3aef22
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-srcset-w-no-sizes-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-srcset-w-no-sizes</title>
+<picture><source srcset='x 100w, y 200w'><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-srcset-x-with-sizes-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-srcset-x-with-sizes-novalid.html
new file mode 100644
index 0000000000..4e3d679554
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-srcset-x-with-sizes-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-srcset-x-with-sizes</title>
+<picture><source srcset='x 1x, y 2x' sizes=50vw><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-type-srcset-w-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-type-srcset-w-novalid.html
new file mode 100644
index 0000000000..7a8fe9af0e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-type-srcset-w-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-type-srcset-w</title>
+<picture><source srcset='x 100w, y 200w' type=image/gif><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-usemap-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-usemap-novalid.html
new file mode 100644
index 0000000000..5eb2fdc66b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-usemap-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-usemap</title>
+<picture><source srcset=x usemap><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-vspace-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-vspace-novalid.html
new file mode 100644
index 0000000000..6bd83d1be9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/source-vspace-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid source-vspace</title>
+<picture><source srcset=x vspace=1><img src=x alt></picture> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-broken-url-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-broken-url-novalid.html
new file mode 100644
index 0000000000..43aa15f762
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-broken-url-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-broken-url</title>
+<img srcset='http: 1x' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-comma-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-comma-novalid.html
new file mode 100644
index 0000000000..94d6e199c6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-comma-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-comma</title>
+<img srcset=',' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-css-comment-after-descriptor-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-css-comment-after-descriptor-novalid.html
new file mode 100644
index 0000000000..8a7360a2e6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-css-comment-after-descriptor-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-css-comment-after-descriptor</title>
+<img srcset='x 2x/**/' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-curly-bracket-junk-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-curly-bracket-junk-novalid.html
new file mode 100644
index 0000000000..98230eac7b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-curly-bracket-junk-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-curly-bracket-junk</title>
+<img srcset='x {, y 1x' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-empty-novalid.html
new file mode 100644
index 0000000000..f511e88e73
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-empty-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-empty</title>
+<img srcset='' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-function-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-function-novalid.html
new file mode 100644
index 0000000000..aadcc4c648
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-function-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-function</title>
+<img srcset='x foobar(baz quux, lol), y 1x' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-h-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-h-novalid.html
new file mode 100644
index 0000000000..66b739688f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-h-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-h</title>
+<img srcset='x 1h' sizes=100vw src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-infinity-x-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-infinity-x-novalid.html
new file mode 100644
index 0000000000..19d679d8e3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-infinity-x-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-infinity-x</title>
+<img srcset='x Infinityx' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-leading-comma-multiple-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-leading-comma-multiple-novalid.html
new file mode 100644
index 0000000000..c9407d1d7a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-leading-comma-multiple-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-leading-comma-multiple</title>
+<img srcset=',,,x' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-leading-comma-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-leading-comma-novalid.html
new file mode 100644
index 0000000000..c09dc18353
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-leading-comma-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-leading-comma</title>
+<img srcset=',x' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-leading-dot-x-valid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-leading-dot-x-valid.html
new file mode 100644
index 0000000000..3a9da140b6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-leading-dot-x-valid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-leading-dot-x</title>
+<img srcset='x .5x' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-nan-x-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-nan-x-novalid.html
new file mode 100644
index 0000000000..3cd64a69cf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-nan-x-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-nan-x</title>
+<img srcset='x NaNx' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-negative-w-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-negative-w-novalid.html
new file mode 100644
index 0000000000..093552e9a1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-negative-w-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-negative-w</title>
+<img srcset='x -1w' sizes=100vw src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-negative-x-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-negative-x-novalid.html
new file mode 100644
index 0000000000..9b69e0c1f8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-negative-x-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-negative-x</title>
+<img srcset='x -1x' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-negative-zero-w-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-negative-zero-w-novalid.html
new file mode 100644
index 0000000000..b4edfbe974
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-negative-zero-w-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-negative-zero-w</title>
+<img srcset='x -0w' sizes=100vw src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-negative-zero-x-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-negative-zero-x-novalid.html
new file mode 100644
index 0000000000..a68489093a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-negative-zero-x-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-negative-zero-x</title>
+<img srcset='x -0x' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-non-integer-w-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-non-integer-w-novalid.html
new file mode 100644
index 0000000000..e09f9f003b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-non-integer-w-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-non-integer-w</title>
+<img srcset='x 1.5w' sizes=100vw src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-parenthesis-junk-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-parenthesis-junk-novalid.html
new file mode 100644
index 0000000000..b58caaa075
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-parenthesis-junk-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-parenthesis-junk</title>
+<img srcset='x ><(((((o)>, y 1x' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-pipe-junk-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-pipe-junk-novalid.html
new file mode 100644
index 0000000000..9becc4fbab
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-pipe-junk-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-pipe-junk</title>
+<img srcset='x ||, y 1x' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-plus-w-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-plus-w-novalid.html
new file mode 100644
index 0000000000..5bc9d91495
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-plus-w-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-plus-w</title>
+<img srcset='x +1w' sizes=100vw src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-plus-x-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-plus-x-novalid.html
new file mode 100644
index 0000000000..242a0a5eab
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-plus-x-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-plus-x</title>
+<img srcset='x +1x' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-scientific-notation-w-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-scientific-notation-w-novalid.html
new file mode 100644
index 0000000000..e17e4bc651
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-scientific-notation-w-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-scientific-notation-w</title>
+<img srcset='x 1e0w' sizes=100vw src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-square-bracket-junk-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-square-bracket-junk-novalid.html
new file mode 100644
index 0000000000..69e7febbd9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-square-bracket-junk-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-square-bracket-junk</title>
+<img srcset='x [, y 1x' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-trailing-comma-multiple-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-trailing-comma-multiple-novalid.html
new file mode 100644
index 0000000000..978b7d44b1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-trailing-comma-multiple-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-trailing-comma-multiple</title>
+<img srcset='x,,,' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-trailing-comma-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-trailing-comma-novalid.html
new file mode 100644
index 0000000000..0a0ad83f06
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-trailing-comma-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-trailing-comma</title>
+<img srcset='x,' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-1x-and-omitted-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-1x-and-omitted-novalid.html
new file mode 100644
index 0000000000..0a381c378c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-1x-and-omitted-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-unique-descriptors-1x-and-omitted</title>
+<img srcset='x 1x, y' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-2x-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-2x-novalid.html
new file mode 100644
index 0000000000..d2559446e8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-2x-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-unique-descriptors-2x</title>
+<img srcset='x 2x, y 2x' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-integer-and-decimals-x-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-integer-and-decimals-x-novalid.html
new file mode 100644
index 0000000000..2213073806
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-integer-and-decimals-x-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-unique-descriptors-integer-and-decimals-x</title>
+<img srcset='x 1x, y 1.0x' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-w-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-w-novalid.html
new file mode 100644
index 0000000000..c561e10414
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-unique-descriptors-w-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-unique-descriptors-w</title>
+<img srcset='x 1w, y 1w' sizes=100vw src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-uppercase-w-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-uppercase-w-novalid.html
new file mode 100644
index 0000000000..d587be5f5e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-uppercase-w-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-uppercase-w</title>
+<img srcset='x 1W' sizes=100vw src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-w-and-h-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-w-and-h-novalid.html
new file mode 100644
index 0000000000..036f5a46e4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-w-and-h-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-w-and-h</title>
+<img srcset='x 1w 1h' sizes=100vw src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-w-and-no-descriptor-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-w-and-no-descriptor-novalid.html
new file mode 100644
index 0000000000..b4084fbd82
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-w-and-no-descriptor-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-w-and-no-descriptor</title>
+<img srcset='x 1w, y' sizes=100vw src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-x-and-h-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-x-and-h-novalid.html
new file mode 100644
index 0000000000..54d4d1f03e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-x-and-h-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-x-and-h</title>
+<img srcset='x 1x 1h' sizes=100vw src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-x-and-w-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-x-and-w-novalid.html
new file mode 100644
index 0000000000..2dedd9c2c8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-x-and-w-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-x-and-w</title>
+<img srcset='x 1x 1w' sizes=100vw src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-zero-w-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-zero-w-novalid.html
new file mode 100644
index 0000000000..2f1a5abe9d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-zero-w-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-zero-w</title>
+<img srcset='x 0w' sizes=100vw src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-zero-x-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-zero-x-novalid.html
new file mode 100644
index 0000000000..39b6107727
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-zero-x-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid srcset-microsyntax-zero-x</title>
+<img srcset='x 0x' src=x alt> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/svg-image-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/svg-image-srcset-novalid.html
new file mode 100644
index 0000000000..fd6289fd7e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/svg-image-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid svg-image-srcset</title>
+<svg><image xlink:href=x srcset=x width=1 height=1 /></svg> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/track-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/track-srcset-novalid.html
new file mode 100644
index 0000000000..2668a8400e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/track-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid track-srcset</title>
+<video src=x><track src=x srcset=x></video> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/video-source-media-src-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/video-source-media-src-novalid.html
new file mode 100644
index 0000000000..a18d20389d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/video-source-media-src-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid video-source-media-src</title>
+<video><source media=screen src=x></video> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/video-source-sizes-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/video-source-sizes-srcset-novalid.html
new file mode 100644
index 0000000000..be370c75cf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/video-source-sizes-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid video-source-sizes-srcset</title>
+<video><source sizes=50vw srcset='x 100w'></video> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/video-source-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/video-source-srcset-novalid.html
new file mode 100644
index 0000000000..440a288590
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/video-source-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid video-source-srcset</title>
+<video><source srcset=x></video> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/video-source-srcset-src-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/video-source-srcset-src-novalid.html
new file mode 100644
index 0000000000..588581fce7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/video-source-srcset-src-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid video-source-srcset-src</title>
+<video><source srcset=x src=x></video> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/picture/video-srcset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/picture/video-srcset-novalid.html
new file mode 100644
index 0000000000..7ff3e3ecdd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/picture/video-srcset-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+<title>invalid video-srcset</title>
+<video src=x srcset=x></video> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/pre/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/pre/model-isvalid.html
new file mode 100644
index 0000000000..99d1a75be2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/pre/model-isvalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;pre&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <pre class="class" id="id" lang="en">text</pre>
+
+ <!-- can contain interactive -->
+ <pre><a>text</a></pre>
+
+ <!-- can contain strictly inline -->
+ <pre>text <em>elem</em></pre>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/pre/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/pre/model-novalid.html
new file mode 100644
index 0000000000..384386c2b0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/pre/model-novalid.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;pre&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <pre class="class" id="id" lang="en">text</pre>
+
+ <!-- is structured inline -->
+ <p>paragraph
+ <pre>text</pre>
+ </p>
+
+ <!-- can contain interactive -->
+ <pre><a>text</a></pre>
+ <!-- but not struct-inline -->
+ <p>paragraph
+ <pre><a>text</a></pre>
+ </p>
+
+ <!-- can contain strictly inline -->
+ <pre>text <em>elem</em></pre>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite-empty-isvalid.html
new file mode 100644
index 0000000000..1621184c72
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty cite is valid</title>
+<q cite=""></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite-isvalid.html
new file mode 100644
index 0000000000..109f7bb954
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid cite</title>
+<q cite="a:foo.com"></q><!-- scheme-private -->
+<q cite="foo:/"></q><!-- scheme-private-slash -->
+<q cite="foo://"></q><!-- scheme-private-slash-slash -->
+<q cite="foo:/bar.com/"></q><!-- scheme-private-path -->
+<q cite="foo://///////"></q><!-- scheme-private-path-leading-slashes-only -->
+<q cite="foo://///////bar.com/"></q><!-- scheme-private-path-leading-slashes-chars -->
+<q cite="foo:////://///"></q><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<q cite="c:/foo"></q><!-- scheme-private-single-letter -->
+<q cite="madeupscheme:/example.com/"></q><!-- scheme-private-single-slash -->
+<q cite="file:/example.com/"></q><!-- scheme-file-single-slash -->
+<q cite="ftps:/example.com/"></q><!-- scheme-ftps-single-slash -->
+<q cite="gopher:/example.com/"></q><!-- scheme-gopher-single-slash -->
+<q cite="ws:/example.com/"></q><!-- scheme-ws-single-slash -->
+<q cite="wss:/example.com/"></q><!-- scheme-wss-single-slash -->
+<q cite="javascript:/example.com/"></q><!-- scheme-javascript-single-slash -->
+<q cite="mailto:/example.com/"></q><!-- scheme-mailto-single-slash -->
+<q cite="madeupscheme:example.com/"></q><!-- scheme-private-no-slash -->
+<q cite="ftps:example.com/"></q><!-- scheme-ftps-no-slash -->
+<q cite="gopher:example.com/"></q><!-- scheme-gopher-no-slash -->
+<q cite="wss:example.com/"></q><!-- scheme-wss-no-slash -->
+<q cite="mailto:example.com/"></q><!-- scheme-mailto-no-slash -->
+<q cite="data:text/plain,foo"></q><!-- scheme-data-no-slash -->
+<q cite="http://user:pass@foo:21/bar;par?b#c"></q><!-- userinfo -->
+<q cite="http://[2001::1]"></q><!-- host-ipv6 -->
+<q cite="http://[2001::1]:80"></q><!-- host-ipv6-port -->
+<q cite="http://f:/c"></q><!-- port-none-but-colon -->
+<q cite="http://f:0/c"></q><!-- port-0 -->
+<q cite="http://f:00000000000000/c"></q><!-- port-00000000000000 -->
+<q cite="http://f:00000000000000000000080/c"></q><!-- port-00000000000000000000080 -->
+<q cite="http://a:b@c:29/d"></q><!-- userinfo-host-port-path -->
+<q cite="http://foo.com:b@d/"></q><!-- userinfo-username-non-alpha -->
+<q cite="http://foo/abcd?efgh?ijkl"></q><!-- query-contains-question-mark -->
+<q cite="http://foo/abcd#foo?bar"></q><!-- fragment-contains-question-mark -->
+<q cite="http://example.com/foo/%2e"></q><!-- path-percent-encoded-dot -->
+<q cite="http://example.com/%20foo"></q><!-- path-percent-encoded-space -->
+<q cite="http://example.com/©zbar"></q><!-- path-non-ascii -->
+<q cite="http://example.com/foo%41%7a"></q><!-- path-percent-encoded-multiple -->
+<q cite="http://example.com/foo%91"></q><!-- path-percent-encoded-u0091 -->
+<q cite="http://example.com/foo%00"></q><!-- path-percent-encoded-u0000 -->
+<q cite="http://example.com/%3A%3a%3C%3c"></q><!-- path-percent-encoded-mixed-case -->
+<q cite="http://example.com/你好你好"></q><!-- path-unicode-han -->
+<q cite="http://example.com//foo"></q><!-- path-uFEFF -->
+<q cite="http://example.com/‮/foo/‭/bar"></q><!-- path-u202E-u202D -->
+<q cite="http://💩"></q><!-- host-is-pile-of-poo -->
+<q cite="http💩//:foo"></q><!-- path-contains-pile-of-poo -->
+<q cite="http://example.com/foo?💩"></q><!-- query-contains-pile-of-poo -->
+<q cite="http://example.com/foo#💩"></q><!-- fragment-contains-pile-of-poo -->
+<q cite="http://192.0x00A80001"></q><!-- host-192.0x00A80001 -->
+<q cite="http://%25DOMAIN:foobar@foodomain.com"></q><!-- userinfo-username-contains-percent-encoded -->
+<q cite="http://@www.example.com"></q><!-- userinfo-empty -->
+<q cite="http://:b@www.example.com"></q><!-- userinfo-user-empty -->
+<q cite="http://a:@www.example.com"></q><!-- userinfo-password-empty -->
+<q cite="http://GOO​⁠goo.com"></q><!-- host-exotic-whitespace -->
+<q cite="http://www.foo。bar.com"></q><!-- host-exotic-dot -->
+<q cite="http://Go.com"></q><!-- host-fullwidth -->
+<q cite="http://你好你好"></q><!-- host-idn-unicode-han -->
+<q cite="http://192.168.0.257/"></q><!-- host-IP-address-broken -->
+<q cite="//foo/bar"></q><!-- scheme-schemeless-relative -->
+<q cite="/"></q><!-- path-slash-only-relative -->
+<q cite="/a/b/c"></q><!-- path-simple-relative -->
+<q cite="/a%2fc"></q><!-- path-percent-encoded-slash-relative -->
+<q cite="/a/%2f/c"></q><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<q cite="?"></q><!-- query-empty-no-path-relative -->
+<q cite="#"></q><!-- fragment-empty-hash-only-no-path-relative -->
+<q cite="#/"></q><!-- fragment-slash-relative -->
+<q cite="#;?"></q><!-- fragment-semicolon-question-mark-relative -->
+<q cite="#β"></q><!-- fragment-non-ascii-relative -->
+<q cite="foo.com"></q><!-- scheme-none-relative -->
+<q cite=":"></q><!-- path-colon-relative -->
+<q cite=":a"></q><!-- path-leading-colon-letter-relative -->
+<q cite=":foo.com"></q><!-- path-leading-colon-chars-relative -->
+<q cite=":/"></q><!-- path-leading-colon-slash-relative -->
+<q cite=":#"></q><!-- path-leading-colon-hash-relative -->
+<q cite=":23"></q><!-- path-leading-colon-number-relative -->
+<q cite="/:23"></q><!-- path-slash-colon-number-relative -->
+<q cite="::"></q><!-- path-leading-colon-colon-relative -->
+<q cite="::23"></q><!-- path-colon-colon-number-relative -->
+<q cite="💩http://foo"></q><!-- path-starts-with-pile-of-poo -->
+<q cite="/💩"></q><!-- path-slash-pile-of-poo -->
+<q cite="File://foo/bar.html"></q><!-- scheme-file-uppercase -->
+<q cite="file://C|/foo/bar"></q><!-- scheme-file-slash-slash-c-bar -->
+<q cite="file://server/foo/bar"></q><!-- scheme-file-host-included -->
+<q cite="file:///foo/bar.txt"></q><!-- scheme-file-host-empty -->
+<q cite="file:"></q><!-- scheme-file-scheme-only -->
+<q cite="file:/"></q><!-- scheme-file-slash-only -->
+<q cite="file://"></q><!-- scheme-file-slash-slash-only -->
+<q cite="file:///"></q><!-- scheme-file-slash-slash-slash-only -->
+<q cite="file:test"></q><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..6c7cc13940
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: fragment-backslash</title>
+<q cite="#\"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..7a7af4f659
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: fragment-contains-hash</title>
+<q cite="http://foo/path#f#g"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..25b1122c3a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: fragment-leading-space</title>
+<q cite="http://f:21/b# e"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-cr-novalid.html
new file mode 100644
index 0000000000..cf065e28c7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-cr</title>
+<q cite="http://example. org"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..1c89424f3c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-double-percent-encoded</title>
+<q cite="http://%41.com"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..30cdf591dc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-double-percent-encoded-percent-encoded</title>
+<q cite="http://%ef%bc%85%ef%bc%94%ef%bc%91.com"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-empty-novalid.html
new file mode 100644
index 0000000000..59318111b3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-empty</title>
+<q cite="http://"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..2bc854d87b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-empty-userinfo-empty</title>
+<q cite="http://@/www.example.com"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..e495b8067c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-empty-with-userinfo</title>
+<q cite="http://user:pass@/"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..49dfc87da9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-hostname-in-brackets</title>
+<q cite="http://[www.google.com]/"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..02e4b63d04
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-invalid-unicode</title>
+<q cite="http://﷐zyx.com"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..d9ac64ee49
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-invalid-unicode-percent-encoded</title>
+<q cite="http://%ef%b7%90zyx.com"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-newline-novalid.html
new file mode 100644
index 0000000000..081c966eb8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-newline</title>
+<q cite="http://example.
+org"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-space-novalid.html
new file mode 100644
index 0000000000..f12f661672
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-space</title>
+<q cite="http://example .org"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..cdf2f79cbc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-square-brackets-port-contains-colon</title>
+<q cite="http://[1::2]:3:4"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-tab-novalid.html
new file mode 100644
index 0000000000..479577b08d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-tab</title>
+<q cite="http://example .org"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..1ef717a06b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-u0000-percent-encoded</title>
+<q cite="http://%00.com"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..ab08fdf8de
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: host-u0000-percent-encoded-percent-encoded</title>
+<q cite="http://%ef%bc%85%ef%bc%90%ef%bc%90.com"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..0751ebd03d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-bare-percent-sign</title>
+<q cite="http://example.com/foo%"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-contains-space-novalid.html
new file mode 100644
index 0000000000..c262da55dd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-contains-space</title>
+<q cite="/a/ /c"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..67bb53f459
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-leading-backslash-at-sign</title>
+<q cite="http://foo.com/\@"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..2210cde73d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-leading-colon-backslash</title>
+<q cite=":\"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..96cedcfc06
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-leading-colon-chars-backslash</title>
+<q cite=":foo.com\"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-leading-space-novalid.html
new file mode 100644
index 0000000000..3339c6f749
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-leading-space</title>
+<q cite="http://f:21/ b"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..d186e987c5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-percent-encoded-malformed</title>
+<q cite="http://example.com/foo/%2e%2"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..1e7b9025fa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-relative-square-brackets</title>
+<q cite="[61:24:74]:98"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-tab-novalid.html
new file mode 100644
index 0000000000..636733d65e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-tab</title>
+<q cite="http://example.com/foo bar"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..9526b3d3db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-trailing-space</title>
+<q cite="http://f:21/b ?"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-u0091-novalid.html
new file mode 100644
index 0000000000..93340436ab
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: path-u0091</title>
+<q cite="http://example.com/foo‘"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-999999-novalid.html
new file mode 100644
index 0000000000..2f0ddf3156
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-999999</title>
+<q cite="http://f:999999/c"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-cr-novalid.html
new file mode 100644
index 0000000000..976e030aaa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-cr</title>
+<q cite="http://f: /c"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..0d2cdef269
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-leading-colon-bracket-colon</title>
+<q cite="http://2001::1]:80"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..0edae205d1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-leading-colon</title>
+<q cite="http://2001::1"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..7e0ae9e730
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-leading-dash</title>
+<q cite="http://foo:-80/"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..32c1e93b12
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-multiple-letters</title>
+<q cite="http://f:fifty-two/c"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-newline-novalid.html
new file mode 100644
index 0000000000..3b79fcda40
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-newline</title>
+<q cite="http://f:
+/c"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-single-letter-novalid.html
new file mode 100644
index 0000000000..47a7fb952b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-single-letter</title>
+<q cite="http://f:b/c"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-space-novalid.html
new file mode 100644
index 0000000000..4e88d64833
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-space</title>
+<q cite="http://f: /c"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-tab-novalid.html
new file mode 100644
index 0000000000..f2cf428fcc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: port-tab</title>
+<q cite="http://f: /c"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/query-leading-space-novalid.html
new file mode 100644
index 0000000000..2b1713d255
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: query-leading-space</title>
+<q cite="http://f:21/b? d"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..7dd56090b8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: query-trailing-space</title>
+<q cite="http://f:21/b?d #"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..6c0e8e9d4a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/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>
+<q cite="data:text/html,test#test"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..35713a0cd8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-data-single-slash</title>
+<q cite="data:/example.com/"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..9fd2264d37
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-file-backslash</title>
+<q cite="file:c:\foo\bar.html"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..fa4d6b9af7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-file-single-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-file-single-slash-c-bar</title>
+<q cite="file:/C|/foo/bar"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..dedff79939
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-file-slash-slash-abc-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-file-slash-slash-abc-bar</title>
+<q cite="file://abc|/foo/bar"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..17355d9695
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-file-triple-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-file-triple-slash-c-bar</title>
+<q cite="file:///C|/foo/bar"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..b842e1a181
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-ftp-no-slash</title>
+<q cite="ftp:example.com/"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..8bdafa6b82
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-ftp-single-slash</title>
+<q cite="ftp:/example.com/"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..78bc526458
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-backslash</title>
+<q cite="http:\\foo.com\"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..60a6b9b975
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-no-slash-colon</title>
+<q cite="http::@c:29"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..edf9a5d7f1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-no-slash</title>
+<q cite="http:foo.com"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..6858419ba0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-no-slash-square-bracket</title>
+<q cite="http:[61:27]/:foo"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..fb470d393c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-http-single-slash</title>
+<q cite="http:/example.com/"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..78ebcaf575
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-https-no-slash</title>
+<q cite="https:example.com/"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..77e41fdaf5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-https-single-slash</title>
+<q cite="https:/example.com/"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..885454d649
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-trailing-cr</title>
+<q cite="a: foo.com"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..7d637e10ee
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-trailing-newline</title>
+<q cite="a:
+foo.com"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..37ca55f73e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-trailing-space</title>
+<q cite="a: foo.com"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..a38c794de8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: scheme-trailing-tab</title>
+<q cite="a: foo.com"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..f83002c231
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-backslash</title>
+<q cite="http://a\b:c\d@foo.com"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..8992b51154
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-password-bad-chars</title>
+<q cite="http://&a:foo(b]c@d:2/"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..aed0a86045
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-password-contains-pile-of-poo</title>
+<q cite="http://foo:💩@example.com"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..d78aaab346
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-username-contains-at-sign</title>
+<q cite="http://::@c@d:2"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..2aa14ab993
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/cite/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid cite: userinfo-username-contains-pile-of-poo</title>
+<q cite="http://💩:foo@example.com"></q>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/model-isvalid.html
new file mode 100644
index 0000000000..c8d8073749
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/model-isvalid.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;q&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><q cite="url" class="class" lang="en">text</q></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><q cite="url" class="class" lang="en">text</q></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <q></q></p>
+ <p>text <dfn><q></q></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><q><a>text</a></q></p>
+ <p><dfn><q><a>text</a></q></dfn></p>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/q/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/q/model-novalid.html
new file mode 100644
index 0000000000..c742f757fb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/q/model-novalid.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;q&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><q cite="url" class="class" lang="en">text</q></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><q cite="url" class="class" lang="en">text</q></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <q></q></p>
+ <p>text <dfn><q></q></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><q><a>text</a></q></p>
+ <p><dfn><q><a>text</a></q></dfn></p>
+
+ <!-- cannot contain structured inline -->
+ <p><q>text <ul><li>list</li></ul> <em>elem</em></q></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ruby/empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ruby/empty-novalid.html
new file mode 100644
index 0000000000..8ce4ec4214
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ruby/empty-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta charset=utf-8>
+<title>ruby element missing rt child</title>
+</head>
+<body>
+<ruby></ruby>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ruby/missing-rt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ruby/missing-rt-novalid.html
new file mode 100644
index 0000000000..0f8d363df9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ruby/missing-rt-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta charset=utf-8>
+<title>ruby element missing rt child</title>
+</head>
+<body>
+<ruby><rt></rt><rp></rp><rp></rp></ruby>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/s/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/s/model-isvalid.html
new file mode 100644
index 0000000000..16474321a6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/s/model-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>the "s" element is not obsolete</title>
+<meta charset=utf-8>
+</head>
+<body>
+<s>baz</s>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/samp/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/samp/model-isvalid.html
new file mode 100644
index 0000000000..4049a95693
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/samp/model-isvalid.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;samp&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><samp class="class" lang="en">text</samp></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><samp class="class" lang="en">text</samp></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <samp></samp></p>
+ <p>text <dfn><samp></samp></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><samp><a>text</a></samp></p>
+ <p><dfn><samp><a>text</a></samp></dfn></p>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/samp/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/samp/model-novalid.html
new file mode 100644
index 0000000000..27d469d7a5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/samp/model-novalid.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;samp&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><samp class="class" lang="en">text</samp></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><samp class="class" lang="en">text</samp></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <samp></samp></p>
+ <p>text <dfn><samp></samp></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><samp><a>text</a></samp></p>
+ <p><dfn><samp><a>text</a></samp></dfn></p>
+
+ <!-- cannot contain structured inline -->
+ <p><samp>text <ul><li>list</li></ul> <em>elem</em></samp></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/language-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/language-novalid.html
new file mode 100644
index 0000000000..3ac19056a0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/language-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>the "language" attribute is obsolete</title>
+<meta charset=utf-8>
+</head>
+<body>
+<script language=vbscript src=url></script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src-empty-novalid.html
new file mode 100644
index 0000000000..ebf2dca0a2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty src is not valid</title>
+<script src=""></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src-isvalid.html
new file mode 100644
index 0000000000..5585b74431
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid src</title>
+<script src="a:foo.com"></script><!-- scheme-private -->
+<script src="foo:/"></script><!-- scheme-private-slash -->
+<script src="foo://"></script><!-- scheme-private-slash-slash -->
+<script src="foo:/bar.com/"></script><!-- scheme-private-path -->
+<script src="foo://///////"></script><!-- scheme-private-path-leading-slashes-only -->
+<script src="foo://///////bar.com/"></script><!-- scheme-private-path-leading-slashes-chars -->
+<script src="foo:////://///"></script><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<script src="c:/foo"></script><!-- scheme-private-single-letter -->
+<script src="madeupscheme:/example.com/"></script><!-- scheme-private-single-slash -->
+<script src="file:/example.com/"></script><!-- scheme-file-single-slash -->
+<script src="ftps:/example.com/"></script><!-- scheme-ftps-single-slash -->
+<script src="gopher:/example.com/"></script><!-- scheme-gopher-single-slash -->
+<script src="ws:/example.com/"></script><!-- scheme-ws-single-slash -->
+<script src="wss:/example.com/"></script><!-- scheme-wss-single-slash -->
+<script src="javascript:/example.com/"></script><!-- scheme-javascript-single-slash -->
+<script src="mailto:/example.com/"></script><!-- scheme-mailto-single-slash -->
+<script src="madeupscheme:example.com/"></script><!-- scheme-private-no-slash -->
+<script src="ftps:example.com/"></script><!-- scheme-ftps-no-slash -->
+<script src="gopher:example.com/"></script><!-- scheme-gopher-no-slash -->
+<script src="wss:example.com/"></script><!-- scheme-wss-no-slash -->
+<script src="mailto:example.com/"></script><!-- scheme-mailto-no-slash -->
+<script src="data:text/plain,foo"></script><!-- scheme-data-no-slash -->
+<script src="http://user:pass@foo:21/bar;par?b#c"></script><!-- userinfo -->
+<script src="http://[2001::1]"></script><!-- host-ipv6 -->
+<script src="http://[2001::1]:80"></script><!-- host-ipv6-port -->
+<script src="http://f:/c"></script><!-- port-none-but-colon -->
+<script src="http://f:0/c"></script><!-- port-0 -->
+<script src="http://f:00000000000000/c"></script><!-- port-00000000000000 -->
+<script src="http://f:00000000000000000000080/c"></script><!-- port-00000000000000000000080 -->
+<script src="http://a:b@c:29/d"></script><!-- userinfo-host-port-path -->
+<script src="http://foo.com:b@d/"></script><!-- userinfo-username-non-alpha -->
+<script src="http://foo/abcd?efgh?ijkl"></script><!-- query-contains-question-mark -->
+<script src="http://foo/abcd#foo?bar"></script><!-- fragment-contains-question-mark -->
+<script src="http://example.com/foo/%2e"></script><!-- path-percent-encoded-dot -->
+<script src="http://example.com/%20foo"></script><!-- path-percent-encoded-space -->
+<script src="http://example.com/©zbar"></script><!-- path-non-ascii -->
+<script src="http://example.com/foo%41%7a"></script><!-- path-percent-encoded-multiple -->
+<script src="http://example.com/foo%91"></script><!-- path-percent-encoded-u0091 -->
+<script src="http://example.com/foo%00"></script><!-- path-percent-encoded-u0000 -->
+<script src="http://example.com/%3A%3a%3C%3c"></script><!-- path-percent-encoded-mixed-case -->
+<script src="http://example.com/你好你好"></script><!-- path-unicode-han -->
+<script src="http://example.com//foo"></script><!-- path-uFEFF -->
+<script src="http://example.com/‮/foo/‭/bar"></script><!-- path-u202E-u202D -->
+<script src="http://💩"></script><!-- host-is-pile-of-poo -->
+<script src="http💩//:foo"></script><!-- path-contains-pile-of-poo -->
+<script src="http://example.com/foo?💩"></script><!-- query-contains-pile-of-poo -->
+<script src="http://example.com/foo#💩"></script><!-- fragment-contains-pile-of-poo -->
+<script src="http://192.0x00A80001"></script><!-- host-192.0x00A80001 -->
+<script src="http://%25DOMAIN:foobar@foodomain.com"></script><!-- userinfo-username-contains-percent-encoded -->
+<script src="http://@www.example.com"></script><!-- userinfo-empty -->
+<script src="http://:b@www.example.com"></script><!-- userinfo-user-empty -->
+<script src="http://a:@www.example.com"></script><!-- userinfo-password-empty -->
+<script src="http://GOO​⁠goo.com"></script><!-- host-exotic-whitespace -->
+<script src="http://www.foo。bar.com"></script><!-- host-exotic-dot -->
+<script src="http://Go.com"></script><!-- host-fullwidth -->
+<script src="http://你好你好"></script><!-- host-idn-unicode-han -->
+<script src="http://192.168.0.257/"></script><!-- host-IP-address-broken -->
+<script src="//foo/bar"></script><!-- scheme-schemeless-relative -->
+<script src="/"></script><!-- path-slash-only-relative -->
+<script src="/a/b/c"></script><!-- path-simple-relative -->
+<script src="/a%2fc"></script><!-- path-percent-encoded-slash-relative -->
+<script src="/a/%2f/c"></script><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<script src="?"></script><!-- query-empty-no-path-relative -->
+<script src="#"></script><!-- fragment-empty-hash-only-no-path-relative -->
+<script src="#/"></script><!-- fragment-slash-relative -->
+<script src="#;?"></script><!-- fragment-semicolon-question-mark-relative -->
+<script src="#β"></script><!-- fragment-non-ascii-relative -->
+<script src="foo.com"></script><!-- scheme-none-relative -->
+<script src=":"></script><!-- path-colon-relative -->
+<script src=":a"></script><!-- path-leading-colon-letter-relative -->
+<script src=":foo.com"></script><!-- path-leading-colon-chars-relative -->
+<script src=":/"></script><!-- path-leading-colon-slash-relative -->
+<script src=":#"></script><!-- path-leading-colon-hash-relative -->
+<script src=":23"></script><!-- path-leading-colon-number-relative -->
+<script src="/:23"></script><!-- path-slash-colon-number-relative -->
+<script src="::"></script><!-- path-leading-colon-colon-relative -->
+<script src="::23"></script><!-- path-colon-colon-number-relative -->
+<script src="💩http://foo"></script><!-- path-starts-with-pile-of-poo -->
+<script src="/💩"></script><!-- path-slash-pile-of-poo -->
+<script src="File://foo/bar.html"></script><!-- scheme-file-uppercase -->
+<script src="file://C|/foo/bar"></script><!-- scheme-file-slash-slash-c-bar -->
+<script src="file://server/foo/bar"></script><!-- scheme-file-host-included -->
+<script src="file:///foo/bar.txt"></script><!-- scheme-file-host-empty -->
+<script src="file:"></script><!-- scheme-file-scheme-only -->
+<script src="file:/"></script><!-- scheme-file-slash-only -->
+<script src="file://"></script><!-- scheme-file-slash-slash-only -->
+<script src="file:///"></script><!-- scheme-file-slash-slash-slash-only -->
+<script src="file:test"></script><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src-whitespace-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src-whitespace-only-novalid.html
new file mode 100644
index 0000000000..3d850fc735
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src-whitespace-only-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty src is not valid</title>
+<script src="
+"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..55bcbb9f9a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-backslash</title>
+<script src="#\"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..03cab75058
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-contains-hash</title>
+<script src="http://foo/path#f#g"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..0c97b6b1a6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-leading-space</title>
+<script src="http://f:21/b# e"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-cr-novalid.html
new file mode 100644
index 0000000000..4e90cab023
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-cr</title>
+<script src="http://example. org"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..229c0115f0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://%41.com"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..958c18e4b9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://%ef%bc%85%ef%bc%94%ef%bc%91.com"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-empty-novalid.html
new file mode 100644
index 0000000000..37338edcce
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-empty</title>
+<script src="http://"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..b8c12b06ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://@/www.example.com"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..82e95ba5ec
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://user:pass@/"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..63c908e807
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://[www.google.com]/"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..38936b3b86
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-invalid-unicode</title>
+<script src="http://﷐zyx.com"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..1e3cac534e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://%ef%b7%90zyx.com"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-newline-novalid.html
new file mode 100644
index 0000000000..4995fe428c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-newline</title>
+<script src="http://example.
+org"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-space-novalid.html
new file mode 100644
index 0000000000..676705ed88
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-space</title>
+<script src="http://example .org"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..4f8581e69a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://[1::2]:3:4"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-tab-novalid.html
new file mode 100644
index 0000000000..58a8aecd69
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-tab</title>
+<script src="http://example .org"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..c58b09b9df
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://%00.com"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..f659cf0d5b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://%ef%bc%85%ef%bc%90%ef%bc%90.com"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..c23ef7bc93
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://example.com/foo%"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-contains-space-novalid.html
new file mode 100644
index 0000000000..f54c9aeaa8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-contains-space</title>
+<script src="/a/ /c"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..f8a8317d05
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://foo.com/\@"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..df39dc2fdf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src=":\"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..af8803b602
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src=":foo.com\"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-leading-space-novalid.html
new file mode 100644
index 0000000000..49d0a41cbf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-leading-space</title>
+<script src="http://f:21/ b"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..99d207f402
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://example.com/foo/%2e%2"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..3f2447018c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="[61:24:74]:98"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-tab-novalid.html
new file mode 100644
index 0000000000..28f15327a0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-tab</title>
+<script src="http://example.com/foo bar"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..157fd07dc4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-trailing-space</title>
+<script src="http://f:21/b ?"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-u0091-novalid.html
new file mode 100644
index 0000000000..5ff1dfb7a4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-u0091</title>
+<script src="http://example.com/foo‘"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-999999-novalid.html
new file mode 100644
index 0000000000..e9fc4b917b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-999999</title>
+<script src="http://f:999999/c"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-cr-novalid.html
new file mode 100644
index 0000000000..14cc85f13f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-cr</title>
+<script src="http://f: /c"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..b20a459624
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://2001::1]:80"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..5e2e7db787
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-colon</title>
+<script src="http://2001::1"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..ce486bcca1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-dash</title>
+<script src="http://foo:-80/"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..2f7174ec1a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-multiple-letters</title>
+<script src="http://f:fifty-two/c"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-newline-novalid.html
new file mode 100644
index 0000000000..003f9d489c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-newline</title>
+<script src="http://f:
+/c"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-single-letter-novalid.html
new file mode 100644
index 0000000000..c57c169484
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-single-letter</title>
+<script src="http://f:b/c"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-space-novalid.html
new file mode 100644
index 0000000000..ed84a101e6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-space</title>
+<script src="http://f: /c"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-tab-novalid.html
new file mode 100644
index 0000000000..fca9c6b9ce
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-tab</title>
+<script src="http://f: /c"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/query-leading-space-novalid.html
new file mode 100644
index 0000000000..f864a2a065
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-leading-space</title>
+<script src="http://f:21/b? d"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..92a5453cb9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-trailing-space</title>
+<script src="http://f:21/b?d #"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..f26fb056d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="data:text/html,test#test"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..1bae7962e2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="data:/example.com/"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..d23ad76fda
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-file-backslash</title>
+<script src="file:c:\foo\bar.html"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..5efd30aaae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="file:/C|/foo/bar"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..42b33d4413
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="file://abc|/foo/bar"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..b9b9db1ee9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="file:///C|/foo/bar"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..9dfcff8470
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="ftp:example.com/"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..7d641fa5b3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="ftp:/example.com/"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..5b1877e885
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-backslash</title>
+<script src="http:\\foo.com\"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..fa9437aba5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http::@c:29"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..5e0848eaac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http:foo.com"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..bb4642fc70
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http:[61:27]/:foo"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..90a94ef29b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http:/example.com/"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..63c8ba3cda
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="https:example.com/"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..656fdc01b8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="https:/example.com/"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..3c97e99758
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-cr</title>
+<script src="a: foo.com"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..a0415fb9cd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-newline</title>
+<script src="a:
+foo.com"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..e500ae56e0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-space</title>
+<script src="a: foo.com"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..37449448eb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-tab</title>
+<script src="a: foo.com"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..44419f43a7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-backslash</title>
+<script src="http://a\b:c\d@foo.com"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..b9a2992360
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://&a:foo(b]c@d:2/"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..26baccf602
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://foo:💩@example.com"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..38e21c6ea6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://::@c@d:2"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/src/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/src/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..dd331c5ff9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/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>
+<script src="http://💩:foo@example.com"></script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/streams-demo-append-child-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/streams-demo-append-child-isvalid.html
new file mode 100644
index 0000000000..d2fdf78b56
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/streams-demo-append-child-isvalid.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Append child writable stream demo</title>
+
+<script src="transforms/transform-stream-polyfill.js"></script>
+<script src="transforms/text-encode-transform.js"></script>
+<script src="transforms/parse-json.js"></script>
+<script src="transforms/split-stream.js"></script>
+<script src="resources/highlight.pack.js"></script>
+<script src="resources/web-animations.min.js"></script>
+<script src="tags/view-source.js"></script>
+
+<link rel=stylesheet href="resources/common.css">
+<link rel=stylesheet href="resources/commits.css">
+
+<h1>Append child writable stream demo</h1>
+<a id=back-to-index href=index.html>Back to demo index</a>
+<view-source></view-source>
+
+<div id=buttons>
+ <button id="load">Load JSON stream</button>
+ <button id="reset">Reset</button>
+</div>
+
+<div id=target></div>
+
+<script>
+'use strict';
+const loadButton = document.querySelector('#load');
+const resetButton = document.querySelector('#reset');
+const targetDiv = document.querySelector('#target');
+const FIELDS = ['Hash', 'Date', 'Author', 'Subject'];
+const FIELDS_LOWERCASE = FIELDS.map(string => string.toLowerCase());
+
+function createTable(parentElement) {
+ const table = document.createElement('table');
+ table.id = 'commits';
+ const tr = document.createElement('tr');
+ for (const heading of FIELDS) {
+ const th = document.createElement('th');
+ th.textContent = heading;
+ tr.appendChild(th);
+ }
+ table.appendChild(tr);
+ parentElement.appendChild(table);
+ return table;
+}
+
+// BEGIN SOURCE TO VIEW
+function appendChildWritableStream(parentNode) {
+ return new WritableStream({
+ write(chunk) {
+ parentNode.appendChild(chunk);
+ }
+ });
+}
+
+async function fetchThenJSONToDOM() {
+ const jsonToElementTransform = new TransformStream({
+ transform(chunk, controller) {
+ const tr = document.createElement('tr');
+ for (const cell of FIELDS_LOWERCASE) {
+ const td = document.createElement('td');
+ td.textContent = chunk[cell];
+ tr.appendChild(td);
+ }
+ controller.enqueue(tr);
+ }
+ });
+
+ const response = await fetch('data/commits.json',
+ {
+ mode: 'same-origin',
+ headers: {
+ 'Cache-Control': 'no-cache, no-store'
+ }
+ });
+
+ const table = createTable(targetDiv);
+ return response.body
+ .pipeThrough(new TextDecoder())
+ .pipeThrough(splitStream('\n'))
+ .pipeThrough(parseJSON())
+ .pipeThrough(jsonToElementTransform)
+ .pipeTo(appendChildWritableStream(table));
+}
+// END SOURCE TO VIEW
+
+loadButton.onclick = () => {
+ loadButton.disabled = true;
+ setTimeout(fetchThenJSONToDOM, 0);
+};
+
+resetButton.onclick = () => {
+ targetDiv.innerHTML = '';
+ loadButton.disabled = false;
+};
+</script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/streams-demo-streaming-element-backpressure-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/streams-demo-streaming-element-backpressure-isvalid.html
new file mode 100644
index 0000000000..35bf133571
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/streams-demo-streaming-element-backpressure-isvalid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Streaming element with backpressure demo</title>
+
+<script src="transforms/transform-stream-polyfill.js"></script>
+<script src="transforms/text-encode-transform.js"></script>
+<script src="tags/streaming-element-backpressure.js"></script>
+<script src="resources/highlight.pack.js"></script>
+<script src="resources/web-animations.min.js"></script>
+<script src="tags/view-source.js"></script>
+
+<link rel=stylesheet href="resources/common.css">
+<link rel=stylesheet href="resources/jank-meter.css">
+<link rel=stylesheet href="resources/commits.css">
+
+<h1>Streaming element with backpressure demo</h1>
+<a id=back-to-index href=index.html>Back to demo index</a>
+<view-source></view-source>
+
+<div id=buttons>
+ <button id="load">Load HTML stream, applying backpressure</button>
+ <button id="reset">Reset</button>
+</div>
+
+<div id=jank-meter>JANK METER</div>
+
+<streaming-element-backpressure id=target></streaming-element-backpressure>
+
+<script>
+'use strict';
+const loadButton = document.querySelector('#load');
+const resetButton = document.querySelector('#reset');
+const targetDiv = document.querySelector('#target');
+
+loadButton.onclick = async () => {
+ loadButton.disabled = true;
+ fetchDirectlyIntoDOM();
+};
+
+// BEGIN SOURCE TO VIEW
+async function fetchDirectlyIntoDOM() {
+ const response = await fetch('data/commits.include',
+ {
+ mode: 'same-origin',
+ headers: {
+ 'Cache-Control': 'no-cache, no-store'
+ }
+ });
+
+ await response.body
+ .pipeThrough(new TextDecoder())
+ .pipeTo(targetDiv.writable);
+}
+// END SOURCE TO VIEW
+
+resetButton.onclick = () => {
+ targetDiv.reset();
+ loadButton.disabled = false;
+};
+</script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/script/streams-demo-streaming-element-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/script/streams-demo-streaming-element-isvalid.html
new file mode 100644
index 0000000000..c9c70d5487
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/script/streams-demo-streaming-element-isvalid.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>Streaming element demo</title>
+
+<script src="transforms/transform-stream-polyfill.js"></script>
+<script src="transforms/text-encode-transform.js"></script>
+<script src="tags/streaming-element.js"></script>
+<script src="resources/highlight.pack.js"></script>
+<script src="resources/web-animations.min.js"></script>
+<script src="tags/view-source.js"></script>
+
+<link rel=stylesheet href="resources/common.css">
+<link rel=stylesheet href="resources/jank-meter.css">
+<link rel=stylesheet href="resources/commits.css">
+
+<h1>Streaming element demo</h1>
+<a id=back-to-index href=index.html>Back to demo index</a>
+<view-source></view-source>
+
+<div id=buttons>
+ <button id="load">Load HTML stream</button>
+ <button id="reset">Reset</button>
+</div>
+
+<div id=jank-meter>JANK METER</div>
+
+<streaming-element id=target></streaming-element>
+
+<script>
+'use strict';
+const loadButton = document.querySelector('#load');
+const resetButton = document.querySelector('#reset');
+const targetDiv = document.querySelector('#target');
+
+// BEGIN SOURCE TO VIEW
+async function streamDirectlyIntoDOM() {
+ const response = await fetch('data/commits.include',
+ {
+ mode: 'same-origin',
+ headers: {
+ 'Cache-Control': 'no-cache, no-store'
+ }
+ });
+
+ await response.body
+ .pipeThrough(new TextDecoder())
+ .pipeTo(targetDiv.writable);
+}
+
+loadButton.onclick = () => {
+ loadButton.disabled = true;
+ streamDirectlyIntoDOM();
+};
+// END SOURCE TO VIEW
+
+resetButton.onclick = () => {
+ targetDiv.reset();
+ loadButton.disabled = false;
+};
+</script>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/small/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/small/model-isvalid.html
new file mode 100644
index 0000000000..b86e5850d0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/small/model-isvalid.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;small&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><small class="class" lang="en">text</small></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><small class="class" lang="en">text</small></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <small></small></p>
+ <p>text <dfn><small></small></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><small><a>text</a></small></p>
+ <p><dfn><small><a>text</a></small></dfn></p>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/small/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/small/model-novalid.html
new file mode 100644
index 0000000000..f874f3b87c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/small/model-novalid.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;small&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><small class="class" lang="en">text</small></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><small class="class" lang="en">text</small></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <small></small></p>
+ <p>text <dfn><small></small></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><small><a>text</a></small></p>
+ <p><dfn><small><a>text</a></small></dfn></p>
+
+ <!-- cannot contain structured inline -->
+ <p><small>text <ul><li>list</li></ul> <em>elem</em></small></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src-empty-novalid.html
new file mode 100644
index 0000000000..40af9974f8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty src is not valid</title>
+<video><source src=""></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src-isvalid.html
new file mode 100644
index 0000000000..6d3c3a2ee0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid src</title>
+<video><source src="a:foo.com"></video><!-- scheme-private -->
+<video><source src="foo:/"></video><!-- scheme-private-slash -->
+<video><source src="foo://"></video><!-- scheme-private-slash-slash -->
+<video><source src="foo:/bar.com/"></video><!-- scheme-private-path -->
+<video><source src="foo://///////"></video><!-- scheme-private-path-leading-slashes-only -->
+<video><source src="foo://///////bar.com/"></video><!-- scheme-private-path-leading-slashes-chars -->
+<video><source src="foo:////://///"></video><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<video><source src="c:/foo"></video><!-- scheme-private-single-letter -->
+<video><source src="madeupscheme:/example.com/"></video><!-- scheme-private-single-slash -->
+<video><source src="file:/example.com/"></video><!-- scheme-file-single-slash -->
+<video><source src="ftps:/example.com/"></video><!-- scheme-ftps-single-slash -->
+<video><source src="gopher:/example.com/"></video><!-- scheme-gopher-single-slash -->
+<video><source src="ws:/example.com/"></video><!-- scheme-ws-single-slash -->
+<video><source src="wss:/example.com/"></video><!-- scheme-wss-single-slash -->
+<video><source src="javascript:/example.com/"></video><!-- scheme-javascript-single-slash -->
+<video><source src="mailto:/example.com/"></video><!-- scheme-mailto-single-slash -->
+<video><source src="madeupscheme:example.com/"></video><!-- scheme-private-no-slash -->
+<video><source src="ftps:example.com/"></video><!-- scheme-ftps-no-slash -->
+<video><source src="gopher:example.com/"></video><!-- scheme-gopher-no-slash -->
+<video><source src="wss:example.com/"></video><!-- scheme-wss-no-slash -->
+<video><source src="mailto:example.com/"></video><!-- scheme-mailto-no-slash -->
+<video><source src="data:text/plain,foo"></video><!-- scheme-data-no-slash -->
+<video><source src="http://user:pass@foo:21/bar;par?b#c"></video><!-- userinfo -->
+<video><source src="http://[2001::1]"></video><!-- host-ipv6 -->
+<video><source src="http://[2001::1]:80"></video><!-- host-ipv6-port -->
+<video><source src="http://f:/c"></video><!-- port-none-but-colon -->
+<video><source src="http://f:0/c"></video><!-- port-0 -->
+<video><source src="http://f:00000000000000/c"></video><!-- port-00000000000000 -->
+<video><source src="http://f:00000000000000000000080/c"></video><!-- port-00000000000000000000080 -->
+<video><source src="http://a:b@c:29/d"></video><!-- userinfo-host-port-path -->
+<video><source src="http://foo.com:b@d/"></video><!-- userinfo-username-non-alpha -->
+<video><source src="http://foo/abcd?efgh?ijkl"></video><!-- query-contains-question-mark -->
+<video><source src="http://foo/abcd#foo?bar"></video><!-- fragment-contains-question-mark -->
+<video><source src="http://example.com/foo/%2e"></video><!-- path-percent-encoded-dot -->
+<video><source src="http://example.com/%20foo"></video><!-- path-percent-encoded-space -->
+<video><source src="http://example.com/©zbar"></video><!-- path-non-ascii -->
+<video><source src="http://example.com/foo%41%7a"></video><!-- path-percent-encoded-multiple -->
+<video><source src="http://example.com/foo%91"></video><!-- path-percent-encoded-u0091 -->
+<video><source src="http://example.com/foo%00"></video><!-- path-percent-encoded-u0000 -->
+<video><source src="http://example.com/%3A%3a%3C%3c"></video><!-- path-percent-encoded-mixed-case -->
+<video><source src="http://example.com/你好你好"></video><!-- path-unicode-han -->
+<video><source src="http://example.com//foo"></video><!-- path-uFEFF -->
+<video><source src="http://example.com/‮/foo/‭/bar"></video><!-- path-u202E-u202D -->
+<video><source src="http://💩"></video><!-- host-is-pile-of-poo -->
+<video><source src="http💩//:foo"></video><!-- path-contains-pile-of-poo -->
+<video><source src="http://example.com/foo?💩"></video><!-- query-contains-pile-of-poo -->
+<video><source src="http://example.com/foo#💩"></video><!-- fragment-contains-pile-of-poo -->
+<video><source src="http://192.0x00A80001"></video><!-- host-192.0x00A80001 -->
+<video><source src="http://%25DOMAIN:foobar@foodomain.com"></video><!-- userinfo-username-contains-percent-encoded -->
+<video><source src="http://@www.example.com"></video><!-- userinfo-empty -->
+<video><source src="http://:b@www.example.com"></video><!-- userinfo-user-empty -->
+<video><source src="http://a:@www.example.com"></video><!-- userinfo-password-empty -->
+<video><source src="http://GOO​⁠goo.com"></video><!-- host-exotic-whitespace -->
+<video><source src="http://www.foo。bar.com"></video><!-- host-exotic-dot -->
+<video><source src="http://Go.com"></video><!-- host-fullwidth -->
+<video><source src="http://你好你好"></video><!-- host-idn-unicode-han -->
+<video><source src="http://192.168.0.257/"></video><!-- host-IP-address-broken -->
+<video><source src="//foo/bar"></video><!-- scheme-schemeless-relative -->
+<video><source src="/"></video><!-- path-slash-only-relative -->
+<video><source src="/a/b/c"></video><!-- path-simple-relative -->
+<video><source src="/a%2fc"></video><!-- path-percent-encoded-slash-relative -->
+<video><source src="/a/%2f/c"></video><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<video><source src="?"></video><!-- query-empty-no-path-relative -->
+<video><source src="#"></video><!-- fragment-empty-hash-only-no-path-relative -->
+<video><source src="#/"></video><!-- fragment-slash-relative -->
+<video><source src="#;?"></video><!-- fragment-semicolon-question-mark-relative -->
+<video><source src="#β"></video><!-- fragment-non-ascii-relative -->
+<video><source src="foo.com"></video><!-- scheme-none-relative -->
+<video><source src=":"></video><!-- path-colon-relative -->
+<video><source src=":a"></video><!-- path-leading-colon-letter-relative -->
+<video><source src=":foo.com"></video><!-- path-leading-colon-chars-relative -->
+<video><source src=":/"></video><!-- path-leading-colon-slash-relative -->
+<video><source src=":#"></video><!-- path-leading-colon-hash-relative -->
+<video><source src=":23"></video><!-- path-leading-colon-number-relative -->
+<video><source src="/:23"></video><!-- path-slash-colon-number-relative -->
+<video><source src="::"></video><!-- path-leading-colon-colon-relative -->
+<video><source src="::23"></video><!-- path-colon-colon-number-relative -->
+<video><source src="💩http://foo"></video><!-- path-starts-with-pile-of-poo -->
+<video><source src="/💩"></video><!-- path-slash-pile-of-poo -->
+<video><source src="File://foo/bar.html"></video><!-- scheme-file-uppercase -->
+<video><source src="file://C|/foo/bar"></video><!-- scheme-file-slash-slash-c-bar -->
+<video><source src="file://server/foo/bar"></video><!-- scheme-file-host-included -->
+<video><source src="file:///foo/bar.txt"></video><!-- scheme-file-host-empty -->
+<video><source src="file:"></video><!-- scheme-file-scheme-only -->
+<video><source src="file:/"></video><!-- scheme-file-slash-only -->
+<video><source src="file://"></video><!-- scheme-file-slash-slash-only -->
+<video><source src="file:///"></video><!-- scheme-file-slash-slash-slash-only -->
+<video><source src="file:test"></video><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src-whitespace-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src-whitespace-only-novalid.html
new file mode 100644
index 0000000000..d814f5bee1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src-whitespace-only-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty src is not valid</title>
+<video><source src="
+"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..d01d315a80
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-backslash</title>
+<video><source src="#\"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..1780fe6981
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-contains-hash</title>
+<video><source src="http://foo/path#f#g"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..cf2d6028b0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-leading-space</title>
+<video><source src="http://f:21/b# e"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-cr-novalid.html
new file mode 100644
index 0000000000..fce5132b17
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-cr</title>
+<video><source src="http://example. org"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..e670a118fb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://%41.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..e459233329
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://%ef%bc%85%ef%bc%94%ef%bc%91.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-empty-novalid.html
new file mode 100644
index 0000000000..0c8af3c140
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-empty</title>
+<video><source src="http://"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..401b95d784
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://@/www.example.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..20aee85b0a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://user:pass@/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..459a77a7c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://[www.google.com]/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..87343ea53d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-invalid-unicode</title>
+<video><source src="http://﷐zyx.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..89198c0c01
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://%ef%b7%90zyx.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-newline-novalid.html
new file mode 100644
index 0000000000..d6fbbff9f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-newline</title>
+<video><source src="http://example.
+org"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-space-novalid.html
new file mode 100644
index 0000000000..4b948bb424
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-space</title>
+<video><source src="http://example .org"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..1c0948bdec
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://[1::2]:3:4"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-tab-novalid.html
new file mode 100644
index 0000000000..bfa213cf9c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-tab</title>
+<video><source src="http://example .org"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..af4112397f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://%00.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..2b8764b773
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://%ef%bc%85%ef%bc%90%ef%bc%90.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..a3f169c0b0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://example.com/foo%"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-contains-space-novalid.html
new file mode 100644
index 0000000000..8290e23552
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-contains-space</title>
+<video><source src="/a/ /c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..6a7028d120
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://foo.com/\@"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..8c42b1c88f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src=":\"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..3764f1e87f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src=":foo.com\"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-leading-space-novalid.html
new file mode 100644
index 0000000000..fd99580750
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-leading-space</title>
+<video><source src="http://f:21/ b"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..4d133de219
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://example.com/foo/%2e%2"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..b7fba02473
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="[61:24:74]:98"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-tab-novalid.html
new file mode 100644
index 0000000000..a755948615
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-tab</title>
+<video><source src="http://example.com/foo bar"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..e410928b0c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-trailing-space</title>
+<video><source src="http://f:21/b ?"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-u0091-novalid.html
new file mode 100644
index 0000000000..315c9c0407
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-u0091</title>
+<video><source src="http://example.com/foo‘"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-999999-novalid.html
new file mode 100644
index 0000000000..c635f3b667
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-999999</title>
+<video><source src="http://f:999999/c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-cr-novalid.html
new file mode 100644
index 0000000000..f4a35d68a0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-cr</title>
+<video><source src="http://f: /c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..6162bb6ec4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://2001::1]:80"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..590459c48e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-colon</title>
+<video><source src="http://2001::1"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..32aa2a6099
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-dash</title>
+<video><source src="http://foo:-80/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..0c5edbf21b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-multiple-letters</title>
+<video><source src="http://f:fifty-two/c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-newline-novalid.html
new file mode 100644
index 0000000000..b5103483b0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-newline</title>
+<video><source src="http://f:
+/c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-single-letter-novalid.html
new file mode 100644
index 0000000000..6359c2dec9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-single-letter</title>
+<video><source src="http://f:b/c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-space-novalid.html
new file mode 100644
index 0000000000..8b255e538d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-space</title>
+<video><source src="http://f: /c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-tab-novalid.html
new file mode 100644
index 0000000000..7e3eede3c8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-tab</title>
+<video><source src="http://f: /c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/query-leading-space-novalid.html
new file mode 100644
index 0000000000..c2b2ccf61b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-leading-space</title>
+<video><source src="http://f:21/b? d"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..3d18f7316a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-trailing-space</title>
+<video><source src="http://f:21/b?d #"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..c92f72c9d5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-data-contains-fragment-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>src warning: scheme-data-contains-fragment</title>
+<video><source src="data:text/html,test#test"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..5be1b6aa5d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="data:/example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..3d2ba290e3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-file-backslash</title>
+<video><source src="file:c:\foo\bar.html"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..3f73121760
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="file:/C|/foo/bar"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..87d52244b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="file://abc|/foo/bar"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..b1d44ebc7c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="file:///C|/foo/bar"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..5388a0e6a0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="ftp:example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..f24622fe25
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="ftp:/example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..de2b3888c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-backslash</title>
+<video><source src="http:\\foo.com\"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..c331a355d8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http::@c:29"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..fa49920494
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http:foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..576fef6f47
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http:[61:27]/:foo"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..09837749cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http:/example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..931e59c008
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="https:example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..87f75d8fb3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="https:/example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..99170ba10a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-cr</title>
+<video><source src="a: foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..4e68da6e7e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-newline</title>
+<video><source src="a:
+foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..8a7e5471c4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-space</title>
+<video><source src="a: foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..87ebab22db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-tab</title>
+<video><source src="a: foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..110363739e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-backslash</title>
+<video><source src="http://a\b:c\d@foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..2e88fd4d43
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://&a:foo(b]c@d:2/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..147678b38d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://foo:💩@example.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..c6f9bef714
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://::@c@d:2"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/source/src/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/source/src/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..fb2f9413f4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/source/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>
+<video><source src="http://💩:foo@example.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/span/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/span/model-isvalid.html
new file mode 100644
index 0000000000..ee1abffabf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/span/model-isvalid.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;span&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><span class="class" lang="en">text</span></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><span class="class" lang="en">text</span></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <span></span></p>
+ <p>text <dfn><span></span></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><span><a>text</a></span></p>
+ <p><dfn><span><a>text</a></span></dfn></p>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/span/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/span/model-novalid.html
new file mode 100644
index 0000000000..30814fc2c1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/span/model-novalid.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;span&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><span class="class" lang="en">text</span></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><span class="class" lang="en">text</span></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <span></span></p>
+ <p>text <dfn><span></span></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><span><a>text</a></span></p>
+ <p><dfn><span><a>text</a></span></dfn></p>
+
+ <!-- cannot contain structured inline -->
+ <p><span>text <ul><li>list</li></ul> <em>elem</em></span></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/strong/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/strong/model-isvalid.html
new file mode 100644
index 0000000000..1510a641c0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/strong/model-isvalid.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;strong&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><strong class="class" lang="en">text</strong></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><strong class="class" lang="en">text</strong></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <strong></strong></p>
+ <p>text <dfn><strong></strong></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><strong><a>text</a></strong></p>
+ <p><dfn><strong><a>text</a></strong></dfn></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/strong/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/strong/model-novalid.html
new file mode 100644
index 0000000000..a202dfc8dd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/strong/model-novalid.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;strong&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><strong class="class" lang="en">text</strong></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><strong class="class" lang="en">text</strong></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <strong></strong></p>
+ <p>text <dfn><strong></strong></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><strong><a>text</a></strong></p>
+ <p><dfn><strong><a>text</a></strong></dfn></p>
+
+ <!-- cannot contain structured inline -->
+ <p><strong>text <ul><li>list</li></ul> <em>elem</em></strong></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/style/html-spec-comms-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/style/html-spec-comms-isvalid.html
new file mode 100644
index 0000000000..2124406a31
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/style/html-spec-comms-isvalid.html
@@ -0,0 +1,274 @@
+<!DOCTYPE html><html class=split lang=en-US-x-hixie><script src=/link-fixup.js defer=""></script><meta charset=utf-8><meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name=viewport><title>HTML Standard</title><meta content=#3c790a name=theme-color><link rel=stylesheet href=https://resources.whatwg.org/standard.css><link rel=icon href=https://resources.whatwg.org/logo.svg><script>
+ function toggleStatus(div) {
+ div.parentNode.classList.toggle('wrapped');
+ }
+ </script><style>
+ .status { min-height: 0.6em; font: 1em sans-serif; width: 9em; padding: 0.3em; position: absolute; z-index: 8; right: 0.3em; background: #EEE; color: black; box-shadow: 0 0 3px #999; overflow: hidden; margin: -2em 0 0 0; border-collapse: initial; border-spacing: initial; }
+ .status:hover { z-index: 9; }
+ .status:focus-within { z-index: 9; }
+ .status.wrapped > :not(input) { display: none; }
+ .status > input { position: absolute; left: 0; top: 0; width: 1em; height: 1em; border: none; background: transparent; padding: 0; margin: 0; }
+ .status > p { font-size: 0.6em; margin: 0; padding: 0; }
+ .status > p + p { padding-top: 0.5em; }
+ .status > p > strong { margin-left: 1.5em; }
+ .status > .support { display: block; }
+ .status > .support > span { padding: 0.2em 0; display: block; display: table; }
+ .status > .support > span.partial { color: #666666; filter: grayscale(50%); }
+ .status > .support > span.no { color: #CCCCCC; filter: grayscale(100%); }
+ .status > .support > span.no::before { opacity: 0.5; }
+ .status > .support > span:first-of-type { padding-top: 0.5em; }
+ .status > .support > span > span { padding: 0 0.5em; display: table-cell; vertical-align: top; }
+ .status > .support > span > span:first-child { width: 100%; }
+ .status > .support > span > span:last-child { width: 100%; white-space: pre; padding: 0; }
+ .status > .support > span::before { content: ' '; display: table-cell; min-width: 1.5em; height: 1.5em; background: no-repeat center center; background-size: contain; text-align: right; font-size: 0.75em; font-weight: bold; }
+ .status > .support > .and_chr::before { background-image: url(https://resources.whatwg.org/browser-logos/chrome.svg); }
+ .status > .support > .and_ff::before { background-image: url(https://resources.whatwg.org/browser-logos/firefox.png); }
+ .status > .support > .and_uc::before { background-image: url(https://resources.whatwg.org/browser-logos/uc.png); } /* UC Browser for Android */
+ .status > .support > .android::before { background-image: url(https://resources.whatwg.org/browser-logos/android.svg); }
+ .status > .support > .bb::before { background-image: url(https://resources.whatwg.org/browser-logos/bb.jpg); } /* Blackberry Browser */
+ .status > .support > .chrome::before { background-image: url(https://resources.whatwg.org/browser-logos/chrome.svg); }
+ .status > .support > .edge::before { background-image: url(https://resources.whatwg.org/browser-logos/edge.svg); }
+ .status > .support > .firefox::before { background-image: url(https://resources.whatwg.org/browser-logos/firefox.png); }
+ .status > .support > .ie::before { background-image: url(https://resources.whatwg.org/browser-logos/ie.png); }
+ .status > .support > .ie_mob::before { background-image: url(https://resources.whatwg.org/browser-logos/ie-mobile.svg); }
+ .status > .support > .ios_saf::before { background-image: url(https://resources.whatwg.org/browser-logos/safari-ios.svg); }
+ .status > .support > .op_mini::before { background-image: url(https://resources.whatwg.org/browser-logos/opera-mini.png); }
+ .status > .support > .op_mob::before { background-image: url(https://resources.whatwg.org/browser-logos/opera.png); }
+ .status > .support > .opera::before { background-image: url(https://resources.whatwg.org/browser-logos/opera.png); }
+ .status > .support > .safari::before { background-image: url(https://resources.whatwg.org/browser-logos/safari.png); }
+ .status > .support > .samsung::before { background-image: url(https://resources.whatwg.org/browser-logos/samsung.png); }
+ .status > .caniuse { text-align: right; font-style: italic; width: 100%; }
+ .status > .caniuse + p { margin-top: 0.5em; border-top: 1px solid silver; }
+
+ @media (max-width: 767px) {
+ .status { right: -9em; }
+ }
+ </style><style>
+ [hidden] { display: none; }
+
+ .bad, .bad *:not(.X\58X) { color: gray; border-color: gray; background: transparent; }
+
+ .fingerprint { position: absolute; right: 0; z-index: 5; }
+ @media (max-width: 767px) {
+ .fingerprint { max-width: 35px; }
+ }
+
+ .applies .yes, .yesno .yes { background: yellow; }
+ .yesno .yes, .yesno .no { text-align: center; }
+
+ .applies thead th > * { display: block; }
+ .applies thead code { display: block; }
+ .applies td { text-align: center; }
+
+ .matrix, .matrix td { border: hidden; text-align: right; }
+ .matrix { margin-left: 2em; }
+
+ .vertical-summary-table tr > th[rowspan="2"]:first-child + th,
+ .vertical-summary-table tr > td[rowspan="2"]:first-child + td { border-bottom: hidden; }
+
+ .dice-example { border-collapse: collapse; border-style: hidden solid solid hidden; border-width: thin; margin-left: 3em; }
+ .dice-example caption { width: 30em; font-size: smaller; font-style: italic; padding: 0.75em 0; text-align: left; }
+ .dice-example td, .dice-example th { border: solid thin; width: 1.35em; height: 1.05em; text-align: center; padding: 0; }
+
+ td.eg { border-width: thin; text-align: center; }
+
+ #table-example-1 { border: solid thin; border-collapse: collapse; margin-left: 3em; }
+ #table-example-1 caption { padding-bottom: 0.5em; }
+ #table-example-1 thead, #table-example-1 tbody { border: none; }
+ #table-example-1 th, #table-example-1 td { border: solid thin; }
+ #table-example-1 th { font-weight: normal; }
+ #table-example-1 td { border-style: none solid; vertical-align: top; }
+ #table-example-1 th { padding: 0.5em; vertical-align: middle; text-align: center; }
+ #table-example-1 tbody tr:first-child td { padding-top: 0.5em; }
+ #table-example-1 tbody tr:last-child td { padding-bottom: 1.5em; }
+ #table-example-1 tbody td:first-child { padding-left: 2.5em; padding-right: 0; width: 9em; }
+ #table-example-1 tbody td:first-child::after { content: leader(". "); }
+ #table-example-1 tbody td { padding-left: 2em; padding-right: 2em; }
+ #table-example-1 tbody td:first-child + td { width: 10em; }
+ #table-example-1 tbody td:first-child + td ~ td { width: 2.5em; }
+ #table-example-1 tbody td:first-child + td + td + td ~ td { width: 1.25em; }
+
+ .apple-table-examples { border: none; border-collapse: separate; border-spacing: 1.5em 0em; width: 40em; margin-left: 3em; }
+ .apple-table-examples * { font-family: "Times", serif; }
+ .apple-table-examples td, .apple-table-examples th { border: none; white-space: nowrap; padding-top: 0; padding-bottom: 0; }
+ .apple-table-examples tbody th:first-child { border-left: none; width: 100%; }
+ .apple-table-examples thead th:first-child ~ th { font-size: smaller; font-weight: bolder; border-bottom: solid 2px; text-align: center; }
+ .apple-table-examples tbody th::after, .apple-table-examples tfoot th::after { content: leader(". ") }
+ .apple-table-examples tbody th, .apple-table-examples tfoot th { font: inherit; text-align: left; }
+ .apple-table-examples td { text-align: right; vertical-align: top; }
+ .apple-table-examples.e1 tbody tr:last-child td { border-bottom: solid 1px; }
+ .apple-table-examples.e1 tbody + tbody tr:last-child td { border-bottom: double 3px; }
+ .apple-table-examples.e2 th[scope=row] { padding-left: 1em; }
+ .apple-table-examples sup { line-height: 0; }
+
+ .three-column-nowrap tr > td:first-child,
+ .three-column-nowrap tr > td:first-child + td,
+ .three-column-nowrap tr > td:first-child + td + td { white-space: nowrap; }
+
+ .details-example img { vertical-align: top; }
+
+ .parse-error-table td > p:first-child { margin-top: 0; }
+
+ #named-character-references-table {
+ white-space: nowrap;
+ font-size: 0.6em;
+ column-width: 30em;
+ column-gap: 1em;
+ -webkit-column-width: 30em;
+ -webkit-column-gap: 1em;
+ }
+ #named-character-references-table > table > tbody > tr > td:first-child + td,
+ #named-character-references-table > table > tbody > tr > td:last-child { text-align: center; }
+ #named-character-references-table > table > tbody > tr > td:last-child:hover > span { position: absolute; top: auto; left: auto; margin-left: 0.5em; line-height: 1.2; font-size: 5em; border: outset; padding: 0.25em 0.5em; background: white; width: 1.25em; height: auto; text-align: center; }
+ #named-character-references-table > table > tbody > tr#entity-CounterClockwiseContourIntegral > td:first-child { font-size: 0.5em; }
+
+ .glyph.control { color: red; }
+
+ #table-example-1 * { font-family: "Essays1743", serif; line-height: 1.01em; }
+ @font-face {
+ font-family: 'Essays1743';
+ src: url('/fonts/Essays1743.ttf');
+ }
+ @font-face {
+ font-family: 'Essays1743';
+ font-weight: bold;
+ src: url('/fonts/Essays1743-Bold.ttf');
+ }
+ @font-face {
+ font-family: 'Essays1743';
+ font-style: italic;
+ src: url('/fonts/Essays1743-Italic.ttf');
+ }
+ @font-face {
+ font-family: 'Essays1743';
+ font-style: italic;
+ font-weight: bold;
+ src: url('/fonts/Essays1743-BoldItalic.ttf');
+ }
+
+ @media (max-width: 767px) {
+ #abstractimg { width: 100%; }
+ }
+ #abstractimg, #abstractimg text { font: inherit; }
+ #abstractimg rect { fill: #424242; }
+ #abstractimg text { fill: #ffffff; font-size: 18px }
+ #abstractimg .top { word-spacing: 50px; text-anchor: middle; }
+ #abstractimg .left, #abstractimg .bottom { word-spacing: 12px; }
+ #abstractimg .right { font-size: 25px; }
+ </style><body>
+
+ <script async="" src=/html-dfn.js></script>
+ <script data-file-issue-url=https://github.com/whatwg/html/issues/new src=https://resources.whatwg.org/file-issue.js async=""></script>
+ <header id=head class="head with-buttons">
+ <a href=https://whatwg.org/ class=logo><img alt=WHATWG src=https://resources.whatwg.org/logo.svg width=100 height=100></a>
+ <h1 class=allcaps>HTML</h1><h2 id=living-standard class="no-num no-toc">Living Standard — Last Updated <span class=pubdate>9 December 2017</span></h2>
+
+
+
+
+ </header>
+
+
+
+
+
+
+
+
+
+
+
+ <nav><a href=imagebitmap-and-animations.html>← 8.8 Images</a> — <a href=./>Table of Contents</a> — <a href=server-sent-events.html>9.2 Server-sent events →</a></nav><ol class=toc><li id=toc-comms><a href=comms.html#comms><span class=secno>9</span> Communication</a><ol><li><a href=comms.html#the-messageevent-interface><span class=secno>9.1</span> The <code>MessageEvent</code> interface</a></ol></ol><h2 id=comms><span class=secno>9</span> Communication<a href=#comms class=self-link></a></h2>
+
+ <h3 id=the-messageevent-interface><span class=secno>9.1</span> The <code id=the-messageevent-interface:messageevent><a href=#messageevent>MessageEvent</a></code> interface<a href=#the-messageevent-interface class=self-link></a></h3>
+
+ <p>Messages in <a id=the-messageevent-interface:server-sent-events href=server-sent-events.html#server-sent-events>server-sent events</a>, <a id=the-messageevent-interface:network href=web-sockets.html#network>Web sockets</a>, <a id=the-messageevent-interface:web-messaging href=web-messaging.html#web-messaging>cross-document
+ messaging</a>, <a id=the-messageevent-interface:channel-messaging href=web-messaging.html#channel-messaging>channel messaging</a>, and <a id=the-messageevent-interface:broadcasting-to-other-browsing-contexts href=web-messaging.html#broadcasting-to-other-browsing-contexts>broadcast channels</a> use the
+ <code id=the-messageevent-interface:messageevent-2><a href=#messageevent>MessageEvent</a></code> interface for their <code id=the-messageevent-interface:event-message><a href=indices.html#event-message>message</a></code>
+ events:</p>
+
+ <pre class=idl>[Constructor(DOMString type, optional <a href=#messageeventinit id=the-messageevent-interface:messageeventinit>MessageEventInit</a> eventInitDict), Exposed=(Window,Worker,AudioWorklet)]
+interface <dfn id=messageevent>MessageEvent</dfn> : <a id=the-messageevent-interface:event href=https://dom.spec.whatwg.org/#interface-event data-x-internal=event>Event</a> {
+ readonly attribute any <a href=#dom-messageevent-data id=the-messageevent-interface:dom-messageevent-data>data</a>;
+ readonly attribute USVString <a href=#dom-messageevent-origin id=the-messageevent-interface:dom-messageevent-origin>origin</a>;
+ readonly attribute DOMString <a href=#dom-messageevent-lasteventid id=the-messageevent-interface:dom-messageevent-lasteventid>lastEventId</a>;
+ readonly attribute <a href=#messageeventsource id=the-messageevent-interface:messageeventsource>MessageEventSource</a>? <a href=#dom-messageevent-source id=the-messageevent-interface:dom-messageevent-source>source</a>;
+ readonly attribute FrozenArray&lt;<a id=the-messageevent-interface:messageport href=web-messaging.html#messageport>MessagePort</a>> <a href=#dom-messageevent-ports id=the-messageevent-interface:dom-messageevent-ports>ports</a>;
+
+ void <a href=#dom-messageevent-initmessageevent id=the-messageevent-interface:dom-messageevent-initmessageevent>initMessageEvent</a>(DOMString type, optional boolean bubbles = false, optional boolean cancelable = false, optional any data = null, optional USVString origin = "", optional DOMString lastEventId = "", optional <a href=#messageeventsource id=the-messageevent-interface:messageeventsource-2>MessageEventSource</a>? source = null, optional sequence&lt;<a id=the-messageevent-interface:messageport-2 href=web-messaging.html#messageport>MessagePort</a>> ports = []);
+};
+
+dictionary <dfn id=messageeventinit>MessageEventInit</dfn> : <a id=the-messageevent-interface:eventinit href=https://dom.spec.whatwg.org/#dictdef-eventinit data-x-internal=eventinit>EventInit</a> {
+ any data = null;
+ USVString origin = "";
+ DOMString lastEventId = "";
+ <a href=#messageeventsource id=the-messageevent-interface:messageeventsource-3>MessageEventSource</a>? source = null;
+ sequence&lt;<a id=the-messageevent-interface:messageport-3 href=web-messaging.html#messageport>MessagePort</a>> ports = [];
+};
+
+typedef (<a id=the-messageevent-interface:windowproxy href=window-object.html#windowproxy>WindowProxy</a> or <a id=the-messageevent-interface:messageport-4 href=web-messaging.html#messageport>MessagePort</a> or <a id=the-messageevent-interface:serviceworker href=https://w3c.github.io/ServiceWorker/#serviceworker data-x-internal=serviceworker>ServiceWorker</a>) <dfn id=messageeventsource>MessageEventSource</dfn>;</pre>
+
+ <dl class=domintro><dt><var>event</var> . <code id=dom-messageevent-data-dev><a href=#dom-messageevent-data>data</a></code><dd>
+
+ <p>Returns the data of the message.</p>
+
+ <dt><var>event</var> . <code id=dom-messageevent-origin-dev><a href=#dom-messageevent-origin>origin</a></code><dd>
+
+ <p>Returns the origin of the message, for <a id=the-messageevent-interface:server-sent-events-2 href=server-sent-events.html#server-sent-events>server-sent events</a> and
+ <a id=the-messageevent-interface:web-messaging-2 href=web-messaging.html#web-messaging>cross-document messaging</a>.</p>
+
+ <dt><var>event</var> . <code id=dom-messageevent-lasteventid-dev><a href=#dom-messageevent-lasteventid>lastEventId</a></code><dd>
+
+ <p>Returns the <a href=server-sent-events.html#concept-event-stream-last-event-id id=the-messageevent-interface:concept-event-stream-last-event-id>last event ID string</a>, for
+ <a id=the-messageevent-interface:server-sent-events-3 href=server-sent-events.html#server-sent-events>server-sent events</a>.</p>
+
+ <dt><var>event</var> . <code id=dom-messageevent-source-dev><a href=#dom-messageevent-source>source</a></code><dd>
+
+ <p>Returns the <code id=the-messageevent-interface:windowproxy-2><a href=window-object.html#windowproxy>WindowProxy</a></code> of the source window, for <a id=the-messageevent-interface:web-messaging-3 href=web-messaging.html#web-messaging>cross-document
+ messaging</a>, and the <code id=the-messageevent-interface:messageport-5><a href=web-messaging.html#messageport>MessagePort</a></code> being attached, in the <code id=the-messageevent-interface:event-workerglobalscope-connect><a href=indices.html#event-workerglobalscope-connect>connect</a></code> event fired at
+ <code id=the-messageevent-interface:sharedworkerglobalscope><a href=workers.html#sharedworkerglobalscope>SharedWorkerGlobalScope</a></code> objects.</p>
+
+ <dt><var>event</var> . <code id=dom-messageevent-ports-dev><a href=#dom-messageevent-ports>ports</a></code><dd>
+
+ <p>Returns the <code id=the-messageevent-interface:messageport-6><a href=web-messaging.html#messageport>MessagePort</a></code> array sent with the message, for <a id=the-messageevent-interface:web-messaging-4 href=web-messaging.html#web-messaging>cross-document
+ messaging</a> and <a id=the-messageevent-interface:channel-messaging-2 href=web-messaging.html#channel-messaging>channel messaging</a>.</p>
+
+ </dl>
+
+
+
+ <p>The <dfn id=dom-messageevent-data><code>data</code></dfn> attribute must return the value
+ it was initialized to. It represents the message being sent.</p>
+
+ <p>The <dfn id=dom-messageevent-origin><code>origin</code></dfn> attribute must return the
+ value it was initialized to. It represents, in <a id=the-messageevent-interface:server-sent-events-4 href=server-sent-events.html#server-sent-events>server-sent events</a> and
+ <a id=the-messageevent-interface:web-messaging-5 href=web-messaging.html#web-messaging>cross-document messaging</a>, the <a id=the-messageevent-interface:concept-origin href=origin.html#concept-origin>origin</a> of the document that sent the
+ message (typically the scheme, hostname, and port of the document, but not its path or <a href=https://url.spec.whatwg.org/#concept-url-fragment id=the-messageevent-interface:concept-url-fragment data-x-internal=concept-url-fragment>fragment</a>).</p>
+
+ <p>The <dfn id=dom-messageevent-lasteventid><code>lastEventId</code></dfn> attribute must
+ return the value it was initialized to. It represents, in <a id=the-messageevent-interface:server-sent-events-5 href=server-sent-events.html#server-sent-events>server-sent events</a>, the
+ <a href=server-sent-events.html#concept-event-stream-last-event-id id=the-messageevent-interface:concept-event-stream-last-event-id-2>last event ID string</a> of the event
+ source.</p>
+
+ <p>The <dfn id=dom-messageevent-source><code>source</code></dfn> attribute must return the
+ value it was initialized to. It represents, in <a id=the-messageevent-interface:web-messaging-6 href=web-messaging.html#web-messaging>cross-document messaging</a>, the
+ <code id=the-messageevent-interface:windowproxy-3><a href=window-object.html#windowproxy>WindowProxy</a></code> of the <a id=the-messageevent-interface:browsing-context href=browsers.html#browsing-context>browsing context</a> of the <code id=the-messageevent-interface:window><a href=window-object.html#window>Window</a></code> object
+ from which the message came; and in the <code id=the-messageevent-interface:event-workerglobalscope-connect-2><a href=indices.html#event-workerglobalscope-connect>connect</a></code> events used by <a href=workers.html#sharedworkerglobalscope id=the-messageevent-interface:sharedworkerglobalscope-2>shared workers</a>, the newly connecting
+ <code id=the-messageevent-interface:messageport-7><a href=web-messaging.html#messageport>MessagePort</a></code>.</p>
+
+ <p>The <dfn id=dom-messageevent-ports><code>ports</code></dfn> attribute must return the
+ value it was initialized to. It represents, in <a id=the-messageevent-interface:web-messaging-7 href=web-messaging.html#web-messaging>cross-document messaging</a> and
+ <a id=the-messageevent-interface:channel-messaging-3 href=web-messaging.html#channel-messaging>channel messaging</a>, the <code id=the-messageevent-interface:messageport-8><a href=web-messaging.html#messageport>MessagePort</a></code> array being sent.</p>
+
+
+ <p>The <dfn id=dom-messageevent-initmessageevent><code>initMessageEvent()</code></dfn>
+ method must initialize the event in a manner analogous to the similarly-named <code id=the-messageevent-interface:dom-event-initevent><a data-x-internal=dom-event-initevent href=https://dom.spec.whatwg.org/#dom-event-initevent>initEvent()</a></code> method. <a href=references.html#refsDOM>[DOM]</a></p>
+
+
+
+ <p class=note>Various APIs (e.g., <code id=the-messageevent-interface:websocket><a href=web-sockets.html#websocket>WebSocket</a></code>, <code id=the-messageevent-interface:eventsource><a href=server-sent-events.html#eventsource>EventSource</a></code>) use the
+ <code id=the-messageevent-interface:messageevent-3><a href=#messageevent>MessageEvent</a></code> interface for their <code id=the-messageevent-interface:event-message-2><a href=indices.html#event-message>message</a></code> event
+ without using the <code id=the-messageevent-interface:messageport-9><a href=web-messaging.html#messageport>MessagePort</a></code> API.</p>
+
+
+ <nav><a href=imagebitmap-and-animations.html>← 8.8 Images</a> — <a href=./>Table of Contents</a> — <a href=server-sent-events.html>9.2 Server-sent events →</a></nav>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/style/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/style/model-isvalid.html
new file mode 100644
index 0000000000..e55c3e94ec
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/style/model-isvalid.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <style>
+<!--
+
+.hasFocus { border: 2px solid red; }
+
+-->
+ </style>
+ <meta charset=utf-8>
+ <title>&lt;STYLE&gt;s</title>
+</head>
+<body>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-as-div-child-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-as-div-child-novalid.html
new file mode 100644
index 0000000000..d927a60f10
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-as-div-child-novalid.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>style@scoped as child of div with flow content after</title>
+<body>
+<div>
+<style scoped></style>
+<p>foo
+</div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-as-p-child-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-as-p-child-novalid.html
new file mode 100644
index 0000000000..8619e0815e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-as-p-child-novalid.html
@@ -0,0 +1,5 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>style@scoped as child of p (where flow content is not allowed)</title>
+<body>
+<p><style scoped></style></p>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-in-head-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-in-head-novalid.html
new file mode 100644
index 0000000000..358bd694bb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-in-head-novalid.html
@@ -0,0 +1,6 @@
+<!doctype html>
+<head>
+<meta charset=utf-8>
+<title>style@scoped in head</title>
+<style scoped></style>
+</head>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-model-novalid.html
new file mode 100644
index 0000000000..19d56bbc98
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-model-novalid.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>style@scoped as child of div with flow content before</title>
+<body>
+<div>
+<p>foo</p>
+<style scoped></style>
+</div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-multiple-adjacent-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-multiple-adjacent-novalid.html
new file mode 100644
index 0000000000..1799dd128c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-multiple-adjacent-novalid.html
@@ -0,0 +1,9 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>mutliple adjacent style@scoped as child of div with flow content after</title>
+<body>
+<div>
+<style scoped></style>
+<style scoped></style>
+<p>foo</p>
+</div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-novalid.html
new file mode 100644
index 0000000000..cdcc00eb70
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/style/scoped-novalid.html
@@ -0,0 +1,5 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>style@scoped as child of div</title>
+<body>
+<div><style scoped></style></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/style/type-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/style/type-novalid.html
new file mode 100644
index 0000000000..f977b1790e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/style/type-novalid.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;STYLE&gt;s</title>
+ <style type="application/vnd.nonsense" title="My Style">
+ Something or other
+ </style>
+</head>
+<body>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/sub/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/sub/model-isvalid.html
new file mode 100644
index 0000000000..2dbd047f46
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/sub/model-isvalid.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;sub&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><sub class="class" lang="en">text</sub></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><sub class="class" lang="en">text</sub></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <sub></sub></p>
+ <p>text <dfn><sub></sub></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><sub><a>text</a></sub></p>
+ <p><dfn><sub><a>text</a></sub></dfn></p>
+
+ <!-- cannot contain structured inline -->
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/sub/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/sub/model-novalid.html
new file mode 100644
index 0000000000..41e40a63d7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/sub/model-novalid.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;sub&gt;</title>
+</head>
+<body>
+ <!-- not a block -->
+ <sub>text</sub>
+
+ <!-- cannot contain structured inline -->
+ <p><sub><ul><li>text</li></ul></sub></p>
+
+ <!-- cannot contain interactive if parent forbids interactive -->
+ <p><a><sub><a>text</a></sub></a></p>
+ <p><a><dfn><sub><a>text</a></sub></dfn></a></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/sup/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/sup/model-isvalid.html
new file mode 100644
index 0000000000..af3642f5ed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/sup/model-isvalid.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;sup&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><sup class="class" lang="en">text</sup></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><sup class="class" lang="en">text</sup></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <sup></sup></p>
+ <p>text <dfn><sup></sup></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><sup><a>text</a></sup></p>
+ <p><dfn><sup><a>text</a></sup></dfn></p>
+
+ <!-- cannot contain structured inline -->
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/sup/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/sup/model-novalid.html
new file mode 100644
index 0000000000..321a9439e6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/sup/model-novalid.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;sup&gt;</title>
+</head>
+<body>
+ <!-- not a block -->
+ <sup>text</sup>
+
+ <!-- cannot contain structured inline -->
+ <p><sup><ul><li>text</li></ul></sup></p>
+
+ <!-- cannot contain interactive if parent forbids interactive -->
+ <p><a><sup><a>text</a></sup></a></p>
+ <p><a><dfn><sup><a>text</a></sup></dfn></a></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/table/integrity/Alexis_of_Russia-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/table/integrity/Alexis_of_Russia-novalid.html
new file mode 100644
index 0000000000..687213c3b9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/table/integrity/Alexis_of_Russia-novalid.html
@@ -0,0 +1,1966 @@
+<!DOCTYPE html>
+<html class="client-nojs" lang="ru" dir="ltr">
+<head>
+<meta charset="UTF-8"/>
+<title>Алексей Михайлович — Википедия</title>
+<script>document.documentElement.className = document.documentElement.className.replace( /(^|\s)client-nojs(\s|$)/, "$1client-js$2" );</script>
+<script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Алексей_Михайлович","wgTitle":"Алексей Михайлович","wgCurRevisionId":83193143,"wgRevisionId":83193143,"wgArticleId":25393,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Страницы, использующие волшебные ссылки ISBN","Википедия:Статьи с переопределением значения из Викиданных","Википедия:Статьи, требующие конкретизации","Родившиеся 27 марта","Родившиеся в 1629 году","Персоналии по алфавиту","Родившиеся в Москве","Умершие 8 февраля","Умершие в 1676 году","Умершие в Москве","Похороненные в Архангельском соборе Московского Кремля","Цари из дома Романовых","Участники Русско-польской войны 1654—1667 годов (русская сторона)","Алексей Михайлович","Русские цари"],"wgBreakFrames":false,"wgPageContentLanguage":"ru","wgPageContentModel":"wikitext","wgSeparatorTransformTable":[",\t."," \t,"],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"],"wgMonthNamesShort":["","янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек"],"wgRelevantPageName":"Алексей_Михайлович","wgRelevantArticleId":25393,"wgRequestId":"WI8ZewpAAEUAATAqH@sAAABQ","wgIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgFlaggedRevsParams":{"tags":{"accuracy":{"levels":3,"quality":2,"pristine":4}}},"wgStableRevisionId":83193143,"wgWikiEditorEnabledModules":{"toolbar":true,"dialogs":true,"preview":false,"publish":false},"wgBetaFeaturesFeatures":[],"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgVisualEditor":{"pageLanguageCode":"ru","pageLanguageDir":"ltr","usePageImages":true,"usePageDescriptions":true},"wgPreferredVariant":"ru","wgMFDisplayWikibaseDescriptions":{"search":true,"nearby":true,"watchlist":true,"tagline":false},"wgRelatedArticles":null,"wgRelatedArticlesUseCirrusSearch":true,"wgRelatedArticlesOnlyUseCirrusSearch":false,"wgULSCurrentAutonym":"русский","wgNoticeProject":"wikipedia","wgCentralNoticeCookiesToDelete":[],"wgCentralNoticeCategoriesUsingLegacy":["Fundraising","fundraising"],"wgCategoryTreePageCategoryOptions":"{\"mode\":0,\"hideprefix\":20,\"showcount\":true,\"namespaces\":false}","wgWikibaseItemId":"Q7731","wgCentralAuthMobileDomain":false,"wgVisualEditorToolbarScrollOffset":0,"wgEditSubmitButtonLabelPublish":false});mw.loader.state({"ext.globalCssJs.user.styles":"ready","ext.globalCssJs.site.styles":"ready","site.styles":"ready","noscript":"ready","user.styles":"ready","user":"ready","user.options":"loading","user.tokens":"loading","ext.cite.styles":"ready","wikibase.client.init":"ready","ext.gadget.logo":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","ext.flaggedRevs.basic":"ready","ext.wikimediaBadges":"ready","mediawiki.legacy.shared":"ready","mediawiki.legacy.commonPrint":"ready","mediawiki.sectionAnchor":"ready","mediawiki.skinning.interface":"ready","skins.vector.styles":"ready","ext.globalCssJs.user":"ready","ext.globalCssJs.site":"ready"});mw.loader.implement("user.options@0aplg68",function($,jQuery,require,module){mw.user.options.set({"variant":"ru"});});mw.loader.implement("user.tokens@1dqfd7l",function ( $, jQuery, require, module ) {
+mw.user.tokens.set({"editToken":"+\\","patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"});/*@nomin*/;
+
+});mw.loader.load(["ext.cite.a11y","mediawiki.toc","mediawiki.action.view.postEdit","site","mediawiki.page.startup","mediawiki.user","mediawiki.hidpi","mediawiki.page.ready","mediawiki.legacy.wikibits","mediawiki.searchSuggest","ext.gadget.collapserefs","ext.gadget.directLinkToCommons","ext.gadget.referenceTooltips","ext.gadget.edittop","ext.gadget.blpEditNotice","ext.centralauth.centralautologin","mmv.head","mmv.bootstrap.autostart","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.eventLogging.subscriber","ext.wikimediaEvents","ext.navigationTiming","ext.uls.eventlogger","ext.uls.init","ext.uls.compactlinks","ext.uls.interface","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.flaggedRevs.advanced","skins.vector.js"]);});</script>
+<link rel="stylesheet" href="/w/load.php?debug=false&amp;lang=ru&amp;modules=ext.cite.styles%7Cext.flaggedRevs.basic%7Cext.gadget.logo%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cmediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.sectionAnchor%7Cmediawiki.skinning.interface%7Cskins.vector.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector"/>
+<script async="" src="/w/load.php?debug=false&amp;lang=ru&amp;modules=startup&amp;only=scripts&amp;skin=vector"></script>
+<meta name="ResourceLoaderDynamicStyles" content=""/>
+<link rel="stylesheet" href="/w/load.php?debug=false&amp;lang=ru&amp;modules=site.styles&amp;only=styles&amp;skin=vector"/>
+<noscript><link rel="stylesheet" href="/w/load.php?debug=false&amp;lang=ru&amp;modules=noscript&amp;only=styles&amp;skin=vector"/></noscript>
+<meta name="generator" content="MediaWiki 1.29.0-wmf.9"/>
+<meta name="referrer" content="origin-when-cross-origin"/>
+<link rel="alternate" href="android-app://org.wikipedia/http/ru.m.wikipedia.org/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87"/>
+<link rel="alternate" type="application/x-wiki" title="Править" href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit"/>
+<link rel="edit" title="Править" href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit"/>
+<link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"/>
+<link rel="shortcut icon" href="/static/favicon/wikipedia.ico"/>
+<link rel="search" type="application/opensearchdescription+xml" href="/w/opensearch_desc.php" title="Википедия (ru)"/>
+<link rel="EditURI" type="application/rsd+xml" href="//ru.wikipedia.org/w/api.php?action=rsd"/>
+<link rel="copyright" href="//creativecommons.org/licenses/by-sa/3.0/"/>
+<link rel="canonical" href="https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87"/>
+<link rel="dns-prefetch" href="//login.wikimedia.org"/>
+<link rel="dns-prefetch" href="//meta.wikimedia.org" />
+</head>
+<body class="mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Алексей_Михайлович rootpage-Алексей_Михайлович skin-vector action-view"> <div id="mw-page-base" class="noprint"></div>
+ <div id="mw-head-base" class="noprint"></div>
+ <div id="content" class="mw-body" role="main">
+ <a id="top"></a>
+
+ <div id="siteNotice"><!-- CentralNotice --></div>
+ <div class="mw-indicators">
+</div>
+ <h1 id="firstHeading" class="firstHeading" lang="ru">Алексей Михайлович</h1>
+ <div id="bodyContent" class="mw-body-content">
+ <div id="siteSub">Материал из Википедии — свободной энциклопедии</div>
+ <div id="contentSub"><div id='mw-fr-reviewnotice' class='plainlinks flaggedrevs_preview'><a class="external text" href="//ru.wikipedia.org/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;stable=1">Стабильная версия</a> была <a class="external text" href="//ru.wikipedia.org/w/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%96%D1%83%D1%80%D0%BD%D0%B0%D0%BB%D1%8B&amp;type=review&amp;page=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87">проверена</a> <i>21 января 2017</i>. Имеются непроверенные <a class="external text" href="//ru.wikipedia.org/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;oldid=83193143&amp;diff=cur&amp;diffonly=0">изменения в шаблонах или файлах</a>.</div><div id="mw-fr-revisiontag" class="flaggedrevs_short flaggedrevs_draft_notsynced plainlinks noprint nomobile"><div class="flaggedrevs_short_basic"><img class="flaggedrevs-icon" src="/w/extensions/FlaggedRevs/frontend/modules/img/1.png" alt="Текущая версия" title="Текущая версия" /><img id="mw-fr-revisiontoggle" class="fr-toggle-arrow" src="/w/extensions/FlaggedRevs/frontend/modules/img/arrow-down.png" style="display:none;" alt="показать/скрыть подробности" /></div>
+<div id="mw-fr-revisiondetails-wrapper" style="position:relative;"><div id="mw-fr-revisiondetails" class="flaggedrevs_short_details" style="display:none"><a class="external text" href="//ru.wikipedia.org/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;stable=1">Стабильная версия</a> была <a class="external text" href="//ru.wikipedia.org/w/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%96%D1%83%D1%80%D0%BD%D0%B0%D0%BB%D1%8B&amp;type=review&amp;page=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87">проверена</a> <i>21 января 2017</i>. Имеются непроверенные <a class="external text" href="//ru.wikipedia.org/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;oldid=83193143&amp;diff=cur&amp;diffonly=0">изменения в шаблонах или файлах</a>.</div>
+</div>
+</div>
+</div>
+ <div id="jump-to-nav" class="mw-jump">
+ Перейти к: <a href="#mw-head">навигация</a>, <a href="#p-search">поиск</a>
+ </div>
+ <div id="mw-content-text" lang="ru" dir="ltr" class="mw-content-ltr"><script>function mfTempOpenSection(id){var block=document.getElementById("mf-section-"+id);block.className+=" open-block";block.previousSibling.className+=" open-block";}</script><div class="dablink noprint">У этого термина существуют и другие значения, см. <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87_(%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F)" class="mw-disambig" title="Алексей Михайлович (значения)">Алексей Михайлович (значения)</a>.</div>
+<div class="dablink noprint">В Википедии есть статьи о других людях с похожими именами, см.: <a href="/wiki/%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2" class="mw-disambig" title="Романов">Романов</a>, <a href="/wiki/%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2,_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9" class="mw-disambig" title="Романов, Алексей">Романов, Алексей</a> и <a href="/wiki/%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2,_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" class="mw-disambig" title="Романов, Алексей Михайлович">Романов, Алексей Михайлович</a>.</div>
+<table align="right" class="infobox" style="border-spacing: 1px; padding: 0px 0px;" cellspacing="1px">
+<tr>
+<td style="padding: 0.5em; background: #eaeaea; font-size: 120%; text-align: center; line-height:130%;" colspan="2"><span style="font-size:1.25em; font-weight:bold">Алексей I Михайлович</span><br />
+<b><span class="no-wikidata" data-wikidata-property-id="P1559"><span lang="chu" class="script-slavonic" style="font-family: 'Monomakh Unicode', 'Monomakh Unicode TT', 'Ponomar Unicode', 'Ponomar Unicode TT', 'Fedorovsk Unicode', 'Fedorovsk Unicode TT', 'Menaion Unicode', 'Menaion Unicode TT', BukyVede, 'Kliment Std', 'RomanCyrillic Std', 'Hirmos Ponomar', Dilyana, Menaion, 'Menaion Medieval', Lazov, Code2000, 'DejaVu Sans', 'DejaVu Serif', Code2001, 'FreeSerif', 'TITUS Cyberbit Basic', 'Charis SIL', 'Doulos SIL', 'Chrysanthi Unicode', 'Bitstream Cyberbit', 'Bitstream CyberBase', Thryomanes, 'Lucida Grande', 'FreeSans', 'Arial Unicode MS', 'Microsoft Sans Serif', 'Lucida Sans Unicode';" xml:lang="chu">Алеѯі́й Миха́иловичъ</span></span></b></td>
+</tr>
+<tr>
+<td colspan="2" style="text-align: center; border-top: solid darkgray 1px;"><span class="no-wikidata" data-wikidata-property-id="P18"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Alexis_I_of_Russia_(1670-1680s,_GIM).jpg" class="image" title="Алексей I Михайлович"><img alt="Алексей I Михайлович" src="//upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Alexis_I_of_Russia_%281670-1680s%2C_GIM%29.jpg/267px-Alexis_I_of_Russia_%281670-1680s%2C_GIM%29.jpg" width="267" height="371" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Alexis_I_of_Russia_%281670-1680s%2C_GIM%29.jpg/401px-Alexis_I_of_Russia_%281670-1680s%2C_GIM%29.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Alexis_I_of_Russia_%281670-1680s%2C_GIM%29.jpg/534px-Alexis_I_of_Russia_%281670-1680s%2C_GIM%29.jpg 2x" data-file-width="677" data-file-height="941" /></a></span></td>
+</tr>
+<tr>
+<td colspan="2" style="text-align: center;"><span class="no-wikidata" data-wikidata-property-id="P2096">Портрет царя Алексея Михайловича. Неизвестный русский художник второй половины 17 века. Школа <a href="/wiki/%D0%9E%D1%80%D1%83%D0%B6%D0%B5%D0%B9%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D0%BB%D0%B0%D1%82%D0%B0" title="Оружейная палата">Оружейной палаты</a>. Конец 1670 - начало 1680 годов</span></td>
+</tr>
+<tr>
+<th colspan="2" style="border-top: solid darkgray 1px;">
+<table style="width: 100%;" cellspacing="1px">
+<tr>
+<td style="width: 22px; vertical-align: middle;">
+<div class="center">
+<div class="floatnone"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Flag_of_Tzar_of_Muscovia.svg" class="image" title="Флаг"><img alt="Флаг" src="//upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Flag_of_Tzar_of_Muscovia.svg/22px-Flag_of_Tzar_of_Muscovia.svg.png" width="22" height="22" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Flag_of_Tzar_of_Muscovia.svg/33px-Flag_of_Tzar_of_Muscovia.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Flag_of_Tzar_of_Muscovia.svg/44px-Flag_of_Tzar_of_Muscovia.svg.png 2x" data-file-width="600" data-file-height="600" /></a></div>
+</div>
+</td>
+<td style="text-align:center; font-size:130%; background:lavender; vertical-align: middle;" height="18px"><a href="/wiki/%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%BE%D0%B5_%D1%86%D0%B0%D1%80%D1%81%D1%82%D0%B2%D0%BE" title="Русское царство">Государь, Царь и Великий Князь всея Руси</a></td>
+</tr>
+</table>
+</th>
+</tr>
+<tr>
+<th colspan="2" style="padding: 0px; text-align:center; font-size:110%;"><a href="/wiki/1645" class="mw-redirect" title="1645">1645</a>&#160;—&#160;<a href="/wiki/1676" class="mw-redirect" title="1676">1676</a></th>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Коронация:</th>
+<td><abbr title="по юлианскому календарю">28&#160;сентября</abbr> (<a href="/wiki/8_%D0%BE%D0%BA%D1%82%D1%8F%D0%B1%D1%80%D1%8F" title="8 октября">8&#160;октября</a>)&#160;<a href="/wiki/1645_%D0%B3%D0%BE%D0%B4" title="1645 год">1645</a></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Предшественник:</th>
+<td><a href="/wiki/%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87" title="Михаил Фёдорович">Михаил Фёдорович</a></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Преемник:</th>
+<td><a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_III_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Фёдор III Алексеевич">Фёдор III Алексеевич</a></td>
+</tr>
+<tr>
+<td colspan="2" style="border-top: solid darkgray 1px; line-height:0px">&#160;</td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Вероисповедание:</th>
+<td><span class="wikidata-claim" data-wikidata-property-id="P140" data-wikidata-claim-id="Q7731$A6D19C87-FC87-4A95-A351-2A5A50D410D3"><span class="wikidata-snak wikidata-main-snak"><a href="/wiki/%D0%9F%D1%80%D0%B0%D0%B2%D0%BE%D1%81%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%86%D0%B5%D1%80%D0%BA%D0%BE%D0%B2%D1%8C" title="Православная церковь">Православная Церковь</a></span></span></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Рождение:</th>
+<td><span class="nowrap"><a href="/wiki/27_%D0%BC%D0%B0%D1%80%D1%82%D0%B0" title="27 марта">17 (27) марта</a> <a href="/wiki/1629_%D0%B3%D0%BE%D0%B4" title="1629 год">1629</a></span><span style="display:none">(<span class="bday">1629-03-27</span>)</span><br />
+<span class="no-wikidata" data-wikidata-property-id="P19"><a href="/wiki/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0" title="Москва">Москва</a></span></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Смерть:</th>
+<td><span class="nowrap">29 января (<a href="/wiki/8_%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F" title="8 февраля">8 февраля</a>) <a href="/wiki/1676_%D0%B3%D0%BE%D0%B4" title="1676 год">1676</a></span><span style="display:none">(<span class="dday">1676-02-08</span>)</span> <span class="nowrap">(46 лет)</span><br />
+<span class="no-wikidata" data-wikidata-property-id="P20"><a href="/wiki/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0" title="Москва">Москва</a></span></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Место погребения:</th>
+<td><span class="no-wikidata" data-wikidata-property-id="P119"><a href="/wiki/%D0%90%D1%80%D1%85%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9_%D1%81%D0%BE%D0%B1%D0%BE%D1%80_(%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0)" title="Архангельский собор (Москва)">Архангельский собор (Москва)</a></span></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Род:</th>
+<td><a href="/wiki/%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2%D1%8B" title="Романовы">Романовы</a></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Отец:</th>
+<td><span class="no-wikidata" data-wikidata-property-id="P22"><a href="/wiki/%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87" title="Михаил Фёдорович">Михаил Фёдорович</a></span></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Мать:</th>
+<td><span class="no-wikidata" data-wikidata-property-id="P25"><a href="/wiki/%D0%A1%D1%82%D1%80%D0%B5%D1%88%D0%BD%D0%B5%D0%B2%D0%B0,_%D0%95%D0%B2%D0%B4%D0%BE%D0%BA%D0%B8%D1%8F_%D0%9B%D1%83%D0%BA%D1%8C%D1%8F%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0" title="Стрешнева, Евдокия Лукьяновна">Стрешнева, Евдокия Лукьяновна</a></span></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Супруга:</th>
+<td><i>1)</i> <a href="/wiki/%D0%9C%D0%B8%D0%BB%D0%BE%D1%81%D0%BB%D0%B0%D0%B2%D1%81%D0%BA%D0%B0%D1%8F,_%D0%9C%D0%B0%D1%80%D0%B8%D1%8F_%D0%98%D0%BB%D1%8C%D0%B8%D0%BD%D0%B8%D1%87%D0%BD%D0%B0" title="Милославская, Мария Ильинична">Милославская, Мария Ильинична</a><br />
+<i>2)</i> <a href="/wiki/%D0%9D%D0%B0%D1%80%D1%8B%D1%88%D0%BA%D0%B8%D0%BD%D0%B0,_%D0%9D%D0%B0%D1%82%D0%B0%D0%BB%D1%8C%D1%8F_%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%BE%D0%B2%D0%BD%D0%B0" title="Нарышкина, Наталья Кирилловна">Нарышкина, Наталья Кирилловна</a></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Дети:</th>
+<td><span class="no-wikidata" data-wikidata-property-id="P40"><i>от 1-го брака:</i> <a href="/wiki/%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Дмитрий Алексеевич">Дмитрий</a>, <a href="/wiki/%D0%95%D0%B2%D0%B4%D0%BE%D0%BA%D0%B8%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0" title="Евдокия Алексеевна">Евдокия</a>, <a href="/wiki/%D0%9C%D0%B0%D1%80%D1%84%D0%B0_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0" title="Марфа Алексеевна">Марфа</a>, <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Алексей Алексеевич">Алексей</a>, <a href="/wiki/%D0%90%D0%BD%D0%BD%D0%B0_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0" class="mw-redirect" title="Анна Алексеевна">Анна</a>, <a href="/wiki/%D0%A1%D0%BE%D1%84%D1%8C%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0" title="Софья Алексеевна">Софья</a>, <a href="/wiki/%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0" title="Екатерина Алексеевна">Екатерина</a>, <a href="/wiki/%D0%9C%D0%B0%D1%80%D0%B8%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0" title="Мария Алексеевна">Мария</a>, <a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_III_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Фёдор III Алексеевич">Фёдор</a>, <a href="/wiki/%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%81%D0%B8%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0" title="Феодосия Алексеевна">Феодосия</a>, <a href="/wiki/%D0%A1%D0%B8%D0%BC%D0%B5%D0%BE%D0%BD_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Симеон Алексеевич">Симеон</a>, <a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_V" title="Иван V">Иван</a>, <a href="/wiki/%D0%95%D0%B2%D0%B4%D0%BE%D0%BA%D0%B8%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0_(1669)" class="mw-redirect" title="Евдокия Алексеевна (1669)">Евдокия</a><br />
+<i>от 2-го брака:</i> <a href="/wiki/%D0%9F%D1%91%D1%82%D1%80_I" title="Пётр I">Пётр</a>, <a href="/wiki/%D0%9D%D0%B0%D1%82%D0%B0%D0%BB%D1%8C%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0_(%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%BD%D0%B0)" title="Наталья Алексеевна (царевна)">Наталья</a>, <a href="/wiki/%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80%D0%B0_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0_(%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%BD%D0%B0)" class="mw-redirect" title="Феодора Алексеевна (царевна)">Феодора</a></span></td>
+</tr>
+<tr>
+<td colspan="2" style="border-top: solid darkgray 1px; line-height:0px">&#160;</td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%; vertical-align: middle;">Автограф:</th>
+<td><span class="no-wikidata" data-wikidata-property-id="P109"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:%D0%90%D0%B2%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84_%D1%86%D0%B0%D1%80%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%8F_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87%D0%B0_%D0%A1%D1%8B%D1%82%D0%B8%D0%BD_3%D0%B2%D0%B5%D0%BA%D0%B0_1912.jpg" class="image"><img alt="Автограф царя Алексея Михайловича Сытин 3века 1912.jpg" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/41/%D0%90%D0%B2%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84_%D1%86%D0%B0%D1%80%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%8F_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87%D0%B0_%D0%A1%D1%8B%D1%82%D0%B8%D0%BD_3%D0%B2%D0%B5%D0%BA%D0%B0_1912.jpg/128px-%D0%90%D0%B2%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84_%D1%86%D0%B0%D1%80%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%8F_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87%D0%B0_%D0%A1%D1%8B%D1%82%D0%B8%D0%BD_3%D0%B2%D0%B5%D0%BA%D0%B0_1912.jpg" width="128" height="31" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/41/%D0%90%D0%B2%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84_%D1%86%D0%B0%D1%80%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%8F_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87%D0%B0_%D0%A1%D1%8B%D1%82%D0%B8%D0%BD_3%D0%B2%D0%B5%D0%BA%D0%B0_1912.jpg/192px-%D0%90%D0%B2%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84_%D1%86%D0%B0%D1%80%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%8F_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87%D0%B0_%D0%A1%D1%8B%D1%82%D0%B8%D0%BD_3%D0%B2%D0%B5%D0%BA%D0%B0_1912.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/41/%D0%90%D0%B2%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84_%D1%86%D0%B0%D1%80%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%8F_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87%D0%B0_%D0%A1%D1%8B%D1%82%D0%B8%D0%BD_3%D0%B2%D0%B5%D0%BA%D0%B0_1912.jpg/256px-%D0%90%D0%B2%D1%82%D0%BE%D0%B3%D1%80%D0%B0%D1%84_%D1%86%D0%B0%D1%80%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%8F_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87%D0%B0_%D0%A1%D1%8B%D1%82%D0%B8%D0%BD_3%D0%B2%D0%B5%D0%BA%D0%B0_1912.jpg 2x" data-file-width="11487" data-file-height="2752" /></a></span></td>
+</tr>
+<tr>
+<th colspan="2" class="metadata" style="text-align:center;">
+<div style="border: solid #ddd; border-width: 1px 0px 0px 0px;width:100%;background:#eaeaea"><span class="wikidata-claim" data-wikidata-property-id="P373" data-wikidata-claim-id="q7731$81B484E3-A5ED-41EE-99DE-0F31594A5928"><span class="wikidata-snak wikidata-main-snak"><b><a href="https://commons.wikimedia.org/wiki/Category:Alexis_I_of_Russia" title="commons:Category:Alexis I of Russia"><img alt="Commons-logo.svg" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/15px-Commons-logo.svg.png" width="15" height="20" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/23px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></a>&#160;<a href="https://commons.wikimedia.org/wiki/Category:Alexis_I_of_Russia" class="extiw" title="commons:Category:Alexis I of Russia">Алексей I Михайлович</a></b> на <a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D1%81%D0%BA%D0%BB%D0%B0%D0%B4" title="Викисклад">Викискладе</a></span></span></div>
+</th>
+</tr>
+</table>
+<p><b>Алексе́й Миха́йлович</b> <i>Тиша́йший</i><sup id="cite_ref-1" class="reference"><a href="#cite_note-1">[1]</a></sup> (<abbr title="по юлианскому календарю">17</abbr>&#160;<a href="/wiki/27_%D0%BC%D0%B0%D1%80%D1%82%D0%B0" title="27 марта">(27)&#160;марта</a>&#160;<a href="/wiki/1629_%D0%B3%D0%BE%D0%B4" title="1629 год">1629</a>&#160;— <abbr title="по юлианскому календарю">29&#160;января</abbr> (<a href="/wiki/8_%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F" title="8 февраля">8&#160;февраля</a>)&#160;<a href="/wiki/1676_%D0%B3%D0%BE%D0%B4" title="1676 год">1676</a>)&#160;— второй русский <a href="/wiki/%D0%A6%D0%B0%D1%80%D1%8C" title="Царь">царь</a> из династии <a href="/wiki/%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2%D1%8B" title="Романовы">Романовых</a> (<abbr title="14 июля по юлианскому календарю">14</abbr>&#160;(<a href="/wiki/24_%D0%B8%D1%8E%D0%BB%D1%8F" title="24 июля"><span title="24 июля по григорианскому календарю">24</span></a>)&#160;июля&#160;<a href="/wiki/1645_%D0%B3%D0%BE%D0%B4" title="1645 год">1645</a>&#160;— (<abbr title="по юлианскому календарю">29&#160;января</abbr>&#160;(<a href="/wiki/8_%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F" title="8 февраля"><span title="по григорианскому календарю">8&#160;февраля</span></a>)&#160;<a href="/wiki/1676_%D0%B3%D0%BE%D0%B4" title="1676 год">1676</a>), сын <a href="/wiki/%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87" title="Михаил Фёдорович">Михаила Фёдоровича</a> и его второй жены <a href="/wiki/%D0%A1%D1%82%D1%80%D0%B5%D1%88%D0%BD%D0%B5%D0%B2%D0%B0,_%D0%95%D0%B2%D0%B4%D0%BE%D0%BA%D0%B8%D1%8F_%D0%9B%D1%83%D0%BA%D1%8C%D1%8F%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0" title="Стрешнева, Евдокия Лукьяновна">Евдокии</a>.</p>
+<p></p>
+<div id="toc" class="toc">
+<div id="toctitle">
+<h2>Содержание</h2>
+</div>
+<ul>
+<li class="toclevel-1 tocsection-1"><a href="#.D0.91.D0.B8.D0.BE.D0.B3.D1.80.D0.B0.D1.84.D0.B8.D1.8F"><span class="tocnumber">1</span> <span class="toctext">Биография</span></a>
+<ul>
+<li class="toclevel-2 tocsection-2"><a href="#.D0.94.D0.B5.D1.82.D1.81.D1.82.D0.B2.D0.BE"><span class="tocnumber">1.1</span> <span class="toctext">Детство</span></a></li>
+<li class="toclevel-2 tocsection-3"><a href="#.D0.A5.D0.B0.D1.80.D0.B0.D0.BA.D1.82.D0.B5.D1.80_.D0.B8_.D1.83.D0.B2.D0.BB.D0.B5.D1.87.D0.B5.D0.BD.D0.B8.D1.8F_.D0.90.D0.BB.D0.B5.D0.BA.D1.81.D0.B5.D1.8F_.D0.9C.D0.B8.D1.85.D0.B0.D0.B9.D0.BB.D0.BE.D0.B2.D0.B8.D1.87.D0.B0"><span class="tocnumber">1.2</span> <span class="toctext">Характер и увлечения Алексея Михайловича</span></a></li>
+<li class="toclevel-2 tocsection-4"><a href="#.D0.A6.D0.B0.D1.80.D1.81.D1.82.D0.B2.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5"><span class="tocnumber">1.3</span> <span class="toctext">Царствование</span></a>
+<ul>
+<li class="toclevel-3 tocsection-5"><a href="#.D0.96.D0.B5.D0.BD.D0.B8.D1.82.D1.8C.D0.B1.D0.B0._.D0.91.D0.BE.D1.8F.D1.80.D0.B8.D0.BD_.D0.91.D0.BE.D1.80.D0.B8.D1.81_.D0.9C.D0.BE.D1.80.D0.BE.D0.B7.D0.BE.D0.B2"><span class="tocnumber">1.3.1</span> <span class="toctext">Женитьба. Боярин Борис Морозов</span></a></li>
+<li class="toclevel-3 tocsection-6"><a href="#.D0.9F.D0.B0.D1.82.D1.80.D0.B8.D0.B0.D1.80.D1.85_.D0.9D.D0.B8.D0.BA.D0.BE.D0.BD"><span class="tocnumber">1.3.2</span> <span class="toctext">Патриарх Никон</span></a></li>
+<li class="toclevel-3 tocsection-7"><a href="#.D0.92.D0.BE.D0.B5.D0.BD.D0.BD.D0.B0.D1.8F_.D1.80.D0.B5.D1.84.D0.BE.D1.80.D0.BC.D0.B0"><span class="tocnumber">1.3.3</span> <span class="toctext">Военная реформа</span></a></li>
+<li class="toclevel-3 tocsection-8"><a href="#.D0.94.D0.B5.D0.BB.D0.B0_.D0.BD.D0.B0_.D0.A3.D0.BA.D1.80.D0.B0.D0.B8.D0.BD.D0.B5._.D0.9F.D0.BE.D0.BB.D1.8C.D1.81.D0.BA.D0.B0.D1.8F_.D0.B2.D0.BE.D0.B9.D0.BD.D0.B0"><span class="tocnumber">1.3.4</span> <span class="toctext">Дела на Украине. Польская война</span></a></li>
+<li class="toclevel-3 tocsection-9"><a href="#.D0.9C.D0.BE.D0.BD.D0.B5.D1.82.D0.BD.D0.B0.D1.8F_.D1.80.D0.B5.D1.84.D0.BE.D1.80.D0.BC.D0.B0"><span class="tocnumber">1.3.5</span> <span class="toctext">Монетная реформа</span></a></li>
+<li class="toclevel-3 tocsection-10"><a href="#.D0.92.D0.BD.D1.83.D1.82.D1.80.D0.B5.D0.BD.D0.BD.D0.B8.D0.B5_.D0.B1.D0.B5.D1.81.D0.BF.D0.BE.D1.80.D1.8F.D0.B4.D0.BA.D0.B8"><span class="tocnumber">1.3.6</span> <span class="toctext">Внутренние беспорядки</span></a></li>
+<li class="toclevel-3 tocsection-11"><a href="#.D0.98.D1.82.D0.BE.D0.B3.D0.B8_.D1.86.D0.B0.D1.80.D1.81.D1.82.D0.B2.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D0.90.D0.BB.D0.B5.D0.BA.D1.81.D0.B5.D1.8F_.D0.9C.D0.B8.D1.85.D0.B0.D0.B9.D0.BB.D0.BE.D0.B2.D0.B8.D1.87.D0.B0"><span class="tocnumber">1.3.7</span> <span class="toctext">Итоги царствования Алексея Михайловича</span></a></li>
+<li class="toclevel-3 tocsection-12"><a href="#.D0.A1.D0.BC.D0.B5.D1.80.D1.82.D1.8C"><span class="tocnumber">1.3.8</span> <span class="toctext">Смерть</span></a></li>
+</ul>
+</li>
+<li class="toclevel-2 tocsection-13"><a href="#.D0.91.D1.80.D0.B0.D0.BA.D0.B8_.D0.B8_.D0.B4.D0.B5.D1.82.D0.B8"><span class="tocnumber">1.4</span> <span class="toctext">Браки и дети</span></a></li>
+</ul>
+</li>
+<li class="toclevel-1 tocsection-14"><a href="#.D0.9F.D1.80.D0.B5.D0.B4.D0.BA.D0.B8"><span class="tocnumber">2</span> <span class="toctext">Предки</span></a></li>
+<li class="toclevel-1 tocsection-15"><a href="#.D0.98.D0.BD.D1.82.D0.B5.D1.80.D0.B5.D1.81.D0.BD.D1.8B.D0.B5_.D1.84.D0.B0.D0.BA.D1.82.D1.8B"><span class="tocnumber">3</span> <span class="toctext">Интересные факты</span></a></li>
+<li class="toclevel-1 tocsection-16"><a href="#.D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5"><span class="tocnumber">4</span> <span class="toctext">См. также</span></a></li>
+<li class="toclevel-1 tocsection-17"><a href="#.D0.9F.D0.B0.D0.BC.D1.8F.D1.82.D0.BD.D0.B8.D0.BA.D0.B8"><span class="tocnumber">5</span> <span class="toctext">Памятники</span></a></li>
+<li class="toclevel-1 tocsection-18"><a href="#.D0.9A.D0.B8.D0.BD.D0.B5.D0.BC.D0.B0.D1.82.D0.BE.D0.B3.D1.80.D0.B0.D1.84"><span class="tocnumber">6</span> <span class="toctext">Кинематограф</span></a></li>
+<li class="toclevel-1 tocsection-19"><a href="#.D0.92.D0.B0.D0.B6.D0.BD.D0.B5.D0.B9.D1.88.D0.B8.D0.B5_.D1.81.D0.BE.D1.87.D0.B8.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D0.BF.D0.BE_.D0.B8.D1.81.D1.82.D0.BE.D1.80.D0.B8.D0.B8_.D1.86.D0.B0.D1.80.D1.81.D1.82.D0.B2.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D1.86.D0.B0.D1.80.D1.8F_.D0.90.D0.BB.D0.B5.D0.BA.D1.81.D0.B5.D1.8F"><span class="tocnumber">7</span> <span class="toctext">Важнейшие сочинения по истории царствования царя Алексея</span></a></li>
+<li class="toclevel-1 tocsection-20"><a href="#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.87.D0.B0.D0.BD.D0.B8.D1.8F"><span class="tocnumber">8</span> <span class="toctext">Примечания</span></a></li>
+<li class="toclevel-1 tocsection-21"><a href="#.D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8"><span class="tocnumber">9</span> <span class="toctext">Ссылки</span></a></li>
+</ul>
+</div>
+<p></p>
+<h2><span class="mw-headline" id=".D0.91.D0.B8.D0.BE.D0.B3.D1.80.D0.B0.D1.84.D0.B8.D1.8F">Биография</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=1" class="mw-editsection-visualeditor" title="Редактировать раздел «Биография»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=1" title="Редактировать раздел «Биография»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<p>«<a href="/wiki/%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9_%D0%BB%D0%B5%D1%82%D0%BE%D0%BF%D0%B8%D1%81%D0%B5%D1%86" title="Новый летописец">Новый летописец</a>» о его рождении сообщает<sup id="cite_ref-2" class="reference"><a href="#cite_note-2">[2]</a></sup>:</p>
+<blockquote>
+<p>В лето 7137 (1629) году, марта в 17-й день, родился у государя царя и великого князя Михаила Федоровича всея Русии благочестивый царевич князь Алексей Михайлович всея Русии, и крещен был в Чудовом монастыре, а крестил его, государя, сам святейший патриарх Филарет Никитич московский и всея Русии, а отец крестный [был] троицкий келарь Александр.</p>
+</blockquote>
+<p>Небесным покровителем мальчика по святцам стал <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9,_%D1%87%D0%B5%D0%BB%D0%BE%D0%B2%D0%B5%D0%BA_%D0%91%D0%BE%D0%B6%D0%B8%D0%B9" title="Алексий, человек Божий">Алексий, человек Божий</a>.</p>
+<h3><span class="mw-headline" id=".D0.94.D0.B5.D1.82.D1.81.D1.82.D0.B2.D0.BE">Детство</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=2" class="mw-editsection-visualeditor" title="Редактировать раздел «Детство»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=2" title="Редактировать раздел «Детство»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h3>
+<p>До пятилетнего возраста молодой царевич Алексей оставался на попечении у царских «мам». С пяти лет под надзором <a href="/wiki/%D0%9C%D0%BE%D1%80%D0%BE%D0%B7%D0%BE%D0%B2,_%D0%91%D0%BE%D1%80%D0%B8%D1%81_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Морозов, Борис Иванович">Б.&#160;И.&#160;Морозова</a> он стал учиться грамоте по букварю, затем приступил к чтению <a href="/wiki/%D0%A7%D0%B0%D1%81%D0%BE%D1%81%D0%BB%D0%BE%D0%B2" title="Часослов">Часослова</a>, <a href="/wiki/%D0%9F%D1%81%D0%B0%D0%BB%D1%82%D0%B8%D1%80%D1%8C" title="Псалтирь">Псалтыри</a> и <a href="/wiki/%D0%94%D0%B5%D1%8F%D0%BD%D0%B8%D1%8F_%D1%81%D0%B2%D1%8F%D1%82%D1%8B%D1%85_%D0%B0%D0%BF%D0%BE%D1%81%D1%82%D0%BE%D0%BB%D0%BE%D0%B2" title="Деяния святых апостолов">Деяний святых апостолов</a>, в семь лет начал обучаться письму, а в девять&#160;— церковному пению. С течением времени у ребёнка (11—13 лет) составилась маленькая библиотека; из книг, ему принадлежавших, упоминаются, среди прочего, «Лексикон» и «Грамматика», изданные в <a href="/wiki/%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%BE%D0%B5_%D0%BA%D0%BD%D1%8F%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%BE_%D0%9B%D0%B8%D1%82%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B5" title="Великое княжество Литовское">Литве</a>, а также «<a href="/wiki/%D0%9A%D0%BE%D1%81%D0%BC%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F" title="Космография">Космография</a>». В числе предметов «детской потехи» будущего царя встречаются: конь и детские <a href="/wiki/%D0%9B%D0%B0%D1%82%D1%8B" title="Латы">латы</a> «немецкого дела», музыкальные инструменты, немецкие карты и «печатные листы» (картинки). Таким образом, наряду с прежними образовательными средствами, заметны и нововведения, которые сделаны были не без прямого влияния Б.&#160;И.&#160;Морозова. Последний, как известно, одел в первый раз молодого царя с братом и другими детьми в немецкое платье. На 14-м году жизни царевича торжественно «объявили» народу, а в возрасте 16 лет он вступил на московский престол.</p>
+<h3><span class="mw-headline" id=".D0.A5.D0.B0.D1.80.D0.B0.D0.BA.D1.82.D0.B5.D1.80_.D0.B8_.D1.83.D0.B2.D0.BB.D0.B5.D1.87.D0.B5.D0.BD.D0.B8.D1.8F_.D0.90.D0.BB.D0.B5.D0.BA.D1.81.D0.B5.D1.8F_.D0.9C.D0.B8.D1.85.D0.B0.D0.B9.D0.BB.D0.BE.D0.B2.D0.B8.D1.87.D0.B0">Характер и увлечения Алексея Михайловича</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=3" class="mw-editsection-visualeditor" title="Редактировать раздел «Характер и увлечения Алексея Михайловича»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=3" title="Редактировать раздел «Характер и увлечения Алексея Михайловича»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h3>
+<p>Со вступлением на престол царь Алексей стал лицом к лицу с целым рядом вопросов, волновавших русскую жизнь <a href="/wiki/XVII_%D0%B2%D0%B5%D0%BA" title="XVII век">XVII века</a>. Малоподготовленный к разрешению такого рода вопросов, он первоначально прислушивался к мнению бывшего своего дядьки <a href="/wiki/%D0%9C%D0%BE%D1%80%D0%BE%D0%B7%D0%BE%D0%B2,_%D0%91%D0%BE%D1%80%D0%B8%D1%81_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Морозов, Борис Иванович">Б.&#160;И.&#160;Морозова</a>, но вскоре и сам стал принимать самостоятельное участие в делах. В этой деятельности окончательно сложились основные черты его характера. Самодержавный московский царь, судя по его собственным письмам, иностранцев (<a href="/wiki/%D0%9C%D0%B5%D0%B9%D0%B5%D1%80%D0%B1%D0%B5%D1%80%D0%B3,_%D0%90%D0%B2%D0%B3%D1%83%D1%81%D1%82%D0%B8%D0%BD" title="Мейерберг, Августин">А. Мейерберга</a>, <a href="/wiki/%D0%9A%D0%BE%D0%BB%D0%BB%D0%B8%D0%BD%D0%B7,_%D0%A1%D1%8D%D0%BC%D1%8E%D1%8D%D0%BB" title="Коллинз, Сэмюэл">С. Коллинза</a>, <a href="/wiki/%D0%A0%D0%B5%D0%B9%D1%82%D0%B5%D0%BD%D1%84%D0%B5%D0%BB%D1%8C%D1%81,_%D0%AF%D0%BA%D0%BE%D0%B2" title="Рейтенфельс, Яков">Я. Рейтенфельса</a>, <a href="/w/index.php?title=%D0%9B%D0%B8%D0%B7%D0%B5%D0%BA,_%D0%90%D0%B4%D0%BE%D0%BB%D1%8C%D1%84&amp;action=edit&amp;redlink=1" class="new" title="Лизек, Адольф (страница отсутствует)">А. Лизека</a>) и отношениям его к окружавшим, обладал замечательно мягким, добродушным характером, был, по словам <a href="/wiki/%D0%9A%D0%BE%D1%82%D0%BE%D1%88%D0%B8%D1%85%D0%B8%D0%BD,_%D0%93%D1%80%D0%B8%D0%B3%D0%BE%D1%80%D0%B8%D0%B9_%D0%9A%D0%B0%D1%80%D0%BF%D0%BE%D0%B2%D0%B8%D1%87" title="Котошихин, Григорий Карпович">Г.&#160;К.&#160;Котошихина</a>, «гораздо тихим». Духовная атмосфера, среди которой жил царь Алексей, его воспитание, характер и чтение церковных книг развили в нём религиозность. По понедельникам, средам и пятницам царь во все <a href="/wiki/%D0%9F%D0%BE%D1%81%D1%82_%D0%B2_%D1%85%D1%80%D0%B8%D1%81%D1%82%D0%B8%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%B5" title="Пост в христианстве">посты</a> ничего не пил и не ел, и вообще был ревностным исполнителем <a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B1%D0%B0_(%D1%86%D0%B5%D1%80%D0%BA%D0%BE%D0%B2%D0%BD%D0%B0%D1%8F)" class="mw-redirect" title="Служба (церковная)">церковных обрядов</a>. К почитанию внешнего обряда присоединялось и внутреннее религиозное чувство, которое развивало у царя Алексея христианское смирение. <i>«А мне грешному,</i>&#160;— пишет он,&#160;— <i>здешняя честь, аки прах»</i>. Царское добродушие и смирение иногда, однако, сменялись кратковременными вспышками гнева. Однажды царь, которому <a href="/wiki/%D0%9A%D1%80%D0%BE%D0%B2%D0%BE%D0%BF%D1%83%D1%81%D0%BA%D0%B0%D0%BD%D0%B8%D0%B5" title="Кровопускание">пускал кровь</a> немецкий «дохтур», велел боярам испробовать то же средство. <a href="/wiki/%D0%A1%D1%82%D1%80%D0%B5%D1%88%D0%BD%D0%B5%D0%B2,_%D0%A0%D0%BE%D0%B4%D0%B8%D0%BE%D0%BD_%D0%9C%D0%B0%D1%82%D0%B2%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Стрешнев, Родион Матвеевич">Родион Стрешнев</a> не согласился. Царь Алексей собственноручно «смирил» старика, но затем не знал, какими подарками его задобрить.</p>
+<p><a href="/wiki/%D0%9A%D0%BE%D0%BB%D0%BB%D0%B8%D0%BD%D0%B7,_%D0%A1%D1%8D%D0%BC%D1%8E%D1%8D%D0%BB" title="Коллинз, Сэмюэл">Сэмюэль Коллинз</a>&#160;— английский врач при царском дворе&#160;— сообщал:</p>
+<blockquote>
+<p>Забава его состоит в соколиной и псовой охоте. Он содержит больше трёхсот смотрителей за соколами и имеет лучших кречетов в свете, которые привозятся из Сибири и бьют уток и другую дичь. Он охотится на медведей, волков, тигров, лисиц или, лучше сказать, травит их собаками. Когда он выезжает, Восточные ворота и внутренняя стена города запираются до его возвращения. Он редко посещает своих подданных… Когда Царь отправляется за город или в поле для увеселений, он строго приказывает, чтобы никто не беспокоил его просьбами.</p>
+</blockquote>
+<div class="thumb tleft">
+<div class="thumbinner" style="width:202px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Letter_of_Alexis_of_Russia.JPG" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Letter_of_Alexis_of_Russia.JPG/200px-Letter_of_Alexis_of_Russia.JPG" width="200" height="352" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Letter_of_Alexis_of_Russia.JPG/300px-Letter_of_Alexis_of_Russia.JPG 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/4d/Letter_of_Alexis_of_Russia.JPG/400px-Letter_of_Alexis_of_Russia.JPG 2x" data-file-width="678" data-file-height="1193" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Letter_of_Alexis_of_Russia.JPG" class="internal" title="Увеличить"></a></div>
+Письмо царя Алексея Михайловича своему двоюродному брату стольнику <a href="/wiki/%D0%9C%D0%B0%D1%82%D1%8E%D1%88%D0%BA%D0%B8%D0%BD,_%D0%90%D1%84%D0%B0%D0%BD%D0%B0%D1%81%D0%B8%D0%B9_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Матюшкин, Афанасий Иванович">Афанасию Матюшкину</a>, писанное тайнописью (<a href="/wiki/%D0%9B%D0%B8%D1%82%D0%BE%D1%80%D0%B5%D1%8F" title="Литорея">тарабарщиной</a>)</div>
+</div>
+</div>
+<p>Вообще царь умел отзываться на чужое горе и радость; замечательны в этом отношении его письма к <a href="/wiki/%D0%9E%D1%80%D0%B4%D0%B8%D0%BD-%D0%9D%D0%B0%D1%89%D0%BE%D0%BA%D0%B8%D0%BD,_%D0%90%D1%84%D0%B0%D0%BD%D0%B0%D1%81%D0%B8%D0%B9_%D0%9B%D0%B0%D0%B2%D1%80%D0%B5%D0%BD%D1%82%D1%8C%D0%B5%D0%B2%D0%B8%D1%87" title="Ордин-Нащокин, Афанасий Лаврентьевич">А.&#160;Л.&#160;Ордину-Нащокину</a> и князю <a href="/wiki/%D0%9E%D0%B4%D0%BE%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9,_%D0%9D%D0%B8%D0%BA%D0%B8%D1%82%D0%B0_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Одоевский, Никита Иванович">Н.&#160;И.&#160;Одоевскому</a>. Мало тёмных сторон можно отметить в характере царя Алексея. Он обладал скорее созерцательной, пассивной, а не практической, активной натурой. Он стоял на перекрёстке между двумя направлениями, старорусским и западническим, примерял их в своём мировоззрении, но не предавался ни тому, ни другому со страстной энергией <a href="/wiki/%D0%9F%D1%91%D1%82%D1%80_I" title="Пётр I">Петра</a>. Царь был не только умным, но и образованным человеком своего века. Он много читал, писал письма, составил «<a href="/w/index.php?title=%D0%A3%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D0%BE%D0%BA%D0%BE%D0%BB%D1%8C%D0%BD%D0%B8%D1%87%D1%8C%D1%8F_%D0%BF%D1%83%D1%82%D0%B8&amp;action=edit&amp;redlink=1" class="new" title="Уложение сокольничья пути (страница отсутствует)">Уложение сокольничья пути</a>», пробовал писать свои воспоминания о польской войне, упражнялся в версификации (стихосложении). Он был человеком порядка по преимуществу; «<i>делу время и потехе час</i>» (то есть всему своё время)&#160;— писал он; или: «<i>без чина же всякая вещь не утвердится и не укрепится</i>».</p>
+<p>Известно, что Алексей Михайлович лично занимался вопросами организации армии. Сохранилось <a href="/wiki/%D0%A0%D0%B5%D0%B9%D1%82%D0%B0%D1%80%D1%8B#.D0.A0.D0.B5.D0.B9.D1.82.D0.B0.D1.80.D1.8B_.D0.B2_.D0.A0.D0.BE.D1.81.D1.81.D0.B8.D0.B8" title="Рейтары">штатное расписание рейтарского полка</a>, выполненное самим государем<sup id="cite_ref-3" class="reference"><a href="#cite_note-3">[3]</a></sup>. Секретарь датского посольства Андрей Роде, свидетельствует, что государь занимался и артиллерией. Как записал он в своем дневнике: (11 апреля 1659 года <i>«Полковник (<a href="/wiki/%D0%91%D0%B0%D1%83%D0%BC%D0%B0%D0%BD,_%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_(%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D0%BB)" title="Бауман, Николай (генерал)">Бауман</a>) показал нам тоже чертеж пушки, которую изобрел сам великий князь (царь Алексей Михайлович)»</i><sup id="cite_ref-4" class="reference"><a href="#cite_note-4">[4]</a></sup>. Алексей Михайлович очень интересовался европейской прессой, с которой знакомился по переводам, выполненным в <a href="/wiki/%D0%9F%D0%BE%D1%81%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9_%D0%BF%D1%80%D0%B8%D0%BA%D0%B0%D0%B7" title="Посольский приказ">Посольском приказе</a>. Одну из статей (о том, что <a href="/wiki/%D0%90%D0%BD%D0%B3%D0%BB%D0%B8%D0%B9%D1%81%D0%BA%D0%B0%D1%8F_%D1%80%D0%B5%D0%B2%D0%BE%D0%BB%D1%8E%D1%86%D0%B8%D1%8F" title="Английская революция">свергшие и казнившие своего короля англичане</a> сильно жалеют об этом) царь лично зачёл боярам на заседании <a href="/wiki/%D0%91%D0%BE%D1%8F%D1%80%D1%81%D0%BA%D0%B0%D1%8F_%D0%B4%D1%83%D0%BC%D0%B0" title="Боярская дума">Боярской думы</a>. С 1659&#160;г. Алексей Михайлович пытался наладить регулярную доставку в Россию иностранных газет. В 1665&#160;г. с этой целью была организована первая регулярная почтовая линия, связавшая Москву с <a href="/wiki/%D0%A0%D0%B8%D0%B3%D0%B0" title="Рига">Ригой</a>, а через неё с общеевропейской почтовой системой<sup id="cite_ref-5" class="reference"><a href="#cite_note-5">[5]</a></sup>. Царь проявлял большой интерес к разным системам <a href="/wiki/%D0%A2%D0%B0%D0%B9%D0%BD%D0%BE%D0%BF%D0%B8%D1%81%D1%8C" class="mw-redirect" title="Тайнопись">тайнописи</a>. Вновь разработанные <a href="/wiki/%D0%A8%D0%B8%D1%84%D1%80" title="Шифр">шифры</a> использовали в дипломатической практике. В <a href="/wiki/%D0%9F%D1%80%D0%B8%D0%BA%D0%B0%D0%B7_%D1%82%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%B4%D0%B5%D0%BB" title="Приказ тайных дел">приказе Тайных дел</a> хранились прорисовки <a href="/wiki/%D0%95%D0%B3%D0%B8%D0%BF%D0%B5%D1%82%D1%81%D0%BA%D0%BE%D0%B5_%D0%B8%D0%B5%D1%80%D0%BE%D0%B3%D0%BB%D0%B8%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE" title="Египетское иероглифическое письмо">египетских иероглифов</a>, выполненных по книге египтолога <a href="/wiki/%D0%9A%D0%B8%D1%80%D1%85%D0%B5%D1%80,_%D0%90%D1%84%D0%B0%D0%BD%D0%B0%D1%81%D0%B8%D0%B9" title="Кирхер, Афанасий">А. Кирхера</a><sup id="cite_ref-6" class="reference"><a href="#cite_note-6">[6]</a></sup>. В круг интересов царя входила <a href="/wiki/%D0%90%D1%81%D1%82%D1%80%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F" title="Астрология">астрология</a>. Следуя советам своего врача Сэмуэля Коллинза, он позволял на основе рекомендаций медицинской астрологии пускать себе кровь<sup id="cite_ref-7" class="reference"><a href="#cite_note-7">[7]</a></sup>. Алексей Михайлович был настолько увлечен звёздным небом, что в начале 1670-х гг. он, через руководившего Посольским приказом <a href="/wiki/%D0%9C%D0%B0%D1%82%D0%B2%D0%B5%D0%B5%D0%B2,_%D0%90%D1%80%D1%82%D0%B0%D0%BC%D0%BE%D0%BD_%D0%A1%D0%B5%D1%80%D0%B3%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Матвеев, Артамон Сергеевич">А.&#160;С.&#160;Матвеева</a>, попросил датского резидента достать ему телескоп<sup id="cite_ref-8" class="reference"><a href="#cite_note-8">[8]</a></sup>. В последние годы жизни царь увлекся европейской музыкой. (<abbr title="21 октября по юлианскому календарю">21</abbr>&#160;(<a href="/wiki/31_%D0%BE%D0%BA%D1%82%D1%8F%D0%B1%D1%80%D1%8F" title="31 октября"><span title="31 октября по григорианскому календарю">31</span></a>)&#160;октября&#160;<a href="/wiki/1674_%D0%B3%D0%BE%D0%B4" title="1674 год">1674</a> г. Алексей Михайлович устроил для себя и ближних людей пир, который сопровождался очень необычной потехой: «Играл в арганы немчин, и в <a href="/wiki/%D0%A1%D1%83%D1%80%D0%BD%D0%B0" class="mw-redirect" title="Сурна">сурну</a>, и в трубы трубили, и в суренки играли, и по накрам, и по литаврам били ж во все»<sup id="cite_ref-9" class="reference"><a href="#cite_note-9">[9]</a></sup>.</p>
+<h3><span class="mw-headline" id=".D0.A6.D0.B0.D1.80.D1.81.D1.82.D0.B2.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5">Царствование</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=4" class="mw-editsection-visualeditor" title="Редактировать раздел «Царствование»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=4" title="Редактировать раздел «Царствование»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h3>
+<div class="thumb tleft">
+<div class="thumbinner" style="width:202px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:1000_Alex_Mikh.jpg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/cf/1000_Alex_Mikh.jpg/200px-1000_Alex_Mikh.jpg" width="200" height="297" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/cf/1000_Alex_Mikh.jpg/300px-1000_Alex_Mikh.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/cf/1000_Alex_Mikh.jpg/400px-1000_Alex_Mikh.jpg 2x" data-file-width="628" data-file-height="933" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:1000_Alex_Mikh.jpg" class="internal" title="Увеличить"></a></div>
+Алексей Михайлович на <a href="/wiki/%D0%A2%D1%8B%D1%81%D1%8F%D1%87%D0%B5%D0%BB%D0%B5%D1%82%D0%B8%D0%B5_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8_(%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%BD%D0%B8%D0%BA)" class="mw-redirect" title="Тысячелетие России (памятник)">Памятнике «1000-летие России»</a> в <a href="/wiki/%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%B8%D0%B9_%D0%9D%D0%BE%D0%B2%D0%B3%D0%BE%D1%80%D0%BE%D0%B4" title="Великий Новгород">Великом Новгороде</a></div>
+</div>
+</div>
+<h4><span class="mw-headline" id=".D0.96.D0.B5.D0.BD.D0.B8.D1.82.D1.8C.D0.B1.D0.B0._.D0.91.D0.BE.D1.8F.D1.80.D0.B8.D0.BD_.D0.91.D0.BE.D1.80.D0.B8.D1.81_.D0.9C.D0.BE.D1.80.D0.BE.D0.B7.D0.BE.D0.B2">Женитьба. Боярин Борис Морозов</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=5" class="mw-editsection-visualeditor" title="Редактировать раздел «Женитьба. Боярин Борис Морозов»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=5" title="Редактировать раздел «Женитьба. Боярин Борис Морозов»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h4>
+<p>Молодой царь сильно подчинился влиянию <a href="/wiki/%D0%9C%D0%BE%D1%80%D0%BE%D0%B7%D0%BE%D0%B2,_%D0%91%D0%BE%D1%80%D0%B8%D1%81_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Морозов, Борис Иванович">Бориса Морозова</a>. Задумав жениться, он в 1647 году выбрал на <a href="/wiki/%D0%A1%D0%BC%D0%BE%D1%82%D1%80_%D0%BD%D0%B5%D0%B2%D0%B5%D1%81%D1%82" title="Смотр невест">смотре невест</a> себе в жены <a href="/wiki/%D0%92%D1%81%D0%B5%D0%B2%D0%BE%D0%BB%D0%BE%D0%B6%D1%81%D0%BA%D0%B0%D1%8F,_%D0%95%D0%B2%D1%84%D0%B8%D0%BC%D0%B8%D1%8F_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%BD%D0%B0" title="Всеволожская, Евфимия Фёдоровна">Евфимию</a>, дочь <a href="/wiki/%D0%92%D1%81%D0%B5%D0%B2%D0%BE%D0%BB%D0%BE%D0%B6%D1%81%D0%BA%D0%B8%D0%B9,_%D0%A0%D0%B0%D1%84_%D0%A0%D0%BE%D0%B4%D0%B8%D0%BE%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Всеволожский, Раф Родионович">Рафа Всеволожского</a>, но отказался от своего выбора благодаря интригам, в которые, вероятно, замешан был сам Б.&#160;И.&#160;Морозов. В 1648 году, 16 (26 по новому стилю) января, царь заключил брак с <a href="/wiki/%D0%9C%D0%B8%D0%BB%D0%BE%D1%81%D0%BB%D0%B0%D0%B2%D1%81%D0%BA%D0%B0%D1%8F,_%D0%9C%D0%B0%D1%80%D0%B8%D1%8F_%D0%98%D0%BB%D1%8C%D0%B8%D0%BD%D0%B8%D1%87%D0%BD%D0%B0" title="Милославская, Мария Ильинична">Марьей Ильиничной Милославской</a>; вскоре за тем Б.&#160;И.&#160;Морозов женился на её сестре Анне. Таким образом Б.&#160;И.&#160;Морозов и его тесть <a href="/wiki/%D0%9C%D0%B8%D0%BB%D0%BE%D1%81%D0%BB%D0%B0%D0%B2%D1%81%D0%BA%D0%B8%D0%B9,_%D0%98%D0%BB%D1%8C%D1%8F_%D0%94%D0%B0%D0%BD%D0%B8%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" title="Милославский, Илья Данилович">И.&#160;Д.&#160;Милославский</a> приобрели первенствующее значение при дворе. К этому времени, однако, уже ясно обнаружились результаты плохого внутреннего управления Б.&#160;И.&#160;Морозова. Царским указом и боярским приговором (<abbr title="7 февраля по юлианскому календарю">7</abbr>&#160;(<a href="/wiki/17_%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F" title="17 февраля"><span title="17 февраля по григорианскому календарю">17</span></a>)&#160;февраля&#160;<a href="/wiki/1646_%D0%B3%D0%BE%D0%B4" title="1646 год">1646</a> г. установлена была новая <a href="/wiki/%D0%A1%D0%BE%D0%BB%D1%8F%D0%BD%D0%BE%D0%B9_%D0%BD%D0%B0%D0%BB%D0%BE%D0%B3" title="Соляной налог">пошлина на соль</a>. Эта пошлина заменила не только прежнюю соляную пошлину, но и ямские и стрелецкие деньги; она превосходила рыночную цену соли&#160;— главнейшего предмета потребления&#160;— приблизительно в 1⅓ раза и вызвала сильное недовольство со стороны населения. К этому присоединились злоупотребления И.&#160;Д.&#160;Милославского и молва о пристрастии царя и правителя к иностранным обычаям. Все эти причины вызвали народный бунт (<a href="/wiki/%D0%A1%D0%BE%D0%BB%D1%8F%D0%BD%D0%BE%D0%B9_%D0%B1%D1%83%D0%BD%D1%82" title="Соляной бунт">Соляной бунт</a>) в <a href="/wiki/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0" title="Москва">Москве</a> и беспорядки в других городах; (<abbr title="1 июня по юлианскому календарю">1</abbr>&#160;(<a href="/wiki/11_%D0%B8%D1%8E%D0%BD%D1%8F" title="11 июня"><span title="11 июня по григорианскому календарю">11</span></a>)&#160;июня&#160;<a href="/wiki/1648_%D0%B3%D0%BE%D0%B4" title="1648 год">1648</a> года народ стал требовать у царя выдачи Б. Морозова, затем разграбил его дом и убил <a href="/wiki/%D0%9E%D0%BA%D0%BE%D0%BB%D1%8C%D0%BD%D0%B8%D1%87%D0%B8%D0%B9" title="Окольничий">окольничего</a> <a href="/wiki/%D0%9F%D0%BB%D0%B5%D1%89%D0%B5%D0%B5%D0%B2,_%D0%9B%D0%B5%D0%BE%D0%BD%D1%82%D0%B8%D0%B9_%D0%A1%D1%82%D0%B5%D0%BF%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Плещеев, Леонтий Степанович">Плещеева</a> и <a href="/wiki/%D0%94%D1%83%D0%BC%D0%BD%D1%8B%D0%B9_%D0%B4%D1%8C%D1%8F%D0%BA" title="Думный дьяк">думного дьяка</a> <a href="/w/index.php?title=%D0%A7%D0%B8%D1%81%D1%82%D0%BE%D0%B9,_%D0%9D%D0%B0%D0%B7%D0%B0%D1%80%D0%B8%D0%B9_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;redlink=1" class="new" title="Чистой, Назарий Иванович (страница отсутствует)">Чистого</a>. Царь поспешил тайно отправить любимого им Б.&#160;И.&#160;Морозова в <a href="/wiki/%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%BE-%D0%91%D0%B5%D0%BB%D0%BE%D0%B7%D0%B5%D1%80%D1%81%D0%BA%D0%B8%D0%B9_%D0%BC%D0%BE%D0%BD%D0%B0%D1%81%D1%82%D1%8B%D1%80%D1%8C" title="Кирилло-Белозерский монастырь">Кирилло-Белозерский монастырь</a>, а народу выдал окольничего Траханиотова. Новая пошлина на соль отменена была в том же году. После того, как народное волнение стихло, Морозов вернулся ко двору, пользовался царским расположением, но не имел первенствующего значения в управлении.</p>
+<h4><span class="mw-headline" id=".D0.9F.D0.B0.D1.82.D1.80.D0.B8.D0.B0.D1.80.D1.85_.D0.9D.D0.B8.D0.BA.D0.BE.D0.BD">Патриарх Никон</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=6" class="mw-editsection-visualeditor" title="Редактировать раздел «Патриарх Никон»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=6" title="Редактировать раздел «Патриарх Никон»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h4>
+<div class="thumb tleft">
+<div class="thumbinner" style="width:212px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:PhilipandNikon.jpg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/f5/PhilipandNikon.jpg/210px-PhilipandNikon.jpg" width="210" height="258" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/f5/PhilipandNikon.jpg/315px-PhilipandNikon.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/f5/PhilipandNikon.jpg/420px-PhilipandNikon.jpg 2x" data-file-width="1500" data-file-height="1842" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:PhilipandNikon.jpg" class="internal" title="Увеличить"></a></div>
+<center>Алексей Михайлович и Никон перед гробницей святителя <a href="/wiki/%D0%A4%D0%B8%D0%BB%D0%B8%D0%BF%D0%BF_(%D0%9A%D0%BE%D0%BB%D1%8B%D1%87%D1%91%D0%B2)" class="mw-redirect" title="Филипп (Колычёв)">Филиппа</a></center>
+</div>
+</div>
+</div>
+<div class="dablink noprint">Основная статья: <b><a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BD_(%D0%9F%D0%B0%D1%82%D1%80%D0%B8%D0%B0%D1%80%D1%85_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" class="mw-redirect" title="Никон (Патриарх Московский)">Никон (Патриарх Московский)</a></b></div>
+<table align="right" cellspacing="1" style="font-size: 85%; background:#ffcc99; margin-left: 1em; margin-bottom: 0.5em; line-height: 17px;">
+<tr>
+<td align="center"><b>Династия <a href="/wiki/%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2%D1%8B" title="Романовы">Романовых</a> (до Петра III)</b></td>
+</tr>
+<tr>
+<td>
+<table>
+<tr>
+<td><a href="/wiki/%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD_%D0%AE%D1%80%D1%8C%D0%B5%D0%B2%D0%B8%D1%87_%D0%97%D0%B0%D1%85%D0%B0%D1%80%D1%8C%D0%B8%D0%BD" class="mw-redirect" title="Роман Юрьевич Захарьин">Роман Юрьевич Захарьин</a>
+<table>
+<tr>
+<td bgcolor="#CCCCCC" rowspan="4"></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%97%D0%B0%D1%85%D0%B0%D1%80%D1%8C%D0%B8%D0%BD%D0%B0-%D0%AE%D1%80%D1%8C%D0%B5%D0%B2%D0%B0,_%D0%90%D0%BD%D0%B0%D1%81%D1%82%D0%B0%D1%81%D0%B8%D1%8F_%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0" title="Захарьина-Юрьева, Анастасия Романовна">Анастасия</a>,<br />
+жена <a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_%D0%93%D1%80%D0%BE%D0%B7%D0%BD%D1%8B%D0%B9" title="Иван Грозный">Ивана IV Грозного</a>
+<table>
+<tr>
+<td bgcolor="#CCCCCC" rowspan="4"></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_I_%D0%98%D0%BE%D0%B0%D0%BD%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" class="mw-redirect" title="Фёдор I Иоаннович">Фёдор I Иоаннович</a></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%97%D0%B0%D1%85%D0%B0%D1%80%D1%8C%D0%B8%D0%BD,_%D0%9D%D0%B8%D0%BA%D0%B8%D1%82%D0%B0_%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Захарьин, Никита Романович">Никита Романович</a>
+<table>
+<tr>
+<td bgcolor="#CCCCCC" rowspan="5"></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%A4%D0%B8%D0%BB%D0%B0%D1%80%D0%B5%D1%82_(%D0%9F%D0%B0%D1%82%D1%80%D0%B8%D0%B0%D1%80%D1%85_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" class="mw-redirect" title="Филарет (Патриарх Московский)">Фёдор Никитич<br />
+(патриарх Филарет)</a>
+<table>
+<tr>
+<td bgcolor="#CCCCCC" rowspan="4"></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87" title="Михаил Фёдорович">Михаил Фёдорович</a>
+<table>
+<tr>
+<td bgcolor="#CCCCCC" rowspan="4"></td>
+</tr>
+<tr>
+<td><strong class="selflink">Алексей Михайлович</strong>
+<table>
+<tr>
+<td bgcolor="#CCCCCC" rowspan="6"></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Алексей Алексеевич">Алексей Алексеевич</a></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%A1%D0%BE%D1%84%D1%8C%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0" title="Софья Алексеевна">Софья Алексеевна</a></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_III_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Фёдор III Алексеевич">Фёдор III</a></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_V" title="Иван V">Иван V</a>
+<table>
+<tr>
+<td bgcolor="#CCCCCC" rowspan="4"></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%90%D0%BD%D0%BD%D0%B0_%D0%98%D0%BE%D0%B0%D0%BD%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0" title="Анна Иоанновна">Анна Иоанновна</a></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0_%D0%98%D0%BE%D0%B0%D0%BD%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0" title="Екатерина Иоанновна">Екатерина Иоанновна</a>
+<table>
+<tr>
+<td bgcolor="#CCCCCC" rowspan="4"></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%90%D0%BD%D0%BD%D0%B0_%D0%9B%D0%B5%D0%BE%D0%BF%D0%BE%D0%BB%D1%8C%D0%B4%D0%BE%D0%B2%D0%BD%D0%B0" title="Анна Леопольдовна">Анна Леопольдовна</a>
+<table>
+<tr>
+<td bgcolor="#CCCCCC" rowspan="4"></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_VI" title="Иван VI">Иван VI</a></td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%9F%D1%91%D1%82%D1%80_I" title="Пётр I">Пётр I Великий</a><br />
+(2-я жена <a href="/wiki/%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0_I" title="Екатерина I">Екатерина I</a>)
+<table>
+<tr>
+<td bgcolor="#CCCCCC" rowspan="4"></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9F%D0%B5%D1%82%D1%80%D0%BE%D0%B2%D0%B8%D1%87" title="Алексей Петрович">Алексей Петрович</a>
+<table>
+<tr>
+<td bgcolor="#CCCCCC" rowspan="4"></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%9F%D1%91%D1%82%D1%80_II" title="Пётр II">Пётр II</a></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%90%D0%BD%D0%BD%D0%B0_%D0%9F%D0%B5%D1%82%D1%80%D0%BE%D0%B2%D0%BD%D0%B0" title="Анна Петровна">Анна Петровна</a>
+<table>
+<tr>
+<td bgcolor="#CCCCCC" rowspan="4"></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%9F%D1%91%D1%82%D1%80_III" title="Пётр III">Пётр III</a></td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%95%D0%BB%D0%B8%D0%B7%D0%B0%D0%B2%D0%B5%D1%82%D0%B0_%D0%9F%D0%B5%D1%82%D1%80%D0%BE%D0%B2%D0%BD%D0%B0" title="Елизавета Петровна">Елизавета Петровна</a></td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2,_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%9D%D0%B8%D0%BA%D0%B8%D1%82%D0%B8%D1%87_(%D0%BD%D0%B0%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%B8%D0%BA)" class="mw-redirect" title="Романов, Александр Никитич (наместник)">Александр Никитич</a></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2,_%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%9D%D0%B8%D0%BA%D0%B8%D1%82%D0%B8%D1%87" title="Романов, Михаил Никитич">Михаил Никитич</a></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2,_%D0%98%D0%B2%D0%B0%D0%BD_%D0%9D%D0%B8%D0%BA%D0%B8%D1%82%D0%B8%D1%87" title="Романов, Иван Никитич">Иван Никитич</a>
+<table>
+<tr>
+<td bgcolor="#CCCCCC" rowspan="4"></td>
+</tr>
+<tr>
+<td><a href="/wiki/%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2,_%D0%9D%D0%B8%D0%BA%D0%B8%D1%82%D0%B0_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Романов, Никита Иванович">Никита Иванович</a></td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<div class="thumb tright">
+<div class="thumbinner" style="width:222px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Tsar_Alexei_Mikhailovich_of_Russia-N.Sverchkov.jpg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/5/5b/Tsar_Alexei_Mikhailovich_of_Russia-N.Sverchkov.jpg/220px-Tsar_Alexei_Mikhailovich_of_Russia-N.Sverchkov.jpg" width="220" height="137" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/5/5b/Tsar_Alexei_Mikhailovich_of_Russia-N.Sverchkov.jpg/330px-Tsar_Alexei_Mikhailovich_of_Russia-N.Sverchkov.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/5/5b/Tsar_Alexei_Mikhailovich_of_Russia-N.Sverchkov.jpg/440px-Tsar_Alexei_Mikhailovich_of_Russia-N.Sverchkov.jpg 2x" data-file-width="1200" data-file-height="747" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Tsar_Alexei_Mikhailovich_of_Russia-N.Sverchkov.jpg" class="internal" title="Увеличить"></a></div>
+«Царь Алексей Михайлович с боярами на соколиной охоте близ Москвы» (картина <a href="/wiki/%D0%A1%D0%B2%D0%B5%D1%80%D1%87%D0%BA%D0%BE%D0%B2,_%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%95%D0%B3%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87" title="Сверчков, Николай Егорович">Николая Сверчкова</a>)</div>
+</div>
+</div>
+<p>Царь Алексей возмужал и уже более не нуждался в опеке; сам он писал <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BD_(%D0%9F%D0%B0%D1%82%D1%80%D0%B8%D0%B0%D1%80%D1%85_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" class="mw-redirect" title="Никон (Патриарх Московский)">Никону</a> в <a href="/wiki/1651_%D0%B3%D0%BE%D0%B4" title="1651 год">1651 году</a>, «<i>что слово его стало во дворце добре страшно</i>». Слова эти, однако, на деле не вполне оправдались. Мягкая, общительная натура царя нуждалась в советчике и друге. Таким «особенным», особенно любимым другом стал Никон. Будучи в то время митрополитом в <a href="/wiki/%D0%9D%D0%BE%D0%B2%D0%B3%D0%BE%D1%80%D0%BE%D0%B4" class="mw-redirect" title="Новгород">Новгороде</a>, где со свойственной ему энергией он в марте 1650 года усмирял мятежников, Никон овладел доверием царским, посвящён был в патриархи (<abbr title="по юлианскому календарю">25&#160;июля</abbr>&#160;(<a href="/wiki/4_%D0%B0%D0%B2%D0%B3%D1%83%D1%81%D1%82%D0%B0" title="4 августа"><span title="по григорианскому календарю">4&#160;августа</span></a>)&#160;<a href="/wiki/1652_%D0%B3%D0%BE%D0%B4" title="1652 год">1652</a> года и стал оказывать прямое влияние на дела государственные. Из числа последних особенное внимание правительства привлекали внешние отношения.</p>
+<p>Патриарху Никону было поручено провести <a href="/wiki/%D0%A6%D0%B5%D1%80%D0%BA%D0%BE%D0%B2%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D1%84%D0%BE%D1%80%D0%BC%D0%B0_%D0%BF%D0%B0%D1%82%D1%80%D0%B8%D0%B0%D1%80%D1%85%D0%B0_%D0%9D%D0%B8%D0%BA%D0%BE%D0%BD%D0%B0" class="mw-redirect" title="Церковная реформа патриарха Никона">церковную реформу</a>. Реформа прошла в <a href="/wiki/1653_%D0%B3%D0%BE%D0%B4" title="1653 год">1653</a>—<a href="/wiki/1655_%D0%B3%D0%BE%D0%B4" title="1655 год">1655 годах</a> и касалась в основном церковных обрядов и книг. Было введено крещение тремя пальцами, поясные поклоны вместо земных, исправлены по греческим образцам иконы и церковные книги. Созванный в <a href="/wiki/1654_%D0%B3%D0%BE%D0%B4" title="1654 год">1654 году</a> <a href="/wiki/%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9_%D1%81%D0%BE%D0%B1%D0%BE%D1%80_(1654)" title="Московский собор (1654)">Московский собор</a> одобрил реформу, но предложил привести действующие обряды в соответствие не только с греческой, но и с русской традицией.</p>
+<p>Новый патриарх был человеком своенравным, волевым, во многом фанатичным. Получив необъятную власть над верующими, он вскоре выступил с идеей первенства церковной власти и предложил Алексею Михайловичу разделить с ним власть. Однако царь не пожелал долго терпеть патриарха. Он перестал ходить на патриаршие богослужения в <a href="/wiki/%D0%A3%D1%81%D0%BF%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9_%D1%81%D0%BE%D0%B1%D0%BE%D1%80_(%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0)" title="Успенский собор (Москва)">Успенском соборе</a>, приглашать Никона на государственные приёмы. Это было серьёзным ударом по самолюбию патриарха. Во время одной из проповедей в Успенском соборе он заявил о сложении патриарших обязанностей (с сохранением сана) и удалился в <a href="/wiki/%D0%9D%D0%BE%D0%B2%D0%BE%D0%B8%D0%B5%D1%80%D1%83%D1%81%D0%B0%D0%BB%D0%B8%D0%BC%D1%81%D0%BA%D0%B8%D0%B9_%D0%BC%D0%BE%D0%BD%D0%B0%D1%81%D1%82%D1%8B%D1%80%D1%8C" title="Новоиерусалимский монастырь">Новоиерусалимский Воскресенский монастырь</a>. Там Никон ждал, что царь раскается и попросит его вернуться в Москву. Однако царь поступил совсем иначе. Он стал готовить <a href="/wiki/%D0%A6%D0%B5%D1%80%D0%BA%D0%BE%D0%B2%D0%BD%D1%8B%D0%B9_%D1%81%D1%83%D0%B4" title="Церковный суд">церковный суд</a> над Никоном, для чего пригласил в Москву <a href="/wiki/%D0%9F%D1%80%D0%B0%D0%B2%D0%BE%D1%81%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%86%D0%B5%D1%80%D0%BA%D0%BE%D0%B2%D1%8C" title="Православная церковь">православных патриархов из других стран</a>.</p>
+<p>Для суда над Никоном в 1666&#160;г. был созван <a href="/wiki/%D0%91%D0%BE%D0%BB%D1%8C%D1%88%D0%BE%D0%B9_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9_%D1%81%D0%BE%D0%B1%D0%BE%D1%80" title="Большой Московский собор">Большой Московский собор</a>, на который патриарха привезли под охраной. Царь заявил, что Никон без разрешения царя оставил церковь и отрекся от патриаршества, тем самым давая понять, кому принадлежит реальная власть в стране. Присутствовавшие церковные <a href="/wiki/%D0%98%D0%B5%D1%80%D0%B0%D1%80%D1%85" class="mw-redirect" title="Иерарх">иерархи</a> поддержали царя и осудили Никона, благословив лишение его сана патриарха и вечное заточение в монастырь. Одновременно Собор 1666—1667&#160;гг. поддержал церковную реформу и предал проклятию всех её противников, которые стали именоваться раскольниками. Участники Собора постановили передать лидеров старообрядцев в руки властей. Таким образом, реформы Никона и Собор 1666—1667&#160;гг. положили начало расколу в Русской Православной Церкви.</p>
+<div class="thumb tright">
+<div class="thumbinner" style="width:222px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:%D0%9F%D0%B5%D1%87%D0%B0%D1%82%D1%8C_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_%D0%9F%D0%B5%D1%80%D0%B2%D0%BE%D0%B3%D0%BE.JPG" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/e/eb/%D0%9F%D0%B5%D1%87%D0%B0%D1%82%D1%8C_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_%D0%9F%D0%B5%D1%80%D0%B2%D0%BE%D0%B3%D0%BE.JPG/220px-%D0%9F%D0%B5%D1%87%D0%B0%D1%82%D1%8C_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_%D0%9F%D0%B5%D1%80%D0%B2%D0%BE%D0%B3%D0%BE.JPG" width="220" height="211" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/e/eb/%D0%9F%D0%B5%D1%87%D0%B0%D1%82%D1%8C_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_%D0%9F%D0%B5%D1%80%D0%B2%D0%BE%D0%B3%D0%BE.JPG/330px-%D0%9F%D0%B5%D1%87%D0%B0%D1%82%D1%8C_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_%D0%9F%D0%B5%D1%80%D0%B2%D0%BE%D0%B3%D0%BE.JPG 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/e/eb/%D0%9F%D0%B5%D1%87%D0%B0%D1%82%D1%8C_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_%D0%9F%D0%B5%D1%80%D0%B2%D0%BE%D0%B3%D0%BE.JPG/440px-%D0%9F%D0%B5%D1%87%D0%B0%D1%82%D1%8C_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_%D0%9F%D0%B5%D1%80%D0%B2%D0%BE%D0%B3%D0%BE.JPG 2x" data-file-width="2313" data-file-height="2217" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:%D0%9F%D0%B5%D1%87%D0%B0%D1%82%D1%8C_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_%D0%9F%D0%B5%D1%80%D0%B2%D0%BE%D0%B3%D0%BE.JPG" class="internal" title="Увеличить"></a></div>
+Большая государственная печать Алексея Михайловича. <a href="/wiki/1667" class="mw-redirect" title="1667">1667</a></div>
+</div>
+</div>
+<h4><span class="mw-headline" id=".D0.92.D0.BE.D0.B5.D0.BD.D0.BD.D0.B0.D1.8F_.D1.80.D0.B5.D1.84.D0.BE.D1.80.D0.BC.D0.B0">Военная реформа</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=7" class="mw-editsection-visualeditor" title="Редактировать раздел «Военная реформа»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=7" title="Редактировать раздел «Военная реформа»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h4>
+<p>В <a href="/wiki/1648_%D0%B3%D0%BE%D0%B4" title="1648 год">1648 году</a>, используя опыт создания <a href="/wiki/%D0%9F%D0%BE%D0%BB%D0%BA%D0%B8_%D0%B8%D0%BD%D0%BE%D0%B7%D0%B5%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE_%D1%81%D1%82%D1%80%D0%BE%D1%8F" title="Полки иноземного строя">полков иноземного строя</a> в период царствования своего отца, Алексей Михайлович начинает реформу армии<sup id="cite_ref-mal47_10-0" class="reference"><a href="#cite_note-mal47-10">[10]</a></sup>.</p>
+<p>В ходе реформы 1648—<a href="/wiki/1654_%D0%B3%D0%BE%D0%B4" title="1654 год">1654 годов</a> были усилены и увеличены лучшие части «старого строя»: элитная московская <a href="/wiki/%D0%9F%D0%BE%D0%BC%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D0%B5_%D0%B2%D0%BE%D0%B9%D1%81%D0%BA%D0%BE" title="Поместное войско">поместная конница</a> <a href="/wiki/%D0%93%D0%BE%D1%81%D1%83%D0%B4%D0%B0%D1%80%D0%B5%D0%B2_%D0%BF%D0%BE%D0%BB%D0%BA" class="mw-redirect" title="Государев полк">Государева полка</a>, московские <a href="/wiki/%D0%A1%D1%82%D1%80%D0%B5%D0%BB%D1%8C%D1%86%D1%8B" title="Стрельцы">стрельцы</a> и <a href="/wiki/%D0%9F%D1%83%D1%88%D0%BA%D0%B0%D1%80%D0%B8" title="Пушкари">пушкари</a>. Главным направлением реформы стало массовое создание полков нового строя: <a href="/w/index.php?title=%D0%A0%D0%B5%D0%B9%D1%82%D0%B0%D1%80%D1%81%D0%BA%D0%B8%D0%B9_%D0%BF%D0%BE%D0%BB%D0%BA&amp;action=edit&amp;redlink=1" class="new" title="Рейтарский полк (страница отсутствует)">рейтарских</a>, <a href="/w/index.php?title=%D0%A1%D0%BE%D0%BB%D0%B4%D0%B0%D1%82%D1%81%D0%BA%D0%B8%D0%B9_%D0%BF%D0%BE%D0%BB%D0%BA&amp;action=edit&amp;redlink=1" class="new" title="Солдатский полк (страница отсутствует)">солдатских</a>, <a href="/wiki/%D0%94%D1%80%D0%B0%D0%B3%D1%83%D0%BD%D1%8B" title="Драгуны">драгунских</a> и <a href="/wiki/%D0%93%D1%83%D1%81%D0%B0%D1%80%D1%81%D0%BA%D0%B8%D0%B9_%D0%BF%D0%BE%D0%BB%D0%BA" title="Гусарский полк">гусарского</a><sup id="cite_ref-mal47_10-1" class="reference"><a href="#cite_note-mal47-10">[10]</a></sup>. Эти полки составили костяк новой армии царя Алексея Михайловича. Для выполнения целей реформы на службу было нанято большое количество европейских военных специалистов. Это стало возможным из-за окончания <a href="/wiki/%D0%A2%D1%80%D0%B8%D0%B4%D1%86%D0%B0%D1%82%D0%B8%D0%BB%D0%B5%D1%82%D0%BD%D1%8F%D1%8F_%D0%B2%D0%BE%D0%B9%D0%BD%D0%B0" title="Тридцатилетняя война">Тридцатилетней войны</a>, что создало в Европе колоссальный для тех времен рынок военных профессионалов<sup id="cite_ref-11" class="reference"><a href="#cite_note-11">[11]</a></sup>.</p>
+<h4><span class="mw-headline" id=".D0.94.D0.B5.D0.BB.D0.B0_.D0.BD.D0.B0_.D0.A3.D0.BA.D1.80.D0.B0.D0.B8.D0.BD.D0.B5._.D0.9F.D0.BE.D0.BB.D1.8C.D1.81.D0.BA.D0.B0.D1.8F_.D0.B2.D0.BE.D0.B9.D0.BD.D0.B0">Дела на Украине. Польская война</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=8" class="mw-editsection-visualeditor" title="Редактировать раздел «Дела на Украине. Польская война»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=8" title="Редактировать раздел «Дела на Украине. Польская война»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h4>
+<div class="dablink noprint">Основная статья: <b><a href="/wiki/%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%BE-%D0%BF%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F_%D0%B2%D0%BE%D0%B9%D0%BD%D0%B0_(1654%E2%80%941667)" title="Русско-польская война (1654—1667)">Русско-польская война (1654—1667)</a></b></div>
+<p>Ещё в конце <a href="/wiki/1647_%D0%B3%D0%BE%D0%B4" title="1647 год">1647 года</a> казацкий <a href="/wiki/%D0%A1%D0%BE%D1%82%D0%BD%D0%B8%D0%BA" title="Сотник">сотник</a> <a href="/wiki/%D0%A5%D0%BC%D0%B5%D0%BB%D1%8C%D0%BD%D0%B8%D1%86%D0%BA%D0%B8%D0%B9,_%D0%91%D0%BE%D0%B3%D0%B4%D0%B0%D0%BD_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" title="Хмельницкий, Богдан Михайлович">Зиновий Богдан Хмельницкий</a> бежал с <a href="/wiki/%D0%A3%D0%BA%D1%80%D0%B0%D0%B8%D0%BD%D0%B0" title="Украина">Украины</a> в <a href="/wiki/%D0%97%D0%B0%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D1%8C%D0%B5" title="Запорожье">Запорожье</a>, а оттуда в <a href="/wiki/%D0%9A%D1%80%D1%8B%D0%BC" title="Крым">Крым</a>. Вернувшись с татарским войском и избранный в <a href="/wiki/%D0%93%D0%B5%D1%82%D0%BC%D0%B0%D0%BD" title="Гетман">гетманы</a> казацкой <a href="/wiki/%D0%92%D0%B5%D1%87%D0%B5" title="Вече">радой</a>, он поднял восстание, охватившее всю Украину, разгромил польские войска <a href="/wiki/%D0%91%D0%B8%D1%82%D0%B2%D0%B0_%D0%BF%D0%BE%D0%B4_%D0%96%D1%91%D0%BB%D1%82%D1%8B%D0%BC%D0%B8_%D0%92%D0%BE%D0%B4%D0%B0%D0%BC%D0%B8" title="Битва под Жёлтыми Водами">при Жёлтых Водах</a>, <a href="/wiki/%D0%9A%D0%BE%D1%80%D1%81%D1%83%D0%BD%D1%81%D0%BA%D0%BE%D0%B5_%D1%81%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_(1648)" title="Корсунское сражение (1648)">Корсуни</a>, <a href="/wiki/%D0%91%D0%B8%D1%82%D0%B2%D0%B0_%D0%BF%D0%BE%D0%B4_%D0%9F%D0%B8%D0%BB%D1%8F%D0%B2%D1%86%D0%B0%D0%BC%D0%B8" title="Битва под Пилявцами">Пиляве</a>. После этих первых побед, (<abbr title="8 июня по юлианскому календарю">8</abbr>&#160;(<a href="/wiki/18_%D0%B8%D1%8E%D0%BD%D1%8F" title="18 июня"><span title="18 июня по григорианскому календарю">18</span></a>)&#160;июня&#160;<a href="/wiki/1648_%D0%B3%D0%BE%D0%B4" title="1648 год">1648</a> года, Хмельницкий отправил Алексею Михайловичу письмо с просьбой принять в подданство <a href="/wiki/%D0%97%D0%B0%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D1%81%D0%BA%D0%B8%D0%B5_%D0%BA%D0%B0%D0%B7%D0%B0%D0%BA%D0%B8" title="Запорожские казаки">запорожских казаков</a>. Затем осадил <a href="/wiki/%D0%97%D0%B0%D0%BC%D0%BE%D1%81%D1%86%D1%8C" title="Замосць">Замостье</a> и под <a href="/wiki/%D0%97%D0%B1%D0%BE%D1%80%D0%BE%D0%B2" title="Зборов">Зборовом</a> заключил выгодный мир. После поражения под <a href="/wiki/%D0%91%D0%B5%D1%80%D0%B5%D1%81%D1%82%D0%B5%D1%87%D0%BA%D0%BE" title="Берестечко">Берестечком</a> он согласился под <a href="/wiki/%D0%91%D0%B5%D0%BB%D0%B0%D1%8F_%D0%A6%D0%B5%D1%80%D0%BA%D0%BE%D0%B2%D1%8C" title="Белая Церковь">Белой Церковью</a> на мир гораздо менее выгодный, чем <a href="/wiki/%D0%97%D0%B1%D0%BE%D1%80%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80" title="Зборовский договор">Зборовский</a>. В феврале 1651 был созван <a href="/wiki/%D0%97%D0%B5%D0%BC%D1%81%D0%BA%D0%B8%D0%B9_%D1%81%D0%BE%D0%B1%D0%BE%D1%80" title="Земский собор">Земский собор</a>, где, в числе прочего, было объявлено о желании Хмельницкого и запорожцев перейти в русское подданство<sup id="cite_ref-12" class="reference"><a href="#cite_note-12">[12]</a></sup>. В течение всего этого времени Алексей Михайлович занимал выжидательную политику: он не помогал ни Хмельницкому, ни <a href="/wiki/%D0%A0%D0%B5%D1%87%D1%8C_%D0%9F%D0%BE%D1%81%D0%BF%D0%BE%D0%BB%D0%B8%D1%82%D0%B0%D1%8F" title="Речь Посполитая">Речи Посполитой</a>.</p>
+<div class="thumb tleft">
+<div class="thumbinner" style="width:302px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Znamia_bolshogo_polka_1654.JPG" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/d/d8/Znamia_bolshogo_polka_1654.JPG/300px-Znamia_bolshogo_polka_1654.JPG" width="300" height="188" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/d8/Znamia_bolshogo_polka_1654.JPG/450px-Znamia_bolshogo_polka_1654.JPG 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/d8/Znamia_bolshogo_polka_1654.JPG/600px-Znamia_bolshogo_polka_1654.JPG 2x" data-file-width="787" data-file-height="493" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Znamia_bolshogo_polka_1654.JPG" class="internal" title="Увеличить"></a></div>
+Знамя Большого полка Великого государя царя Алексея Михайловича 1654 года</div>
+</div>
+</div>
+<p><a href="/wiki/%D0%91%D0%B5%D0%BB%D0%BE%D1%86%D0%B5%D1%80%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9_%D0%BC%D0%B8%D1%80" title="Белоцерковский мир">Белоцерковский мир</a> стал причиной новых волнений на Украине; гетман был вынужден нарушить все условия и в третий раз обратиться с просьбой о помощи к «царю восточному, православному». На Земском соборе, созванном по этому поводу в <a href="/wiki/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0" title="Москва">Москве</a>, (<abbr title="1 октября по юлианскому календарю">1</abbr>&#160;(<a href="/wiki/11_%D0%BE%D0%BA%D1%82%D1%8F%D0%B1%D1%80%D1%8F" title="11 октября"><span title="11 октября по григорианскому календарю">11</span></a>)&#160;октября&#160;<a href="/wiki/1653_%D0%B3%D0%BE%D0%B4" title="1653 год">1653</a> решено было принять казаков в подданство и объявлено о скорой войне с <a href="/wiki/%D0%9F%D0%BE%D0%BB%D1%8C%D1%88%D0%B0" title="Польша">Польшей</a>. Царь счёл нужным объяснить причины войны французскому королю <a href="/wiki/%D0%9B%D1%8E%D0%B4%D0%BE%D0%B2%D0%B8%D0%BA_XIV" title="Людовик XIV">Людовику XIV</a>, отправив к нему в конце года гонца Мачехина, добравшегося в <a href="/wiki/%D0%9F%D0%B0%D1%80%D0%B8%D0%B6" title="Париж">Париж</a> лишь в октябре 1654 года<sup id="cite_ref-13" class="reference"><a href="#cite_note-13">[13]</a></sup>.</p>
+<p><a href="/wiki/18_%D0%BC%D0%B0%D1%8F" title="18 мая">18 мая</a> <a href="/wiki/1654" class="mw-redirect" title="1654">1654</a> сам царь выступил в поход, съездив помолиться в <a href="/wiki/%D0%A2%D1%80%D0%BE%D0%B8%D1%86%D0%B5-%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B5%D0%B2%D0%B0_%D0%BB%D0%B0%D0%B2%D1%80%D0%B0" title="Троице-Сергиева лавра">Троице-Сергиеву лавру</a> и <a href="/wiki/%D0%A1%D0%B0%D0%B2%D0%B2%D0%B8%D0%BD%D0%BE-%D0%A1%D1%82%D0%BE%D1%80%D0%BE%D0%B6%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9_%D0%BC%D0%BE%D0%BD%D0%B0%D1%81%D1%82%D1%8B%D1%80%D1%8C" title="Саввино-Сторожевский монастырь">Саввино-Сторожевский монастырь</a>. Свидетель событий так описывал царя, который выехал во главе войска:</p>
+<blockquote>
+<p>Ехал сам царь, окруженный 24 алебардистами, из коих два предшествующие несли два палаша. Царь в богатой броне, сверх которой была у него короткая одежда, украшенная золотыми позументами, на груди открытая, чтобы можно было видеть броню. Поверх этой одежды, у него было другое одеяние, чрезвычайно длинное, отовсюду висячее, с одной только стороны закрытое, шитое золотом: на этом одеянии видны были три большие выпуклости, усаженные драгоценными камнями и жемчугом. На голове у него был шлем, вверху, по старинной форме, заостренный, а на нём было царское золотое яблоко с крестом, усаженным также драгоценными камнями. Спереди каски был солитер, вправленный крупный драгоценный камень, ценимый в несколько тысяч<sup id="cite_ref-14" class="reference"><a href="#cite_note-14">[14]</a></sup>.</p>
+</blockquote>
+<p>Войско направилось к <a href="/wiki/%D0%A1%D0%BC%D0%BE%D0%BB%D0%B5%D0%BD%D1%81%D0%BA" title="Смоленск">Смоленску</a>. После сдачи <a href="/wiki/%D0%A1%D0%BC%D0%BE%D0%BB%D0%B5%D0%BD%D1%81%D0%BA" title="Смоленск">Смоленска</a> <a href="/wiki/23_%D1%81%D0%B5%D0%BD%D1%82%D1%8F%D0%B1%D1%80%D1%8F" title="23 сентября">23 сентября</a> царь вернулся в <a href="/wiki/%D0%92%D1%8F%D0%B7%D1%8C%D0%BC%D0%B0" title="Вязьма">Вязьму</a>. Весной <a href="/wiki/1655_%D0%B3%D0%BE%D0%B4" title="1655 год">1655 года</a> предпринят был новый поход. <a href="/wiki/30_%D0%B8%D1%8E%D0%BB%D1%8F" title="30 июля">30 июля</a> царь совершил торжественный въезд в <a href="/wiki/%D0%92%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE" class="mw-redirect" title="Вильно">Вильну</a> и принял титул «государя Полоцкого и Мстиславского», а затем, когда взяты были <a href="/wiki/%D0%9A%D0%BE%D0%B2%D0%BD%D0%BE" class="mw-redirect" title="Ковно">Ковно</a> и <a href="/wiki/%D0%93%D1%80%D0%BE%D0%B4%D0%BD%D0%BE" title="Гродно">Гродно</a>, «великого князя Литовского, Белой России, Волынского и Подольского». В ноябре царь вернулся в Москву. В это время успехи шведского короля <a href="/wiki/%D0%9A%D0%B0%D1%80%D0%BB_X_%D0%93%D1%83%D1%81%D1%82%D0%B0%D0%B2" title="Карл X Густав">Карла X</a>, завладевшего <a href="/wiki/%D0%9F%D0%BE%D0%B7%D0%BD%D0%B0%D0%BD%D1%8C" title="Познань">Познанью</a>, <a href="/wiki/%D0%92%D0%B0%D1%80%D1%88%D0%B0%D0%B2%D0%B0" title="Варшава">Варшавой</a> и <a href="/wiki/%D0%9A%D1%80%D0%B0%D0%BA%D0%BE%D0%B2" title="Краков">Краковом</a>, изменили ход военных действий. В Москве стали опасаться усиления <a href="/wiki/%D0%A8%D0%B2%D0%B5%D1%86%D0%B8%D1%8F" title="Швеция">Швеции</a> за счёт Польши. С целью занять денег для ведения войны с Польшей и Швецией Алексей Михайлович направил в <a href="/wiki/1656_%D0%B3%D0%BE%D0%B4" title="1656 год">1656 году</a> в <a href="/wiki/%D0%92%D0%B5%D0%BD%D0%B5%D1%86%D0%B8%D1%8F" title="Венеция">Венецию</a> дипломата <a href="/wiki/%D0%A7%D0%B5%D0%BC%D0%BE%D0%B4%D0%B0%D0%BD%D0%BE%D0%B2,_%D0%98%D0%B2%D0%B0%D0%BD_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Чемоданов, Иван Иванович">Ивана Чемоданова</a>, но его посольство не выполнило своей задачи. Осенью 1656 года с Речью Посполитой было заключено <a href="/wiki/%D0%92%D0%B8%D0%BB%D0%B5%D0%BD%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B8%D1%80%D0%B8%D0%B5" title="Виленское перемирие">Виленское перемирие</a>.</p>
+<p>(<abbr title="15 июля по юлианскому календарю">15</abbr>&#160;(<a href="/wiki/25_%D0%B8%D1%8E%D0%BB%D1%8F" title="25 июля"><span title="25 июля по григорианскому календарю">25</span></a>)&#160;июля&#160;<a href="/wiki/1656_%D0%B3%D0%BE%D0%B4" title="1656 год">1656</a> года царь двинулся в поход в <a href="/wiki/%D0%9B%D0%B8%D0%B2%D0%BE%D0%BD%D0%B8%D1%8F" title="Ливония">Ливонию</a> и по взятии <a href="/wiki/%D0%94%D0%B8%D0%BD%D0%B0%D0%B1%D1%83%D1%80%D0%B3" class="mw-redirect" title="Динабург">Динабурга</a> и <a href="/wiki/%D0%9A%D0%BE%D0%BA%D0%BD%D0%B5%D1%81%D0%B5" title="Кокнесе">Кокенгузена</a> <a href="/wiki/%D0%9E%D1%81%D0%B0%D0%B4%D0%B0_%D0%A0%D0%B8%D0%B3%D0%B8_(1656)" title="Осада Риги (1656)">осадил Ригу</a>. Осада снята была из-за слуха, что Карл Х идёт в Ливонию. <a href="/wiki/%D0%94%D0%B5%D1%80%D0%BF%D1%82" class="mw-redirect" title="Дерпт">Дерпт</a> был занят московскими войсками. Царь отступил в <a href="/wiki/%D0%9F%D0%BE%D0%BB%D0%BE%D1%86%D0%BA" title="Полоцк">Полоцк</a> и здесь дождался <a href="/wiki/%D0%92%D0%B8%D0%BB%D0%B5%D0%BD%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B8%D1%80%D0%B8%D0%B5" title="Виленское перемирие">перемирия, заключённого в Вильне</a> (<abbr title="по юлианскому календарю">24&#160;октября</abbr>&#160;(<a href="/wiki/3_%D0%BD%D0%BE%D1%8F%D0%B1%D1%80%D1%8F" title="3 ноября"><span title="по григорианскому календарю">3&#160;ноября</span></a>)&#160;<a href="/wiki/1656_%D0%B3%D0%BE%D0%B4" title="1656 год">1656</a> года. В 1657—1658 годах военные действия продолжились с переменным успехом. (<abbr title="20 декабря по юлианскому календарю">20</abbr>&#160;(<a href="/wiki/30_%D0%B4%D0%B5%D0%BA%D0%B0%D0%B1%D1%80%D1%8F" title="30 декабря"><span title="30 декабря по григорианскому календарю">30</span></a>)&#160;декабря&#160;<a href="/wiki/1658_%D0%B3%D0%BE%D0%B4" title="1658 год">1658</a> года было заключено <a href="/wiki/%D0%92%D0%B0%D0%BB%D0%B8%D0%B5%D1%81%D0%B0%D1%80%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B8%D1%80%D0%B8%D0%B5" title="Валиесарское перемирие">Валиесарское перемирие</a> со шведами сроком на три года, по которому Россия удержала часть завоёванной Ливонии (с Дерптом и Мариенбургом). Окончательный мир заключён в <a href="/w/index.php?title=%D0%9A%D0%B0%D1%80%D0%B4%D0%B8%D1%81&amp;action=edit&amp;redlink=1" class="new" title="Кардис (страница отсутствует)">Кардисе</a> в <a href="/wiki/1661" class="mw-redirect" title="1661">1661</a>; по этому миру Россия уступила все завоёванные места. Невыгодные условия <a href="/wiki/%D0%9A%D0%B0%D1%80%D0%B4%D0%B8%D1%81%D1%81%D0%BA%D0%B8%D0%B9_%D0%BC%D0%B8%D1%80%D0%BD%D1%8B%D0%B9_%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80" title="Кардисский мирный договор">Кардисского мира</a> вызваны были смутами в <a href="/wiki/%D0%9C%D0%B0%D0%BB%D0%BE%D1%80%D0%BE%D1%81%D1%81%D0%B8%D1%8F" class="mw-redirect" title="Малороссия">Малороссии</a> и новой войной с Польшей.</p>
+<p>После смерти Богдана Хмельницкого в июле <a href="/wiki/1657_%D0%B3%D0%BE%D0%B4" title="1657 год">1657&#160;года</a> на <a href="/wiki/%D0%A7%D0%B8%D0%B3%D0%B8%D1%80%D0%B8%D0%BD%D1%81%D0%BA%D0%B0%D1%8F_%D1%80%D0%B0%D0%B4%D0%B0" title="Чигиринская рада">Чигиринской раде</a> <a href="/wiki/%D0%9A%D0%B0%D0%B7%D0%B0%D1%86%D0%BA%D0%B0%D1%8F_%D1%81%D1%82%D0%B0%D1%80%D1%88%D0%B8%D0%BD%D0%B0_%D0%93%D0%B5%D1%82%D0%BC%D0%B0%D0%BD%D1%89%D0%B8%D0%BD%D1%8B" title="Казацкая старшина Гетманщины">козацкая старшина</a> возложила гетманские обязанности на <a href="/wiki/%D0%92%D1%8B%D0%B3%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9,_%D0%98%D0%B2%D0%B0%D0%BD_%D0%95%D0%B2%D1%81%D1%82%D0%B0%D1%84%D1%8C%D0%B5%D0%B2%D0%B8%D1%87" title="Выговский, Иван Евстафьевич">Ивана Выговского</a>, но только до достижения <a href="/wiki/%D0%A5%D0%BC%D0%B5%D0%BB%D1%8C%D0%BD%D0%B8%D1%86%D0%BA%D0%B8%D0%B9,_%D0%AE%D1%80%D0%B8%D0%B9_%D0%91%D0%BE%D0%B3%D0%B4%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Хмельницкий, Юрий Богданович">Юрием Хмельницким</a> полнолетия.</p>
+<div class="thumb tright">
+<div class="thumbinner" style="width:222px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Alexis_I_of_Russia_by_anonim_(Russian_museum).jpg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Alexis_I_of_Russia_by_anonim_%28Russian_museum%29.jpg/220px-Alexis_I_of_Russia_by_anonim_%28Russian_museum%29.jpg" width="220" height="285" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Alexis_I_of_Russia_by_anonim_%28Russian_museum%29.jpg/330px-Alexis_I_of_Russia_by_anonim_%28Russian_museum%29.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/f/fe/Alexis_I_of_Russia_by_anonim_%28Russian_museum%29.jpg 2x" data-file-width="422" data-file-height="547" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Alexis_I_of_Russia_by_anonim_(Russian_museum).jpg" class="internal" title="Увеличить"></a></div>
+Портрет Алексея Михайловича. XVII&#160;в. (?)</div>
+</div>
+</div>
+<p>На <a href="/wiki/%D0%9A%D0%BE%D1%80%D1%81%D1%83%D0%BD%D1%81%D0%BA%D0%B0%D1%8F_%D1%80%D0%B0%D0%B4%D0%B0" title="Корсунская рада">Корсунской раде</a> 21 октября 1657&#160;г. в атмосфере острых противоречий Иван Выговский был избран гетманом Украины. «Яркая, но противоречивая личность нового гетмана могла только усилить смуту на Украине. С одной стороны, в условиях, когда Украина всё ещё вела войну с Польшей, стать признанным всеми лидером корыстолюбивый писарь, не „природный казак“, а купленный у татар за лошадь „лях“, вдобавок женатый на дочери польского магната,&#160;— не мог. Но с другой стороны, с 1648&#160;г. он служил генеральным писарем и, являясь ближайшим к Богдану Хмельницкому доверенным лицом, был единственным человеком на Украине, посвященным во все внутренние и внешние политические проблемы. Таким образом, уже само избрание И. Выговского гетманом вызывало много противоречий и не могло создать единства на Украине»<sup id="cite_ref-jakovleva_15-0" class="reference"><a href="#cite_note-jakovleva-15">[15]</a></sup>. Уже в октябре <a href="/wiki/1657_%D0%B3%D0%BE%D0%B4" title="1657 год">1657 года</a> гетман столкнулся с <a href="/wiki/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%B8%D0%B5_%D0%91%D0%B0%D1%80%D0%B0%D0%B1%D0%B0%D1%88%D0%B0_%D0%B8_%D0%9F%D1%83%D1%88%D0%BA%D0%B0%D1%80%D1%8F" title="Восстание Барабаша и Пушкаря">мощной оппозицией</a>. Гетману удалось разгромить оппозиционеров, во главе которых стояли полтавский полковник <a href="/wiki/%D0%9F%D1%83%D1%88%D0%BA%D0%B0%D1%80%D1%8C,_%D0%9C%D0%B0%D1%80%D1%82%D1%8B%D0%BD_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Пушкарь, Мартын Иванович">Мартын Пушкарь</a> и кошевой атаман <a href="/wiki/%D0%91%D0%B0%D1%80%D0%B0%D0%B1%D0%B0%D1%88,_%D0%AF%D0%BA%D0%BE%D0%B2_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87_(%D0%B0%D1%82%D0%B0%D0%BC%D0%B0%D0%BD)" title="Барабаш, Яков Фёдорович (атаман)">Яков Барабаш</a>. Но противоречия внутри казацкого общества продолжали накаляться. Гетман Выговский присягнул Речи Посполитой и начал нападения на Киев и другие города. В ответ правительство ввело на территорию <a href="/wiki/%D0%93%D0%B5%D1%82%D0%BC%D0%B0%D0%BD%D1%89%D0%B8%D0%BD%D0%B0" title="Гетманщина">Войска Запорожского</a> войска <a href="/wiki/%D0%91%D0%B5%D0%BB%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D1%81%D0%BA%D0%B8%D0%B9_%D1%80%D0%B0%D0%B7%D1%80%D1%8F%D0%B4" title="Белгородский разряд">Белгородского разряда</a> и гетман Выговский <a href="/wiki/%D0%A0%D1%83%D0%B8%D0%BD%D0%B0_(%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%A3%D0%BA%D1%80%D0%B0%D0%B8%D0%BD%D1%8B)#.D0.9F.D0.BE.D1.85.D0.BE.D0.B4_.D0.91.D0.B5.D0.BB.D0.B3.D0.BE.D1.80.D0.BE.D0.B4.D1.81.D0.BA.D0.BE.D0.B3.D0.BE_.D0.BF.D0.BE.D0.BB.D0.BA.D0.B0_.D0.B8_.D0.BF.D1.80.D0.B8.D1.81.D1.8F.D0.B3.D0.B0_.D0.B2.D1.8B.D0.B3.D0.BE.D0.B2.D1.86.D0.B5.D0.B2" title="Руина (история Украины)">вновь поклялся в верности царю</a>. Вскоре выговцы, при поддержке польских войск, вновь начали военные действия. В <a href="/wiki/%D0%9A%D0%BE%D0%BD%D0%BE%D1%82%D0%BE%D0%BF%D1%81%D0%BA%D0%B0%D1%8F_%D0%B1%D0%B8%D1%82%D0%B2%D0%B0" title="Конотопская битва">Конотопской битве</a> <abbr title="по юлианскому календарю">28&#160;июня</abbr>&#160;(<a href="/wiki/8_%D0%B8%D1%8E%D0%BB%D1%8F" title="8 июля"><span title="по григорианскому календарю">8&#160;июля</span></a>)&#160;<a href="/wiki/1659_%D0%B3%D0%BE%D0%B4" title="1659 год">1659</a> года победу одержал Выговский. Исход Конотопской битвы, тем не менее, не укрепил положение Выговского в продолжающейся гражданской войне в <a href="/wiki/%D0%93%D0%B5%D1%82%D0%BC%D0%B0%D0%BD%D1%89%D0%B8%D0%BD%D0%B0" title="Гетманщина">Гетманщине</a> и не предотвратил его скорое свержение.</p>
+<p>В <a href="/wiki/%D0%A0%D1%83%D0%B8%D0%BD%D0%B0_(%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%A3%D0%BA%D1%80%D0%B0%D0%B8%D0%BD%D1%8B)" title="Руина (история Украины)">гражданской войне</a>, в которой Выговского поддерживала польская корона, а за спиной пребывавшего на <a href="/wiki/%D0%97%D0%B0%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D1%81%D0%BA%D0%B0%D1%8F_%D0%A1%D0%B5%D1%87%D1%8C" title="Запорожская Сечь">Сечи</a> Юрия Хмельницкого стояли опытные полковники его <a href="/wiki/%D0%A5%D0%BC%D0%B5%D0%BB%D1%8C%D0%BD%D0%B8%D1%86%D0%BA%D0%B8%D0%B9,_%D0%91%D0%BE%D0%B3%D0%B4%D0%B0%D0%BD_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" title="Хмельницкий, Богдан Михайлович">отца</a> <a href="/wiki/%D0%91%D0%BE%D0%B3%D1%83%D0%BD,_%D0%98%D0%B2%D0%B0%D0%BD" title="Богун, Иван">Иван Богун</a>, <a href="/wiki/%D0%A1%D0%B8%D1%80%D0%BA%D0%BE,_%D0%98%D0%B2%D0%B0%D0%BD_%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B5%D0%B2%D0%B8%D1%87" class="mw-redirect" title="Сирко, Иван Дмитриевич">Иван Сирко</a>, <a href="/wiki/%D0%A1%D0%BE%D0%BC%D0%BA%D0%BE,_%D0%AF%D0%BA%D0%B8%D0%BC_%D0%A1%D0%B5%D0%BC%D1%91%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Сомко, Яким Семёнович">Яким Сомко</a>, активно поддерживаемые царем Алексеем Михайловичем, победу одержали сторонники союза с Россией, и Выговский был вынужден сложить гетманскую булаву в пользу политически малоактивного Юрия Хмельницкого, который впоследствии постригся в монахи и ушёл в монастырь.</p>
+<p>Воспользовавшись смутами в <a href="/wiki/%D0%9C%D0%B0%D0%BB%D0%BE%D1%80%D0%BE%D1%81%D1%81%D0%B8%D1%8F" class="mw-redirect" title="Малороссия">Малороссии</a>, <a href="/wiki/%D0%9F%D0%BE%D0%BB%D1%8C%D1%88%D0%B0" title="Польша">Польша</a> отказалась признавать Алексея Михайловича наследником польского престола и не уступала <a href="/wiki/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0" title="Москва">Москве</a> её завоеваний. Следствием этого была вторая польская война. В июне <a href="/wiki/1660_%D0%B3%D0%BE%D0%B4" title="1660 год">1660 года</a> князь <a href="/wiki/%D0%A5%D0%BE%D0%B2%D0%B0%D0%BD%D1%81%D0%BA%D0%B8%D0%B9,_%D0%98%D0%B2%D0%B0%D0%BD_%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B5%D0%B2%D0%B8%D1%87_%D0%A2%D0%B0%D1%80%D0%B0%D1%80%D1%83%D0%B9" title="Хованский, Иван Андреевич Тараруй">Хованский</a> потерпел <a href="/wiki/%D0%91%D0%B8%D1%82%D0%B2%D0%B0_%D0%BF%D0%BE%D0%B4_%D0%9F%D0%BE%D0%BB%D0%BE%D0%BD%D0%BA%D0%BE%D0%B9" title="Битва под Полонкой">поражение у Полонки</a>, в сентябре&#160;— <a href="/wiki/%D0%A8%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D1%82%D0%B5%D0%B2,_%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%91%D0%BE%D1%80%D0%B8%D1%81%D0%BE%D0%B2%D0%B8%D1%87" title="Шереметев, Василий Борисович">Шереметев</a> <a href="/wiki/%D0%91%D0%B8%D1%82%D0%B2%D0%B0_%D0%BF%D0%BE%D0%B4_%D0%A7%D1%83%D0%B4%D0%BD%D0%BE%D0%B2%D0%BE%D0%BC" title="Битва под Чудновом">под Чудновым</a>. Дела приняли ещё более опасный оборот благодаря продолжавшимся в Малороссии смутам. <a href="/wiki/%D0%A2%D0%B5%D1%82%D0%B5%D1%80%D1%8F,_%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Тетеря, Павел Иванович">Тетеря</a> присягнул королю, который явился на <a href="/wiki/%D0%9B%D0%B5%D0%B2%D0%BE%D0%B1%D0%B5%D1%80%D0%B5%D0%B6%D0%BD%D0%B0%D1%8F_%D0%A3%D0%BA%D1%80%D0%B0%D0%B8%D0%BD%D0%B0" title="Левобережная Украина">левой стороне Днепра</a>, но после неудачной <a href="/wiki/%D0%9E%D1%81%D0%B0%D0%B4%D0%B0_%D0%93%D0%BB%D1%83%D1%85%D0%BE%D0%B2%D0%B0" title="Осада Глухова">осады Глухова</a> в начале <a href="/wiki/1664_%D0%B3%D0%BE%D0%B4" title="1664 год">1664&#160;года</a> и успешных действий его противников&#160;— <a href="/wiki/%D0%91%D1%80%D1%8E%D1%85%D0%BE%D0%B2%D0%B5%D1%86%D0%BA%D0%B8%D0%B9,_%D0%98%D0%B2%D0%B0%D0%BD_%D0%9C%D0%B0%D1%80%D1%82%D1%8B%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Брюховецкий, Иван Мартынович">Брюховецкого</a>, избранного гетманом на левой стороне Днепра, и князя <a href="/wiki/%D0%A0%D0%BE%D0%BC%D0%BE%D0%B4%D0%B0%D0%BD%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9,_%D0%93%D1%80%D0%B8%D0%B3%D0%BE%D1%80%D0%B8%D0%B9_%D0%93%D1%80%D0%B8%D0%B3%D0%BE%D1%80%D1%8C%D0%B5%D0%B2%D0%B8%D1%87" title="Ромодановский, Григорий Григорьевич">Ромодановского</a>&#160;— ушёл за <a href="/wiki/%D0%94%D0%B5%D1%81%D0%BD%D0%B0_(%D0%BF%D1%80%D0%B8%D1%82%D0%BE%D0%BA_%D0%94%D0%BD%D0%B5%D0%BF%D1%80%D0%B0)" title="Десна (приток Днепра)">Десну</a>. <a href="/wiki/%D0%9E%D1%80%D0%B4%D0%B8%D0%BD-%D0%9D%D0%B0%D1%89%D0%BE%D0%BA%D0%B8%D0%BD,_%D0%90%D1%84%D0%B0%D0%BD%D0%B0%D1%81%D0%B8%D0%B9_%D0%9B%D0%B0%D0%B2%D1%80%D0%B5%D0%BD%D1%82%D1%8C%D0%B5%D0%B2%D0%B8%D1%87" title="Ордин-Нащокин, Афанасий Лаврентьевич">А. Ордин-Нащокин</a> советовал царю отказаться от Малороссии и обратиться на Швецию. Алексей Михайлович отклонил это предложение; он не терял надежды. Благоприятному исходу борьбы способствовали внутренние беспорядки в Польше и переход гетмана <a href="/wiki/%D0%94%D0%BE%D1%80%D0%BE%D1%88%D0%B5%D0%BD%D0%BA%D0%BE,_%D0%9F%D1%91%D1%82%D1%80_%D0%94%D0%BE%D1%80%D0%BE%D1%84%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Дорошенко, Пётр Дорофеевич">Дорошенко</a>, преемника Тетери, в подданство турецкому султану. <abbr title="13 января по юлианскому календарю">13</abbr>&#160;(<a href="/wiki/23_%D1%8F%D0%BD%D0%B2%D0%B0%D1%80%D1%8F" title="23 января"><span title="23 января по григорианскому календарю">23</span></a>)&#160;января&#160;<a href="/wiki/1667_%D0%B3%D0%BE%D0%B4" title="1667 год">1667</a> года <a href="/wiki/%D0%90%D0%BD%D0%B4%D1%80%D1%83%D1%81%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D0%B5%D1%80%D0%B5%D0%BC%D0%B8%D1%80%D0%B8%D0%B5" title="Андрусовское перемирие">заключён был мир в деревне Андрусов</a>. Царь Алексей Михайлович по этому миру приобрёл <a href="/wiki/%D0%A1%D0%BC%D0%BE%D0%BB%D0%B5%D0%BD%D1%81%D0%BA" title="Смоленск">Смоленск</a>, <a href="/wiki/%D0%A1%D0%B5%D0%B2%D0%B5%D1%80%D1%89%D0%B8%D0%BD%D0%B0" title="Северщина">Северскую землю</a>, левую сторону Днепра и, кроме того, <a href="/wiki/%D0%9A%D0%B8%D0%B5%D0%B2" title="Киев">Киев</a> на два года.</p>
+<div class="thumb tleft">
+<div class="thumbinner" style="width:302px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wjatscheslaw_Grigorjewitsch_Schwarz_002.jpg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Wjatscheslaw_Grigorjewitsch_Schwarz_002.jpg/300px-Wjatscheslaw_Grigorjewitsch_Schwarz_002.jpg" width="300" height="145" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Wjatscheslaw_Grigorjewitsch_Schwarz_002.jpg/450px-Wjatscheslaw_Grigorjewitsch_Schwarz_002.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/c5/Wjatscheslaw_Grigorjewitsch_Schwarz_002.jpg/600px-Wjatscheslaw_Grigorjewitsch_Schwarz_002.jpg 2x" data-file-width="2648" data-file-height="1278" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Wjatscheslaw_Grigorjewitsch_Schwarz_002.jpg" class="internal" title="Увеличить"></a></div>
+Вербное Воскресенье в Москве в царствование Алексея Михайловича. <i>В.&#160;Б.&#160;Шварц, 1865</i></div>
+</div>
+</div>
+<p>Во время войн <a href="/wiki/1654_%D0%B3%D0%BE%D0%B4" title="1654 год">1654</a>—<a href="/wiki/1658_%D0%B3%D0%BE%D0%B4" title="1658 год">1658 годов</a> царь часто отсутствовал в <a href="/wiki/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0" title="Москва">Москве</a>, находился, следовательно, вдали от <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BD_(%D0%9F%D0%B0%D1%82%D1%80%D0%B8%D0%B0%D1%80%D1%85_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" class="mw-redirect" title="Никон (Патриарх Московский)">Никона</a> и присутствием своим не сдерживал властолюбия патриарха. Вернувшись из походов, он стал тяготиться его влиянием. Враги Никона воспользовались охлаждением к нему царя и непочтительно стали относиться к патриарху. Горделивая душа архипастыря не могла снести обиды; <abbr title="10 июля по юлианскому календарю">10</abbr>&#160;(<a href="/wiki/20_%D0%B8%D1%8E%D0%BB%D1%8F" title="20 июля"><span title="20 июля по григорианскому календарю">20</span></a>)&#160;июля&#160;<a href="/wiki/1658_%D0%B3%D0%BE%D0%B4" title="1658 год">1658</a> он отказался от своего сана и уехал в <a href="/wiki/%D0%9D%D0%BE%D0%B2%D0%BE%D0%B8%D0%B5%D1%80%D1%83%D1%81%D0%B0%D0%BB%D0%B8%D0%BC%D1%81%D0%BA%D0%B8%D0%B9_%D0%BC%D0%BE%D0%BD%D0%B0%D1%81%D1%82%D1%8B%D1%80%D1%8C" title="Новоиерусалимский монастырь">Воскресенский монастырь</a>. Государь, однако, не скоро решился покончить с этим делом. Лишь в <a href="/wiki/1666_%D0%B3%D0%BE%D0%B4" title="1666 год">1666 году</a> на духовном соборе под председательством <a href="/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%BE%D1%8F%D1%82%D0%B5%D0%BB%D0%B5%D0%B9_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80%D0%B8%D0%B9%D1%81%D0%BA%D0%BE%D0%B9_%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%81%D0%BB%D0%B0%D0%B2%D0%BD%D0%BE%D0%B9_%D1%86%D0%B5%D1%80%D0%BA%D0%B2%D0%B8" class="mw-redirect" title="Список предстоятелей Александрийской православной церкви">александрийского</a> и <a href="/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%90%D0%BD%D1%82%D0%B8%D0%BE%D1%85%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D1%85_%D0%BF%D0%B0%D1%82%D1%80%D0%B8%D0%B0%D1%80%D1%85%D0%BE%D0%B2" class="mw-redirect" title="Список Антиохийских патриархов">антиохийского</a> <a href="/wiki/%D0%9F%D0%B0%D1%82%D1%80%D0%B8%D0%B0%D1%80%D1%85_(%D1%86%D0%B5%D1%80%D0%BA%D0%BE%D0%B2%D0%BD%D1%8B%D0%B9_%D1%81%D0%B0%D0%BD)" title="Патриарх (церковный сан)">патриархов</a> Никон был лишён <a href="/wiki/%D0%90%D1%80%D1%85%D0%B8%D0%B5%D1%80%D0%B5%D0%B9" class="mw-redirect" title="Архиерей">архиерейского</a> сана и заточен в <a href="/wiki/%D0%91%D0%B5%D0%BB%D0%BE%D0%B7%D0%B5%D1%80%D1%81%D0%BA%D0%B8%D0%B9_%D1%83%D0%B5%D0%B7%D0%B4" title="Белозерский уезд">Белозерский</a> <a href="/wiki/%D0%A4%D0%B5%D1%80%D0%B0%D0%BF%D0%BE%D0%BD%D1%82%D0%BE%D0%B2_%D0%BC%D0%BE%D0%BD%D0%B0%D1%81%D1%82%D1%8B%D1%80%D1%8C" class="mw-redirect" title="Ферапонтов монастырь">Ферапонтов монастырь</a>. В тот же период войн (<a href="/wiki/1654" class="mw-redirect" title="1654">1654</a>—<a href="/wiki/1667" class="mw-redirect" title="1667">1667</a>) царь Алексей Михайлович лично побывал в <a href="/wiki/%D0%92%D0%B8%D1%82%D0%B5%D0%B1%D1%81%D0%BA" title="Витебск">Витебске</a>, <a href="/wiki/%D0%9F%D0%BE%D0%BB%D0%BE%D1%86%D0%BA" title="Полоцк">Полоцке</a>, <a href="/wiki/%D0%9C%D0%BE%D0%B3%D0%B8%D0%BB%D1%91%D0%B2" title="Могилёв">Могилёве</a>, <a href="/wiki/%D0%9A%D0%B0%D1%83%D0%BD%D0%B0%D1%81" title="Каунас">Ковно</a>, <a href="/wiki/%D0%93%D1%80%D0%BE%D0%B4%D0%BD%D0%BE" title="Гродно">Гродно</a>, особенно в <a href="/wiki/%D0%92%D0%B8%D0%BB%D1%8C%D0%BD%D1%8E%D1%81" title="Вильнюс">Вильно</a>, и здесь ознакомился с новым образом жизни; по возвращении в Москву он сделал перемены в придворной обстановке. Внутри дворца появились <a href="/wiki/%D0%9A%D0%BE%D0%B6%D0%B0%D0%BD%D1%8B%D0%B5_%D0%BE%D0%B1%D0%BE%D0%B8" title="Кожаные обои">обои («золотые кожи»)</a> и мебель на немецкий и польский образец. Снаружи резьба стала фигурной, во вкусе <a href="/wiki/%D0%A0%D0%BE%D0%BA%D0%BE%D0%BA%D0%BE" title="Рококо">рококо</a>, а не только лишь на поверхности дерева по русскому обычаю.</p>
+<h4><span class="mw-headline" id=".D0.9C.D0.BE.D0.BD.D0.B5.D1.82.D0.BD.D0.B0.D1.8F_.D1.80.D0.B5.D1.84.D0.BE.D1.80.D0.BC.D0.B0">Монетная реформа</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=9" class="mw-editsection-visualeditor" title="Редактировать раздел «Монетная реформа»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=9" title="Редактировать раздел «Монетная реформа»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h4>
+<div class="dablink noprint">Основная статья: <b><a href="/wiki/%D0%94%D0%B5%D0%BD%D0%B5%D0%B6%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D1%84%D0%BE%D1%80%D0%BC%D0%B0_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%8F_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87%D0%B0" title="Денежная реформа Алексея Михайловича">Денежная реформа Алексея Михайловича</a></b></div>
+<div class="thumb tright">
+<div class="thumbinner" style="width:222px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Zvenigorod_palace.jpg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/35/Zvenigorod_palace.jpg/220px-Zvenigorod_palace.jpg" width="220" height="147" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/35/Zvenigorod_palace.jpg/330px-Zvenigorod_palace.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/35/Zvenigorod_palace.jpg/440px-Zvenigorod_palace.jpg 2x" data-file-width="550" data-file-height="367" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Zvenigorod_palace.jpg" class="internal" title="Увеличить"></a></div>
+Палаты Алексея Михайловича в <a href="/wiki/%D0%A1%D0%B0%D0%B2%D0%B2%D0%B8%D0%BD%D0%BE-%D0%A1%D1%82%D0%BE%D1%80%D0%BE%D0%B6%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9_%D0%BC%D0%BE%D0%BD%D0%B0%D1%81%D1%82%D1%8B%D1%80%D1%8C" title="Саввино-Сторожевский монастырь">Саввино-Сторожевском монастыре</a></div>
+</div>
+</div>
+<p>В <a href="/wiki/1654_%D0%B3%D0%BE%D0%B4" title="1654 год">1654 году</a> царь распорядился из накопленных в казне <a href="/wiki/%D0%A2%D0%B0%D0%BB%D0%B5%D1%80" title="Талер">талеров</a> отчеканить <a href="/wiki/%D0%A0%D1%83%D0%B1%D0%BB%D1%8C" title="Рубль">рубли</a>. На одной стороне был изображен орёл в квадрате (картуше) и в орнаментах, дата буквами и надпись «рубль». На другой стороне царь-всадник на скачущем коне, по кругу надпись: «Божиею милостию великий государь, царь и великий князь Алексей Михайлович всея Великия и Малыя России». В связи со сложностью изготовления штемпелей не удалось перечеканить все имеющие талеры. В <a href="/wiki/1655_%D0%B3%D0%BE%D0%B4" title="1655 год">1655 году</a> талеры стали надчеканивать с одной стороны двумя штемпелями (прямоугольным с датой «1655» и круглым штемпелем копейки (всадник на коне). Такая монета получила название «<a href="/wiki/%D0%95%D1%84%D0%B8%D0%BC%D0%BE%D0%BA" title="Ефимок">Ефимок</a> с признаком». Ефимок и рубль приравнивались к 64 копейкам (по весу), хотя ранее цена варьировалась от 40 до 60 копеек. Разрубленный на четыре части талер надчеканивали, таким образом появилась в обращение четвертина (полуполтинник). Была введена ещё монета <a href="/wiki/%D0%9F%D0%BE%D0%BB%D1%83%D0%B5%D1%84%D0%B8%D0%BC%D0%BE%D0%BA" class="mw-redirect" title="Полуефимок">полуефимок</a> (разрубленный пополам талер с надчеканом). «<a href="/wiki/%D0%95%D1%84%D0%B8%D0%BC%D0%BE%D0%BA" title="Ефимок">Ефимок</a> с признаком» и его доли (полуефимок и четвертина) имели хождение в основном на Украине.</p>
+<p>Был введен в обращение медный <a href="/wiki/%D0%9F%D0%BE%D0%BB%D1%82%D0%B8%D0%BD%D0%BD%D0%B8%D0%BA" class="mw-redirect" title="Полтинник">полтинник</a>. Надпись на полтиннике вокруг всадника на идущем коне: «Божиею милостию царь и великий князь Алексей Михайлович всея Руси». На рублях и полтинниках присутствовала дата славянской цифирью (буквами) в переводе «лета 7162», то есть по летоисчислению от Сотворения Мира.</p>
+<p>Собирание налогов было велено производить <a href="/wiki/%D0%A1%D0%B5%D1%80%D0%B5%D0%B1%D1%80%D1%8F%D0%BD%D1%8B%D0%B5_%D0%BC%D0%BE%D0%BD%D0%B5%D1%82%D1%8B" title="Серебряные монеты">серебром</a>, а выплаты из казны&#160;— <a href="/wiki/%D0%9C%D0%B5%D0%B4%D0%BD%D1%8B%D0%B5_%D0%BC%D0%BE%D0%BD%D0%B5%D1%82%D1%8B" title="Медные монеты">медными монетами</a>. Таким образом царь быстро пополнил казну серебром. Однако, крестьяне отказывались продавать зерно, а купцы&#160;— товары за медь, следствием чего стал <a href="/wiki/%D0%9C%D0%B5%D0%B4%D0%BD%D1%8B%D0%B9_%D0%B1%D1%83%D0%BD%D1%82" title="Медный бунт">медный бунт</a>. Впоследствии медные монеты были изъяты из обращения.</p>
+<p><a href="/wiki/%D0%94%D0%B5%D0%BD%D0%B5%D0%B6%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D1%84%D0%BE%D1%80%D0%BC%D0%B0_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%8F_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87%D0%B0" title="Денежная реформа Алексея Михайловича">Денежная реформа Алексея Михайловича</a> считается<sup><span class="nowrap">[<i><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%98%D0%B7%D0%B1%D0%B5%D0%B3%D0%B0%D0%B9%D1%82%D0%B5_%D0%BD%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D1%85_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9" title="Википедия:Избегайте неопределённых выражений">кем?</a></i>]</span></sup> неудачной, и только при Петре Первом началась чеканка монет, по качеству не уступающим европейским монетам.</p>
+<h4><span class="mw-headline" id=".D0.92.D0.BD.D1.83.D1.82.D1.80.D0.B5.D0.BD.D0.BD.D0.B8.D0.B5_.D0.B1.D0.B5.D1.81.D0.BF.D0.BE.D1.80.D1.8F.D0.B4.D0.BA.D0.B8">Внутренние беспорядки</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=10" class="mw-editsection-visualeditor" title="Редактировать раздел «Внутренние беспорядки»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=10" title="Редактировать раздел «Внутренние беспорядки»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h4>
+<div class="thumb tright">
+<div class="thumbinner" style="width:222px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Alexius_Michaelowiz.JPG" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/28/Alexius_Michaelowiz.JPG/220px-Alexius_Michaelowiz.JPG" width="220" height="174" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/28/Alexius_Michaelowiz.JPG/330px-Alexius_Michaelowiz.JPG 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/28/Alexius_Michaelowiz.JPG/440px-Alexius_Michaelowiz.JPG 2x" data-file-width="687" data-file-height="542" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Alexius_Michaelowiz.JPG" class="internal" title="Увеличить"></a></div>
+Царь Алексей Михайлович. Гравюра XVII века. Редкое изображение государя в повседневной одежде</div>
+</div>
+</div>
+<p>Едва успела стихнуть война с Польшей, как правительство должно было обратить внимание на новые внутренние беспорядки, на <a href="/wiki/%D0%A1%D0%BE%D0%BB%D0%BE%D0%B2%D0%B5%D1%86%D0%BA%D0%BE%D0%B5_%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%B8%D0%B5" title="Соловецкое восстание">Соловецкое возмущение</a> и <a href="/wiki/%D0%92%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE%D0%B4_%D0%BF%D1%80%D0%B5%D0%B4%D0%B2%D0%BE%D0%B4%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%BE%D0%BC_%D0%A1%D1%82%D0%B5%D0%BF%D0%B0%D0%BD%D0%B0_%D0%A0%D0%B0%D0%B7%D0%B8%D0%BD%D0%B0" title="Восстание под предводительством Степана Разина">восстание Разина</a>.</p>
+<p>С падением <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BD_(%D0%9F%D0%B0%D1%82%D1%80%D0%B8%D0%B0%D1%80%D1%85_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" class="mw-redirect" title="Никон (Патриарх Московский)">Никона</a> не уничтожено было главное его нововведение: исправление церковных книг. Многие священники и монастыри не согласились принять эти новшества. Особенно упорное сопротивление оказал <a href="/wiki/%D0%A1%D0%BE%D0%BB%D0%BE%D0%B2%D0%B5%D1%86%D0%BA%D0%B8%D0%B9_%D0%BC%D0%BE%D0%BD%D0%B0%D1%81%D1%82%D1%8B%D1%80%D1%8C" title="Соловецкий монастырь">Соловецкий монастырь</a>; осаждённый с <a href="/wiki/1668_%D0%B3%D0%BE%D0%B4" title="1668 год">1668&#160;года</a>, он взят был воеводой Мещериновым <abbr title="по юлианскому календарю">22&#160;января</abbr>&#160;(<a href="/wiki/1_%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F" title="1 февраля"><span title="по григорианскому календарю">1&#160;февраля</span></a>)&#160;<a href="/wiki/1676_%D0%B3%D0%BE%D0%B4" title="1676 год">1676</a> г.; мятежники были перевешаны.</p>
+<p>В то же время на юге поднял бунт донской казак <a href="/wiki/%D0%A0%D0%B0%D0%B7%D0%B8%D0%BD,_%D0%A1%D1%82%D0%B5%D0%BF%D0%B0%D0%BD_%D0%A2%D0%B8%D0%BC%D0%BE%D1%84%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Разин, Степан Тимофеевич">Степан Разин</a>. Ограбив караван <a href="/wiki/%D0%93%D0%BE%D1%81%D1%82%D1%8C_(%D0%BA%D1%83%D0%BF%D0%B5%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE)" title="Гость (купечество)">гостя</a> Шорина в 1667&#160;г., Разин двинулся на <a href="/wiki/%D0%AF%D0%B8%D0%BA" class="mw-redirect" title="Яик">Яик</a>, взял <a href="/wiki/%D0%AF%D0%B8%D1%86%D0%BA%D0%B8%D0%B9_%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D0%BE%D0%BA" class="mw-redirect" title="Яицкий городок">Яицкий городок</a>, грабил персидские суда, но в <a href="/wiki/%D0%90%D1%81%D1%82%D1%80%D0%B0%D1%85%D0%B0%D0%BD%D1%8C" title="Астрахань">Астрахани</a> принёс повинную. В мае 1670 года он снова отправился на <a href="/wiki/%D0%92%D0%BE%D0%BB%D0%B3%D0%B0" title="Волга">Волгу</a>, взял <a href="/wiki/%D0%A6%D0%B0%D1%80%D0%B8%D1%86%D1%8B%D0%BD" class="mw-redirect" title="Царицын">Царицын</a>, <a href="/wiki/%D0%A7%D1%91%D1%80%D0%BD%D1%8B%D0%B9_%D0%AF%D1%80_(%D0%90%D1%81%D1%82%D1%80%D0%B0%D1%85%D0%B0%D0%BD%D1%81%D0%BA%D0%B0%D1%8F_%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C)" class="mw-redirect" title="Чёрный Яр (Астраханская область)">Чёрный Яр</a>, <a href="/wiki/%D0%90%D1%81%D1%82%D1%80%D0%B0%D1%85%D0%B0%D0%BD%D1%8C" title="Астрахань">Астрахань</a>, <a href="/wiki/%D0%A1%D0%B0%D1%80%D0%B0%D1%82%D0%BE%D0%B2" title="Саратов">Саратов</a>, <a href="/wiki/%D0%A1%D0%B0%D0%BC%D0%B0%D1%80%D0%B0" title="Самара">Самару</a> и поднял <a href="/wiki/%D0%A7%D0%B5%D1%80%D0%B5%D0%BC%D0%B8%D1%81%D1%8B" class="mw-redirect" title="Черемисы">черемис</a>, <a href="/wiki/%D0%A7%D1%83%D0%B2%D0%B0%D1%88%D0%B8" title="Чуваши">чувашей</a>, <a href="/wiki/%D0%9C%D0%BE%D1%80%D0%B4%D0%B2%D0%B0" title="Мордва">мордву</a>, <a href="/wiki/%D0%A2%D0%B0%D1%82%D0%B0%D1%80%D1%8B" title="Татары">татар</a>, но под <a href="/wiki/%D0%A1%D0%B8%D0%BC%D0%B1%D0%B8%D1%80%D1%81%D0%BA" class="mw-redirect" title="Симбирск">Симбирском</a> разбит был князем <a href="/wiki/%D0%91%D0%B0%D1%80%D1%8F%D1%82%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9,_%D0%AE%D1%80%D0%B8%D0%B9_%D0%9D%D0%B8%D0%BA%D0%B8%D1%82%D0%B8%D1%87" title="Барятинский, Юрий Никитич">Ю. Барятинским</a>, бежал на <a href="/wiki/%D0%94%D0%BE%D0%BD" title="Дон">Дон</a> и, выданный <a href="/wiki/%D0%90%D1%82%D0%B0%D0%BC%D0%B0%D0%BD" title="Атаман">атаманом</a> <a href="/wiki/%D0%AF%D0%BA%D0%BE%D0%B2%D0%BB%D0%B5%D0%B2,_%D0%9A%D0%BE%D1%80%D0%BD%D0%B8%D0%BB%D0%B8%D0%B9_%D0%AF%D0%BA%D0%BE%D0%B2%D0%BB%D0%B5%D0%B2%D0%B8%D1%87" title="Яковлев, Корнилий Яковлевич">Корнилом Яковлевым</a>, казнён в Москве <abbr title="6 июня по юлианскому календарю">6</abbr>&#160;(<a href="/wiki/16_%D0%B8%D1%8E%D0%BD%D1%8F" title="16 июня"><span title="16 июня по григорианскому календарю">16</span></a>)&#160;июня&#160;<a href="/wiki/1671_%D0%B3%D0%BE%D0%B4" title="1671 год">1671</a> года.</p>
+<p>Вскоре после казни Разина началась <a href="/wiki/%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%BE-%D1%82%D1%83%D1%80%D0%B5%D1%86%D0%BA%D0%B0%D1%8F_%D0%B2%D0%BE%D0%B9%D0%BD%D0%B0_(1672%E2%80%941681)" title="Русско-турецкая война (1672—1681)">война</a> с <a href="/wiki/%D0%A2%D1%83%D1%80%D1%86%D0%B8%D1%8F" title="Турция">Турцией</a> из-за <a href="/wiki/%D0%9C%D0%B0%D0%BB%D0%BE%D1%80%D0%BE%D1%81%D1%81%D0%B8%D1%8F" class="mw-redirect" title="Малороссия">Малороссии</a>. <a href="/wiki/%D0%91%D1%80%D1%8E%D1%85%D0%BE%D0%B2%D0%B5%D1%86%D0%BA%D0%B8%D0%B9,_%D0%98%D0%B2%D0%B0%D0%BD_%D0%9C%D0%B0%D1%80%D1%82%D1%8B%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Брюховецкий, Иван Мартынович">Брюховецкий</a> изменил Москве, но и сам был убит приверженцами <a href="/wiki/%D0%94%D0%BE%D1%80%D0%BE%D1%88%D0%B5%D0%BD%D0%BA%D0%BE,_%D0%9F%D1%91%D1%82%D1%80_%D0%94%D0%BE%D1%80%D0%BE%D1%84%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Дорошенко, Пётр Дорофеевич">Дорошенко</a>. Последний стал <a href="/wiki/%D0%93%D0%B5%D1%82%D0%BC%D0%B0%D0%BD_%D0%92%D0%BE%D0%B9%D1%81%D0%BA%D0%B0_%D0%97%D0%B0%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D1%81%D0%BA%D0%BE%D0%B3%D0%BE" title="Гетман Войска Запорожского">гетманом обеих сторон Днепра</a>, хотя управление левой стороной поручил наказному гетману <a href="/wiki/%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D0%B3%D1%80%D0%B5%D1%88%D0%BD%D1%8B%D0%B9,_%D0%94%D0%B5%D0%BC%D1%8C%D1%8F%D0%BD_%D0%98%D0%B3%D0%BD%D0%B0%D1%82%D1%8C%D0%B5%D0%B2%D0%B8%D1%87" title="Многогрешный, Демьян Игнатьевич">Многогрешному</a>. Многогрешный избран был в гетманы на <a href="/wiki/%D0%A0%D0%B0%D0%B4%D0%B0" class="mw-disambig" title="Рада">раде</a> в <a href="/wiki/%D0%93%D0%BB%D1%83%D1%85%D0%BE%D0%B2" title="Глухов">Глухове</a> (в марте 1669&#160;г.), снова перешёл на сторону Москвы, но свергнут старшинами и сослан в <a href="/wiki/%D0%A1%D0%B8%D0%B1%D0%B8%D1%80%D1%8C" title="Сибирь">Сибирь</a>. На его место в июне 1672&#160;г. избран <a href="/wiki/%D0%A1%D0%B0%D0%BC%D0%BE%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87,_%D0%98%D0%B2%D0%B0%D0%BD_%D0%A1%D0%B0%D0%BC%D0%BE%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" title="Самойлович, Иван Самойлович">Иван Самойлович</a>. Между тем <a href="/wiki/%D0%A2%D1%83%D1%80%D0%B5%D1%86%D0%BA%D0%B8%D0%B9_%D1%81%D1%83%D0%BB%D1%82%D0%B0%D0%BD" class="mw-redirect" title="Турецкий султан">турецкий султан</a> <a href="/wiki/%D0%9C%D0%B5%D1%85%D0%BC%D0%B5%D0%B4_IV" title="Мехмед IV">Мехмед IV</a>, которому поддался Дорошенко, не хотел отказаться и от <a href="/wiki/%D0%9B%D0%B5%D0%B2%D0%BE%D0%B1%D0%B5%D1%80%D0%B5%D0%B6%D0%BD%D0%B0%D1%8F_%D0%A3%D0%BA%D1%80%D0%B0%D0%B8%D0%BD%D0%B0" title="Левобережная Украина">левобережной Украины</a>. Началась война, в которой прославился польский король <a href="/wiki/%D0%AF%D0%BD_III_%D0%A1%D0%BE%D0%B1%D0%B5%D1%81%D0%BA%D0%B8%D0%B9" title="Ян III Собеский">Ян III Собеский</a>, бывший <a href="/wiki/%D0%93%D0%B5%D1%82%D0%BC%D0%B0%D0%BD_%D0%B2%D0%B5%D0%BB%D0%B8%D0%BA%D0%B8%D0%B9_%D0%BA%D0%BE%D1%80%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9" title="Гетман великий коронный">коронным гетманом</a>. Война окончилась 20-летним миром лишь в <a href="/wiki/1681_%D0%B3%D0%BE%D0%B4" title="1681 год">1681&#160;году</a>.</p>
+<h4><span class="mw-headline" id=".D0.98.D1.82.D0.BE.D0.B3.D0.B8_.D1.86.D0.B0.D1.80.D1.81.D1.82.D0.B2.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D0.90.D0.BB.D0.B5.D0.BA.D1.81.D0.B5.D1.8F_.D0.9C.D0.B8.D1.85.D0.B0.D0.B9.D0.BB.D0.BE.D0.B2.D0.B8.D1.87.D0.B0">Итоги царствования Алексея Михайловича</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=11" class="mw-editsection-visualeditor" title="Редактировать раздел «Итоги царствования Алексея Михайловича»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=11" title="Редактировать раздел «Итоги царствования Алексея Михайловича»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h4>
+<div class="dablink">См. также: <a href="/wiki/%D0%A1%D0%BE%D0%B1%D0%BE%D1%80%D0%BD%D0%BE%D0%B5_%D1%83%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_1649_%D0%B3%D0%BE%D0%B4%D0%B0" title="Соборное уложение 1649 года">Соборное уложение 1649 года</a></div>
+<p>Из внутренних распоряжений при царе Алексее можно выделить следующее:</p>
+<ul>
+<li>запрет <a href="/wiki/%D0%91%D0%B5%D0%BB%D0%BE%D0%BC%D0%B5%D1%81%D1%82%D1%86%D1%8B" title="Беломестцы">беломестцам</a> (<a href="/wiki/%D0%9C%D0%BE%D0%BD%D0%B0%D1%81%D1%82%D1%8B%D1%80%D1%8C" title="Монастырь">монастырям</a> и <a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B8%D0%BB%D1%8B%D0%B5_%D0%BB%D1%8E%D0%B4%D0%B8" title="Служилые люди">лицам, находившимся на государственной, военной или гражданской службе</a>) владеть <a href="/wiki/%D0%A7%D1%91%D1%80%D0%BD%D1%8B%D0%B5_%D0%B7%D0%B5%D0%BC%D0%BB%D0%B8" title="Чёрные земли">чёрными, тяглыми землями</a> и промышленными, торговыми заведениями (лавками и проч.) на <a href="/wiki/%D0%9F%D0%BE%D1%81%D0%B0%D0%B4" title="Посад">посаде</a>;</li>
+<li>окончательное прикрепление тяглых классов, <a href="/wiki/%D0%9A%D1%80%D0%B5%D1%81%D1%82%D1%8C%D1%8F%D0%BD%D0%B5" class="mw-redirect" title="Крестьяне">крестьян</a> и <a href="/wiki/%D0%9F%D0%BE%D1%81%D0%B0%D0%B4%D1%81%D0%BA%D0%B8%D0%B5_%D0%BB%D1%8E%D0%B4%D0%B8" title="Посадские люди">посадских людей</a>, к месту жительства; переход воспрещён был в <a href="/wiki/1648_%D0%B3%D0%BE%D0%B4" title="1648 год">1648 году</a> не только крестьянам-хозяевам, но и детям их, братьям и племянникам (по <a href="/wiki/%D0%A1%D0%BE%D0%B1%D0%BE%D1%80%D0%BD%D0%BE%D0%B5_%D1%83%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_1649_%D0%B3%D0%BE%D0%B4%D0%B0" title="Соборное уложение 1649 года">Соборному Уложению</a> <a href="/wiki/1649_%D0%B3%D0%BE%D0%B4" title="1649 год">1649&#160;года</a>).</li>
+<li>основаны новые центральные учреждения, каковы <a href="/wiki/%D0%9F%D1%80%D0%B8%D0%BA%D0%B0%D0%B7_(%D0%BE%D1%80%D0%B3%D0%B0%D0%BD_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F)" title="Приказ (орган управления)">приказы</a>: <a href="/wiki/%D0%9F%D1%80%D0%B8%D0%BA%D0%B0%D0%B7_%D1%82%D0%B0%D0%B9%D0%BD%D1%8B%D1%85_%D0%B4%D0%B5%D0%BB" title="Приказ тайных дел">Тайных дел</a> (не позже <a href="/wiki/1658_%D0%B3%D0%BE%D0%B4" title="1658 год">1658 года</a>), <a href="/wiki/%D0%A5%D0%BB%D0%B5%D0%B1%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%B8%D0%BA%D0%B0%D0%B7" title="Хлебный приказ">Хлебный</a> (не позже <a href="/wiki/1663_%D0%B3%D0%BE%D0%B4" title="1663 год">1663 года</a>), <a href="/wiki/%D0%A0%D0%B5%D0%B9%D1%82%D0%B0%D1%80%D1%81%D0%BA%D0%B8%D0%B9_%D0%BF%D1%80%D0%B8%D0%BA%D0%B0%D0%B7" title="Рейтарский приказ">Рейтарский</a> (с <a href="/wiki/1651_%D0%B3%D0%BE%D0%B4" title="1651 год">1651 года</a>), <a href="/wiki/%D0%9F%D1%80%D0%B8%D0%BA%D0%B0%D0%B7_%D1%81%D1%87%D1%91%D1%82%D0%BD%D1%8B%D0%B9" title="Приказ счётный">Счётных дел</a> (упоминается с <a href="/wiki/1657_%D0%B3%D0%BE%D0%B4" title="1657 год">1657 года</a>), занятый проверкой прихода, расхода и остатков денежных сумм, <a href="/wiki/%D0%9C%D0%B0%D0%BB%D0%BE%D1%80%D0%BE%D1%81%D1%81%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_%D0%BF%D1%80%D0%B8%D0%BA%D0%B0%D0%B7" title="Малороссийский приказ">Малороссийский</a> (упоминается с <a href="/wiki/1649_%D0%B3%D0%BE%D0%B4" title="1649 год">1649 года</a>), <a href="/w/index.php?title=%D0%9B%D0%B8%D1%82%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9_%D0%BF%D1%80%D0%B8%D0%BA%D0%B0%D0%B7&amp;action=edit&amp;redlink=1" class="new" title="Литовский приказ (страница отсутствует)">Литовский</a> (<a href="/wiki/1656" class="mw-redirect" title="1656">1656</a>—<a href="/wiki/1667" class="mw-redirect" title="1667">1667</a>), <a href="/wiki/%D0%9C%D0%BE%D0%BD%D0%B0%D1%81%D1%82%D1%8B%D1%80%D1%81%D0%BA%D0%B8%D0%B9_%D0%BF%D1%80%D0%B8%D0%BA%D0%B0%D0%B7" title="Монастырский приказ">Монастырский</a> (<a href="/wiki/1648" class="mw-redirect" title="1648">1648</a>—<a href="/wiki/1677" class="mw-redirect" title="1677">1677</a>).</li>
+</ul>
+<div class="thumb tleft">
+<div class="thumbinner" style="width:222px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Kneaze_Alexey_Michailovitz.jpg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Kneaze_Alexey_Michailovitz.jpg/220px-Kneaze_Alexey_Michailovitz.jpg" width="220" height="377" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/f/fc/Kneaze_Alexey_Michailovitz.jpg 1.5x" data-file-width="321" data-file-height="550" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Kneaze_Alexey_Michailovitz.jpg" class="internal" title="Увеличить"></a></div>
+Алексей Михайлович (польская гравюра, 1664 год)</div>
+</div>
+</div>
+<p>В финансовом отношении сделано также несколько преобразований:</p>
+<ul>
+<li>в <a href="/wiki/1646_%D0%B3%D0%BE%D0%B4" title="1646 год">1646 году</a> и следующих годах совершена <a href="/wiki/%D0%9F%D0%BE%D0%B4%D0%B2%D0%BE%D1%80%D0%BD%D1%8B%D0%B5_%D0%BF%D0%B5%D1%80%D0%B5%D0%BF%D0%B8%D1%81%D0%B8" title="Подворные переписи">перепись тяглых дворов</a> с их совершеннолетним и несовершеннолетним населением мужского пола;</li>
+<li>сделана неудачная вышеуказанная попытка введения новой <a href="/wiki/%D0%A1%D0%BE%D0%BB%D1%8F%D0%BD%D0%BE%D0%B9_%D0%BD%D0%B0%D0%BB%D0%BE%D0%B3" title="Соляной налог">соляной пошлины</a>;</li>
+<li>указом от <a href="/wiki/30_%D0%B0%D0%BF%D1%80%D0%B5%D0%BB%D1%8F" title="30 апреля">30 апреля</a> <a href="/wiki/1653_%D0%B3%D0%BE%D0%B4" title="1653 год">1653 года</a> запрещено было взимать мелкие <a href="/wiki/%D0%A2%D0%B0%D0%BC%D0%BE%D0%B6%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D0%BE%D1%88%D0%BB%D0%B8%D0%BD%D1%8B" title="Таможенные пошлины">таможенные пошлины</a> (<a href="/wiki/%D0%9C%D1%8B%D1%82" title="Мыт">мыт</a>, <a href="/wiki/%D0%A1%D0%BE%D0%BB%D1%8F%D0%BD%D0%BE%D0%B9_%D0%BD%D0%B0%D0%BB%D0%BE%D0%B3" title="Соляной налог">проезжие пошлины</a> и <a href="/wiki/%D0%93%D0%BE%D0%B4%D0%BE%D0%B2%D1%89%D0%B8%D0%BD%D0%B0" title="Годовщина">годовщину</a>) или отдавать их на <a href="/wiki/%D0%9E%D1%82%D0%BA%D1%83%D0%BF" title="Откуп">откуп</a> и велено было зачислить в рублёвые пошлины, взимаемые в таможнях;</li>
+<li>в начале <a href="/wiki/1656_%D0%B3%D0%BE%D0%B4" title="1656 год">1656 года</a> (не позже 3-го марта) ввиду недостатка денежных средств выпущены <a href="/wiki/%D0%9C%D0%B5%D0%B4%D0%BD%D1%8B%D0%B5_%D0%BC%D0%BE%D0%BD%D0%B5%D1%82%D1%8B" title="Медные монеты">медные деньги</a>. Вскоре (с <a href="/wiki/1658_%D0%B3%D0%BE%D0%B4" title="1658 год">1658 года</a>) медный <a href="/wiki/%D0%A0%D1%83%D0%B1%D0%BB%D1%8C" title="Рубль">рубль</a> стал цениться в 10, 12, а в <a href="/wiki/1660-%D0%B5" class="mw-redirect" title="1660-е">1660-х</a> годах даже в 20 и 25 раз дешевле серебряного; наступившая вследствие этого страшная дороговизна вызвала народный мятеж (<a href="/wiki/%D0%9C%D0%B5%D0%B4%D0%BD%D1%8B%D0%B9_%D0%B1%D1%83%D0%BD%D1%82" title="Медный бунт">Медный бунт</a>) <a href="/wiki/25_%D0%B8%D1%8E%D0%BB%D1%8F" title="25 июля">25 июля</a> <a href="/wiki/1662_%D0%B3%D0%BE%D0%B4" title="1662 год">1662 года</a>. Мятеж усмирён обещанием царя наказать виновных и высылкой стрелецкого войска против мятежников.</li>
+<li>указом от <abbr title="19 июня по юлианскому календарю">19</abbr>&#160;(<a href="/wiki/29_%D0%B8%D1%8E%D0%BD%D1%8F" title="29 июня"><span title="29 июня по григорианскому календарю">29</span></a>)&#160;июня&#160;<a href="/wiki/1667_%D0%B3%D0%BE%D0%B4" title="1667 год">1667</a> года велено было приступить к постройке кораблей в селе <a href="/wiki/%D0%94%D0%B5%D0%B4%D0%B8%D0%BD%D0%BE%D0%B2%D0%BE" title="Дединово">Дединове</a> на <a href="/wiki/%D0%9E%D0%BA%D0%B0" title="Ока">Оке</a>; впрочем, <a href="/wiki/%D0%9E%D1%80%D1%91%D0%BB_(%D1%84%D1%80%D0%B5%D0%B3%D0%B0%D1%82)" title="Орёл (фрегат)">выстроенный тогда же корабль</a> сгорел в <a href="/wiki/%D0%90%D1%81%D1%82%D1%80%D0%B0%D1%85%D0%B0%D0%BD%D1%8C" title="Астрахань">Астрахани</a>.</li>
+</ul>
+<p>В области законодательства:</p>
+<ul>
+<li>составлено и издано <a href="/wiki/%D0%A1%D0%BE%D0%B1%D0%BE%D1%80%D0%BD%D0%BE%D0%B5_%D1%83%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_1649_%D0%B3%D0%BE%D0%B4%D0%B0" title="Соборное уложение 1649 года">Соборное уложение</a> (печаталось в 1-й раз 7—20 мая <a href="/wiki/1649_%D0%B3%D0%BE%D0%B4" title="1649 год">1649 года</a>) и пополняющие его в некоторых отношениях: <a href="/w/index.php?title=%D0%9D%D0%BE%D0%B2%D0%BE%D1%82%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9_%D1%83%D1%81%D1%82%D0%B0%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Новоторговый устав (страница отсутствует)">Новоторговый устав</a> <a href="/wiki/1667_%D0%B3%D0%BE%D0%B4" title="1667 год">1667 года</a>, <a href="/w/index.php?title=%D0%9D%D0%BE%D0%B2%D0%BE%D1%83%D0%BA%D0%B0%D0%B7%D0%BD%D1%8B%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8&amp;action=edit&amp;redlink=1" class="new" title="Новоуказные статьи (страница отсутствует)">Новоуказные статьи</a> о разбойных и убийственных делах <a href="/wiki/1669_%D0%B3%D0%BE%D0%B4" title="1669 год">1669 года</a>, Новоуказные статьи о поместьях <a href="/wiki/1676_%D0%B3%D0%BE%D0%B4" title="1676 год">1676 года</a>, <a href="/wiki/%D0%92%D0%BE%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9_%D1%83%D1%81%D1%82%D0%B0%D0%B2_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%8F_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87%D0%B0" title="Воинский устав Алексея Михайловича">воинский устав</a> 1649 года.</li>
+<li>также Россия объединилась с Украиной в <a href="/wiki/1654_%D0%B3%D0%BE%D0%B4" title="1654 год">1654&#160;году</a>.</li>
+</ul>
+<p>При царе Алексее продолжалось колонизационное движение в <a href="/wiki/%D0%A1%D0%B8%D0%B1%D0%B8%D1%80%D1%8C" title="Сибирь">Сибирь</a>. Прославились в этом отношении: А. <a href="/wiki/%D0%91%D1%83%D0%BB%D1%8B%D0%B3%D0%B8%D0%BD" class="mw-disambig" title="Булыгин">Булыгин</a>, <a href="/wiki/%D0%A1%D1%82%D0%B5%D0%BF%D0%B0%D0%BD%D0%BE%D0%B2,_%D0%9E%D0%BD%D1%83%D1%84%D1%80%D0%B8%D0%B9" title="Степанов, Онуфрий">О. Степанов</a>, <a href="/wiki/%D0%A5%D0%B0%D0%B1%D0%B0%D1%80%D0%BE%D0%B2,_%D0%95%D1%80%D0%BE%D1%84%D0%B5%D0%B9_%D0%9F%D0%B0%D0%B2%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" title="Хабаров, Ерофей Павлович">Е. Хабаров</a> и другие. Основаны: <a href="/wiki/%D0%A1%D0%B8%D0%BC%D0%B1%D0%B8%D1%80%D1%81%D0%BA" class="mw-redirect" title="Симбирск">Симбирск</a> (<a href="/wiki/1648_%D0%B3%D0%BE%D0%B4" title="1648 год">1648 год</a>), <a href="/wiki/%D0%9D%D0%B5%D1%80%D1%87%D0%B8%D0%BD%D1%81%D0%BA" title="Нерчинск">Нерчинск</a> (<a href="/wiki/1658_%D0%B3%D0%BE%D0%B4" title="1658 год">1658 год</a>), <a href="/wiki/%D0%98%D1%80%D0%BA%D1%83%D1%82%D1%81%D0%BA" title="Иркутск">Иркутск</a> (<a href="/wiki/1661_%D0%B3%D0%BE%D0%B4" title="1661 год">1661 год</a>), <a href="/wiki/%D0%9F%D0%B5%D0%BD%D0%B7%D0%B0" title="Пенза">Пенза</a> (<a href="/wiki/1663_%D0%B3%D0%BE%D0%B4" title="1663 год">1663 год</a>), <a href="/wiki/%D0%9A%D1%83%D0%BD%D0%B3%D1%83%D1%80" title="Кунгур">Кунгур</a> (<a href="/wiki/1663_%D0%B3%D0%BE%D0%B4" title="1663 год">1663 год</a>), <a href="/wiki/%D0%9D%D0%BE%D0%B2%D0%BE%D1%81%D0%B5%D0%BB%D0%B5%D0%BD%D0%B3%D0%B8%D0%BD%D1%81%D0%BA" title="Новоселенгинск">Селенгинск</a> (<a href="/wiki/1666_%D0%B3%D0%BE%D0%B4" title="1666 год">1666 год</a>).</p>
+<h4><span class="mw-headline" id=".D0.A1.D0.BC.D0.B5.D1.80.D1.82.D1.8C">Смерть</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=12" class="mw-editsection-visualeditor" title="Редактировать раздел «Смерть»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=12" title="Редактировать раздел «Смерть»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h4>
+<div class="thumb tright">
+<div class="thumbinner" style="width:222px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Cathedral_of_the_Archangel_in_Moscow_K.A.Fisher_(1905)_18.jpg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/41/Cathedral_of_the_Archangel_in_Moscow_K.A.Fisher_%281905%29_18.jpg/220px-Cathedral_of_the_Archangel_in_Moscow_K.A.Fisher_%281905%29_18.jpg" width="220" height="164" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/41/Cathedral_of_the_Archangel_in_Moscow_K.A.Fisher_%281905%29_18.jpg/330px-Cathedral_of_the_Archangel_in_Moscow_K.A.Fisher_%281905%29_18.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/41/Cathedral_of_the_Archangel_in_Moscow_K.A.Fisher_%281905%29_18.jpg/440px-Cathedral_of_the_Archangel_in_Moscow_K.A.Fisher_%281905%29_18.jpg 2x" data-file-width="640" data-file-height="476" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Cathedral_of_the_Archangel_in_Moscow_K.A.Fisher_(1905)_18.jpg" class="internal" title="Увеличить"></a></div>
+Архангельский собор. Перспектива торцов надгробий царя Алексея Михайловича (1629—1676), царевича Алексея Алексеевича (1654—1670), царя Михаила Федоровича (1596—1645), царевичей-младенцев Василия и Ивана Михайловичей. Фотография К.&#160;А.&#160;Фишера. 1905&#160;г. Из коллекций Музея архитектуры им. А.&#160;В.&#160;Щусева.</div>
+</div>
+</div>
+<p>В последние годы правления царя Алексея при дворе особенно возвысился <a href="/wiki/%D0%9C%D0%B0%D1%82%D0%B2%D0%B5%D0%B5%D0%B2,_%D0%90%D1%80%D1%82%D0%B0%D0%BC%D0%BE%D0%BD_%D0%A1%D0%B5%D1%80%D0%B3%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Матвеев, Артамон Сергеевич">Артамон Сергеевич Матвеев</a>. Через два года после смерти <a href="/wiki/%D0%9C%D0%B8%D0%BB%D0%BE%D1%81%D0%BB%D0%B0%D0%B2%D1%81%D0%BA%D0%B0%D1%8F,_%D0%9C%D0%B0%D1%80%D0%B8%D1%8F_%D0%98%D0%BB%D1%8C%D0%B8%D0%BD%D0%B8%D1%87%D0%BD%D0%B0" title="Милославская, Мария Ильинична">М.&#160;И.&#160;Милославской</a> (<abbr title="4 марта по юлианскому календарю">4</abbr>&#160;(<a href="/wiki/14_%D0%BC%D0%B0%D1%80%D1%82%D0%B0" title="14 марта"><span title="14 марта по григорианскому календарю">14</span></a>)&#160;марта&#160;<a href="/wiki/1669_%D0%B3%D0%BE%D0%B4" title="1669 год">1669</a> г.) царь женился на его родственнице <a href="/wiki/%D0%9D%D0%B0%D1%80%D1%8B%D1%88%D0%BA%D0%B8%D0%BD%D0%B0,_%D0%9D%D0%B0%D1%82%D0%B0%D0%BB%D1%8C%D1%8F_%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%BE%D0%B2%D0%BD%D0%B0" title="Нарышкина, Наталья Кирилловна">Наталье Кирилловне Нарышкиной</a>, <abbr title="по юлианскому календарю">22&#160;января</abbr>&#160;(<a href="/wiki/1_%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F" title="1 февраля"><span title="по григорианскому календарю">1&#160;февраля</span></a>)&#160;<a href="/wiki/1671_%D0%B3%D0%BE%D0%B4" title="1671 год">1671</a> г. Матвеев, поклонник западноевропейских обычаев, давал театральные представления, на которые ходил не только сам царь, но и царица, царевичи и царевны (например, <abbr title="2 ноября по юлианскому календарю">2</abbr>&#160;(<a href="/wiki/12_%D0%BD%D0%BE%D1%8F%D0%B1%D1%80%D1%8F" title="12 ноября"><span title="12 ноября по григорианскому календарю">12</span></a>)&#160;ноября&#160;<a href="/wiki/1672_%D0%B3%D0%BE%D0%B4" title="1672 год">1672</a> г. в селе Преображенском). <abbr title="1 сентября по юлианскому календарю">1</abbr>&#160;(<a href="/wiki/11_%D1%81%D0%B5%D0%BD%D1%82%D1%8F%D0%B1%D1%80%D1%8F" title="11 сентября"><span title="11 сентября по григорианскому календарю">11</span></a>)&#160;сентября&#160;<a href="/wiki/1674_%D0%B3%D0%BE%D0%B4" title="1674 год">1674</a> г. царь объявил своего сына <a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_III_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Фёдор III Алексеевич">Фёдора</a> наследником престола. <abbr title="по юлианскому календарю">30&#160;января</abbr>&#160;(<a href="/wiki/9_%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F" title="9 февраля"><span title="по григорианскому календарю">9&#160;февраля</span></a>)&#160;<a href="/wiki/1676_%D0%B3%D0%BE%D0%B4" title="1676 год">1676</a> года царь Алексей Михайлович Тишайший скончался от <a href="/wiki/%D0%A1%D0%B5%D1%80%D0%B4%D0%B5%D1%87%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%B8%D1%81%D1%82%D1%83%D0%BF" class="mw-redirect" title="Сердечный приступ">сердечного приступа</a> на 47 году жизни.</p>
+<h3><span class="mw-headline" id=".D0.91.D1.80.D0.B0.D0.BA.D0.B8_.D0.B8_.D0.B4.D0.B5.D1.82.D0.B8">Браки и дети</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=13" class="mw-editsection-visualeditor" title="Редактировать раздел «Браки и дети»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=13" title="Редактировать раздел «Браки и дети»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h3>
+<div class="thumb tright">
+<div class="thumbinner" style="width:222px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Alexix_I_and_Natalia_Naryshkina.JPG" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/2/28/Alexix_I_and_Natalia_Naryshkina.JPG/220px-Alexix_I_and_Natalia_Naryshkina.JPG" width="220" height="294" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/28/Alexix_I_and_Natalia_Naryshkina.JPG/330px-Alexix_I_and_Natalia_Naryshkina.JPG 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/28/Alexix_I_and_Natalia_Naryshkina.JPG/440px-Alexix_I_and_Natalia_Naryshkina.JPG 2x" data-file-width="1372" data-file-height="1832" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Alexix_I_and_Natalia_Naryshkina.JPG" class="internal" title="Увеличить"></a></div>
+Свадьба царя Алексея Михайловича и Натальи Нарышкиной. Гравюра XVII века</div>
+</div>
+</div>
+<div class="dablink noprint">Основная статья: <b><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%8F_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87%D0%B0" title="Дети Алексея Михайловича">Дети Алексея Михайловича</a></b></div>
+<p>Алексей Михайлович был отцом 16 детей от двух браков. Трое из его сыновей впоследствии царствовали. Ни одна из дочерей Алексея Михайловича не вышла замуж.</p>
+<ul>
+<li><i><a href="/wiki/%D0%9C%D0%B8%D0%BB%D0%BE%D1%81%D0%BB%D0%B0%D0%B2%D1%81%D0%BA%D0%B0%D1%8F,_%D0%9C%D0%B0%D1%80%D0%B8%D1%8F_%D0%98%D0%BB%D1%8C%D0%B8%D0%BD%D0%B8%D1%87%D0%BD%D0%B0" title="Милославская, Мария Ильинична">Мария Ильинична Милославская</a></i> (13 детей):
+<ul>
+<li><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Caravaca3.png" class="image"><img alt="Caravaca3.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/10px-Caravaca3.png" width="10" height="19" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/15px-Caravaca3.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/20px-Caravaca3.png 2x" data-file-width="49" data-file-height="92" /></a> <a href="/wiki/%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Дмитрий Алексеевич">Дмитрий</a> (<abbr title="по юлианскому календарю">22&#160;октября</abbr>&#160;(<a href="/wiki/1_%D0%BD%D0%BE%D1%8F%D0%B1%D1%80%D1%8F" title="1 ноября"><span title="по григорианскому календарю">1&#160;ноября</span></a>)&#160;<a href="/wiki/1648_%D0%B3%D0%BE%D0%B4" title="1648 год">1648</a>&#160;— <abbr title="6 октября по юлианскому календарю">6</abbr>&#160;(<a href="/wiki/16_%D0%BE%D0%BA%D1%82%D1%8F%D0%B1%D1%80%D1%8F" title="16 октября"><span title="16 октября по григорианскому календарю">16</span></a>)&#160;октября&#160;<a href="/wiki/1649_%D0%B3%D0%BE%D0%B4" title="1649 год">1649</a>)<sup id="cite_ref-.D0.BF.D0.B0.D0.BD_16-0" class="reference"><a href="#cite_note-.D0.BF.D0.B0.D0.BD-16">[16]</a></sup></li>
+<li><a href="/wiki/%D0%95%D0%B2%D0%B4%D0%BE%D0%BA%D0%B8%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0_(%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%BD%D0%B0)" class="mw-redirect" title="Евдокия Алексеевна (царевна)">Евдокия</a> (<abbr title="17 февраля по юлианскому календарю">17</abbr>&#160;(<a href="/wiki/27_%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F" title="27 февраля"><span title="27 февраля по григорианскому календарю">27</span></a>)&#160;февраля&#160;<a href="/wiki/1650_%D0%B3%D0%BE%D0%B4" title="1650 год">1650</a>&#160;— <abbr title="10 мая по юлианскому календарю">10</abbr>&#160;(<a href="/wiki/21_%D0%BC%D0%B0%D1%8F" title="21 мая"><span title="21 мая по григорианскому календарю">21</span></a>)&#160;мая&#160;<a href="/wiki/1712_%D0%B3%D0%BE%D0%B4" title="1712 год">1712</a>)</li>
+<li><a href="/wiki/%D0%9C%D0%B0%D1%80%D1%84%D0%B0_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0_(%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%BD%D0%B0)" class="mw-redirect" title="Марфа Алексеевна (царевна)">Марфа</a> (<abbr title="по юлианскому календарю">26&#160;августа</abbr>&#160;(<a href="/wiki/5_%D1%81%D0%B5%D0%BD%D1%82%D1%8F%D0%B1%D1%80%D1%8F" title="5 сентября"><span title="по григорианскому календарю">5&#160;сентября</span></a>)&#160;<a href="/wiki/1652_%D0%B3%D0%BE%D0%B4" title="1652 год">1652</a>&#160;— <abbr title="19 июня по юлианскому календарю">19</abbr>&#160;(<a href="/wiki/30_%D0%B8%D1%8E%D0%BD%D1%8F" title="30 июня"><span title="30 июня по григорианскому календарю">30</span></a>)&#160;июня&#160;<a href="/wiki/1707_%D0%B3%D0%BE%D0%B4" title="1707 год">1707</a>)</li>
+<li><a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Алексей Алексеевич">Алексей</a> (<abbr title="15 февраля по юлианскому календарю">15</abbr>&#160;(<a href="/wiki/25_%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F" title="25 февраля"><span title="25 февраля по григорианскому календарю">25</span></a>)&#160;февраля&#160;<a href="/wiki/1654_%D0%B3%D0%BE%D0%B4" title="1654 год">1654</a>&#160;— <abbr title="17 января по юлианскому календарю">17</abbr>&#160;(<a href="/wiki/27_%D1%8F%D0%BD%D0%B2%D0%B0%D1%80%D1%8F" title="27 января"><span title="27 января по григорианскому календарю">27</span></a>)&#160;января&#160;<a href="/wiki/1670_%D0%B3%D0%BE%D0%B4" title="1670 год">1670</a>)</li>
+<li><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Caravaca3.png" class="image"><img alt="Caravaca3.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/10px-Caravaca3.png" width="10" height="19" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/15px-Caravaca3.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/20px-Caravaca3.png 2x" data-file-width="49" data-file-height="92" /></a> <a href="/wiki/%D0%90%D0%BD%D0%BD%D0%B0_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0" class="mw-redirect" title="Анна Алексеевна">Анна</a> (<abbr title="по юлианскому календарю">23&#160;января</abbr>&#160;(<a href="/wiki/2_%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F" title="2 февраля"><span title="по григорианскому календарю">2&#160;февраля</span></a>)&#160;<a href="/wiki/1655_%D0%B3%D0%BE%D0%B4" title="1655 год">1655</a>, Вязьма&#160;— <abbr title="8 мая по юлианскому календарю">8</abbr>&#160;(<a href="/wiki/18_%D0%BC%D0%B0%D1%8F" title="18 мая"><span title="18 мая по григорианскому календарю">18</span></a>)&#160;мая&#160;<a href="/wiki/1659_%D0%B3%D0%BE%D0%B4" title="1659 год">1659</a>, Москва)</li>
+<li><a href="/wiki/%D0%A6%D0%B0%D1%80%D0%B5%D0%B2%D0%BD%D0%B0_%D0%A1%D0%BE%D1%84%D1%8C%D1%8F" class="mw-redirect" title="Царевна Софья">Софья</a> (<abbr title="17 сентября по юлианскому календарю">17</abbr>&#160;(<a href="/wiki/27_%D1%81%D0%B5%D0%BD%D1%82%D1%8F%D0%B1%D1%80%D1%8F" title="27 сентября"><span title="27 сентября по григорианскому календарю">27</span></a>)&#160;сентября&#160;<a href="/wiki/1657_%D0%B3%D0%BE%D0%B4" title="1657 год">1657</a>&#160;— <abbr title="3 июля по юлианскому календарю">3</abbr>&#160;(<a href="/wiki/14_%D0%B8%D1%8E%D0%BB%D1%8F" title="14 июля"><span title="14 июля по григорианскому календарю">14</span></a>)&#160;июля&#160;<a href="/wiki/1704_%D0%B3%D0%BE%D0%B4" title="1704 год">1704</a>)</li>
+<li><a href="/wiki/%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0_(%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%BD%D0%B0)" class="mw-redirect" title="Екатерина Алексеевна (царевна)">Екатерина</a> (<abbr title="по юлианскому календарю">27&#160;ноября</abbr>&#160;(<a href="/wiki/7_%D0%B4%D0%B5%D0%BA%D0%B0%D0%B1%D1%80%D1%8F" title="7 декабря"><span title="по григорианскому календарю">7&#160;декабря</span></a>)&#160;<a href="/wiki/1658_%D0%B3%D0%BE%D0%B4" title="1658 год">1658</a>&#160;— <abbr title="1 мая по юлианскому календарю">1</abbr>&#160;(<a href="/wiki/12_%D0%BC%D0%B0%D1%8F" title="12 мая"><span title="12 мая по григорианскому календарю">12</span></a>)&#160;мая&#160;<a href="/wiki/1718_%D0%B3%D0%BE%D0%B4" title="1718 год">1718</a>)</li>
+<li><a href="/wiki/%D0%9C%D0%B0%D1%80%D0%B8%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0_(%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%BD%D0%B0)" class="mw-redirect" title="Мария Алексеевна (царевна)">Мария</a> (<abbr title="18 января по юлианскому календарю">18</abbr>&#160;(<a href="/wiki/28_%D1%8F%D0%BD%D0%B2%D0%B0%D1%80%D1%8F" title="28 января"><span title="28 января по григорианскому календарю">28</span></a>)&#160;января&#160;<a href="/wiki/1660_%D0%B3%D0%BE%D0%B4" title="1660 год">1660</a>&#160;— <abbr title="9 марта по юлианскому календарю">9</abbr>&#160;(<a href="/wiki/20_%D0%BC%D0%B0%D1%80%D1%82%D0%B0" title="20 марта"><span title="20 марта по григорианскому календарю">20</span></a>)&#160;марта&#160;<a href="/wiki/1723_%D0%B3%D0%BE%D0%B4" title="1723 год">1723</a>)</li>
+<li><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:H%C3%A9raldique_meuble_couronne.svg" class="image" title="Корона"><img alt="Корона" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/ce/H%C3%A9raldique_meuble_couronne.svg/22px-H%C3%A9raldique_meuble_couronne.svg.png" width="22" height="12" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/ce/H%C3%A9raldique_meuble_couronne.svg/33px-H%C3%A9raldique_meuble_couronne.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/ce/H%C3%A9raldique_meuble_couronne.svg/44px-H%C3%A9raldique_meuble_couronne.svg.png 2x" data-file-width="153" data-file-height="81" /></a> <a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_III" class="mw-redirect" title="Фёдор III">Фёдор III</a> (<abbr title="по юлианскому календарю">30&#160;мая</abbr>&#160;(<a href="/wiki/9_%D0%B8%D1%8E%D0%BD%D1%8F" title="9 июня"><span title="по григорианскому календарю">9&#160;июня</span></a>)&#160;<a href="/wiki/1661_%D0%B3%D0%BE%D0%B4" title="1661 год">1661</a>&#160;— <abbr title="по юлианскому календарю">27&#160;апреля</abbr>&#160;(<a href="/wiki/7_%D0%BC%D0%B0%D1%8F" title="7 мая"><span title="по григорианскому календарю">7&#160;мая</span></a>)&#160;<a href="/wiki/1682_%D0%B3%D0%BE%D0%B4" title="1682 год">1682</a>)</li>
+<li><a href="/wiki/%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%81%D0%B8%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0_(%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%BD%D0%B0)" class="mw-redirect" title="Феодосия Алексеевна (царевна)">Феодосия</a> (<abbr title="по юлианскому календарю">29&#160;марта</abbr>&#160;(<a href="/wiki/8_%D0%B0%D0%BF%D1%80%D0%B5%D0%BB%D1%8F" title="8 апреля"><span title="по григорианскому календарю">8&#160;апреля</span></a>)&#160;<a href="/wiki/1662_%D0%B3%D0%BE%D0%B4" title="1662 год">1662</a>&#160;— <abbr title="14 декабря по юлианскому календарю">14</abbr>&#160;(<a href="/wiki/25_%D0%B4%D0%B5%D0%BA%D0%B0%D0%B1%D1%80%D1%8F" title="25 декабря"><span title="25 декабря по григорианскому календарю">25</span></a>)&#160;декабря&#160;<a href="/wiki/1713_%D0%B3%D0%BE%D0%B4" title="1713 год">1713</a>)</li>
+<li><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Caravaca3.png" class="image"><img alt="Caravaca3.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/10px-Caravaca3.png" width="10" height="19" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/15px-Caravaca3.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/20px-Caravaca3.png 2x" data-file-width="49" data-file-height="92" /></a> <a href="/wiki/%D0%A1%D0%B8%D0%BC%D0%B5%D0%BE%D0%BD_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Симеон Алексеевич">Симеон</a> (<abbr title="3 апреля по юлианскому календарю">3</abbr>&#160;(<a href="/wiki/13_%D0%B0%D0%BF%D1%80%D0%B5%D0%BB%D1%8F" title="13 апреля"><span title="13 апреля по григорианскому календарю">13</span></a>)&#160;апреля&#160;<a href="/wiki/1665_%D0%B3%D0%BE%D0%B4" title="1665 год">1665</a>&#160;— <abbr title="18 июня по юлианскому календарю">18</abbr>&#160;(<a href="/wiki/28_%D0%B8%D1%8E%D0%BD%D1%8F" title="28 июня"><span title="28 июня по григорианскому календарю">28</span></a>)&#160;июня&#160;<a href="/wiki/1669_%D0%B3%D0%BE%D0%B4" title="1669 год">1669</a>)</li>
+<li><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:H%C3%A9raldique_meuble_couronne.svg" class="image" title="Корона"><img alt="Корона" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/ce/H%C3%A9raldique_meuble_couronne.svg/22px-H%C3%A9raldique_meuble_couronne.svg.png" width="22" height="12" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/ce/H%C3%A9raldique_meuble_couronne.svg/33px-H%C3%A9raldique_meuble_couronne.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/ce/H%C3%A9raldique_meuble_couronne.svg/44px-H%C3%A9raldique_meuble_couronne.svg.png 2x" data-file-width="153" data-file-height="81" /></a> <a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_V" title="Иван V">Иван V</a> (<abbr title="по юлианскому календарю">27&#160;августа</abbr>&#160;(<a href="/wiki/6_%D1%81%D0%B5%D0%BD%D1%82%D1%8F%D0%B1%D1%80%D1%8F" title="6 сентября"><span title="по григорианскому календарю">6&#160;сентября</span></a>)&#160;<a href="/wiki/1666_%D0%B3%D0%BE%D0%B4" title="1666 год">1666</a>&#160;— <abbr title="по юлианскому календарю">29&#160;января</abbr>&#160;(<a href="/wiki/8_%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F" title="8 февраля"><span title="по григорианскому календарю">8&#160;февраля</span></a>)&#160;<a href="/wiki/1696_%D0%B3%D0%BE%D0%B4" title="1696 год">1696</a>)</li>
+<li><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Caravaca3.png" class="image"><img alt="Caravaca3.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/10px-Caravaca3.png" width="10" height="19" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/15px-Caravaca3.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/20px-Caravaca3.png 2x" data-file-width="49" data-file-height="92" /></a> <a href="/wiki/%D0%95%D0%B2%D0%B4%D0%BE%D0%BA%D0%B8%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0_(1669)" class="mw-redirect" title="Евдокия Алексеевна (1669)">Евдокия (младшая)</a> (<abbr title="по юлианскому календарю">26&#160;февраля</abbr>&#160;(<a href="/wiki/8_%D0%BC%D0%B0%D1%80%D1%82%D0%B0" title="8 марта"><span title="по григорианскому календарю">8&#160;марта</span></a>)&#160;<a href="/wiki/1669_%D0%B3%D0%BE%D0%B4" title="1669 год">1669</a>&#160;— <abbr title="по юлианскому календарю">28&#160;февраля</abbr>&#160;(<a href="/wiki/10_%D0%BC%D0%B0%D1%80%D1%82%D0%B0" title="10 марта"><span title="по григорианскому календарю">10&#160;марта</span></a>)&#160;<a href="/wiki/1669_%D0%B3%D0%BE%D0%B4" title="1669 год">1669</a>)</li>
+</ul>
+</li>
+</ul>
+<ul>
+<li><i><a href="/wiki/%D0%9D%D0%B0%D1%80%D1%8B%D1%88%D0%BA%D0%B8%D0%BD%D0%B0,_%D0%9D%D0%B0%D1%82%D0%B0%D0%BB%D1%8C%D1%8F_%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%BE%D0%B2%D0%BD%D0%B0" title="Нарышкина, Наталья Кирилловна">Наталья Кирилловна Нарышкина</a></i> (3 ребёнка):
+<ul>
+<li><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:H%C3%A9raldique_meuble_couronne.svg" class="image" title="Корона"><img alt="Корона" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/ce/H%C3%A9raldique_meuble_couronne.svg/22px-H%C3%A9raldique_meuble_couronne.svg.png" width="22" height="12" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/ce/H%C3%A9raldique_meuble_couronne.svg/33px-H%C3%A9raldique_meuble_couronne.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/ce/H%C3%A9raldique_meuble_couronne.svg/44px-H%C3%A9raldique_meuble_couronne.svg.png 2x" data-file-width="153" data-file-height="81" /></a> <a href="/wiki/%D0%9F%D1%91%D1%82%D1%80_I" title="Пётр I">Пётр I</a> (<abbr title="по юлианскому календарю">30&#160;мая</abbr>&#160;(<a href="/wiki/9_%D0%B8%D1%8E%D0%BD%D1%8F" title="9 июня"><span title="по григорианскому календарю">9&#160;июня</span></a>)&#160;<a href="/wiki/1672_%D0%B3%D0%BE%D0%B4" title="1672 год">1672</a>&#160;— <abbr title="по юлианскому календарю">28&#160;января</abbr>&#160;(<a href="/wiki/8_%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F" title="8 февраля"><span title="по григорианскому календарю">8&#160;февраля</span></a>)&#160;<a href="/wiki/1725_%D0%B3%D0%BE%D0%B4" title="1725 год">1725</a>)</li>
+<li><a href="/wiki/%D0%9D%D0%B0%D1%82%D0%B0%D0%BB%D1%8C%D1%8F_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0_(%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%BD%D0%B0)" title="Наталья Алексеевна (царевна)">Наталья</a> (<abbr title="по юлианскому календарю">22&#160;августа</abbr>&#160;(<a href="/wiki/1_%D1%81%D0%B5%D0%BD%D1%82%D1%8F%D0%B1%D1%80%D1%8F" title="1 сентября"><span title="по григорианскому календарю">1&#160;сентября</span></a>)&#160;<a href="/wiki/1673_%D0%B3%D0%BE%D0%B4" title="1673 год">1673</a>&#160;— <abbr title="18 июня по юлианскому календарю">18</abbr>&#160;(<a href="/wiki/29_%D0%B8%D1%8E%D0%BD%D1%8F" title="29 июня"><span title="29 июня по григорианскому календарю">29</span></a>)&#160;июня&#160;<a href="/wiki/1716_%D0%B3%D0%BE%D0%B4" title="1716 год">1716</a>)</li>
+<li><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Caravaca3.png" class="image"><img alt="Caravaca3.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/10px-Caravaca3.png" width="10" height="19" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/15px-Caravaca3.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/20px-Caravaca3.png 2x" data-file-width="49" data-file-height="92" /></a> <a href="/wiki/%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80%D0%B0_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%BD%D0%B0_(%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%BD%D0%B0)" class="mw-redirect" title="Феодора Алексеевна (царевна)">Феодора</a> (<abbr title="4 сентября по юлианскому календарю">4</abbr>&#160;(<a href="/wiki/14_%D1%81%D0%B5%D0%BD%D1%82%D1%8F%D0%B1%D1%80%D1%8F" title="14 сентября"><span title="14 сентября по григорианскому календарю">14</span></a>)&#160;сентября&#160;<a href="/wiki/1674_%D0%B3%D0%BE%D0%B4" title="1674 год">1674</a>&#160;— <abbr title="по юлианскому календарю">28&#160;ноября</abbr>&#160;(<a href="/wiki/8_%D0%B4%D0%B5%D0%BA%D0%B0%D0%B1%D1%80%D1%8F" title="8 декабря"><span title="по григорианскому календарю">8&#160;декабря</span></a>)&#160;<a href="/wiki/1678_%D0%B3%D0%BE%D0%B4" title="1678 год">1678</a>)</li>
+</ul>
+</li>
+</ul>
+<h2><span class="mw-headline" id=".D0.9F.D1.80.D0.B5.D0.B4.D0.BA.D0.B8">Предки</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=14" class="mw-editsection-visualeditor" title="Редактировать раздел «Предки»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=14" title="Редактировать раздел «Предки»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<table class="wikitable mw-collapsible mw-collapsed" style="width:100%;">
+<tr>
+<th style="width:100%; text-align: center;">Алексей Михайлович — предки</th>
+</tr>
+<tr>
+<td>
+<table cellspacing="0" cellpadding="0" border="0" style="font-size: 90%; line-height: 110%;">
+<tr align="center">
+<td rowspan="62" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="62">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="62">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #9fe;"><a href="/wiki/%D0%97%D0%B0%D1%85%D0%B0%D1%80%D1%8C%D0%B8%D0%BD,_%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD_%D0%AE%D1%80%D1%8C%D0%B5%D0%B2%D0%B8%D1%87" class="mw-redirect" title="Захарьин, Роман Юрьевич">Роман Юрьевич Захарьин-Кошкин</a></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="2" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #bfc;"><a href="/wiki/%D0%97%D0%B0%D1%85%D0%B0%D1%80%D1%8C%D0%B8%D0%BD,_%D0%9D%D0%B8%D0%BA%D0%B8%D1%82%D0%B0_%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Захарьин, Никита Романович">Никита Романович Захарьин-Юрьев</a></td>
+<td rowspan="2" colspan="3">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="6" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-bottom: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #9fe;"><a href="/wiki/%D0%97%D0%B0%D1%85%D0%B0%D1%80%D1%8C%D0%B8%D0%BD%D0%B0,_%D0%A3%D0%BB%D1%8C%D1%8F%D0%BD%D0%B0_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%BD%D0%B0" title="Захарьина, Ульяна Фёдоровна">Ульяна Фёдоровна</a></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="2" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #ffc;"><a href="/wiki/%D0%A4%D0%B8%D0%BB%D0%B0%D1%80%D0%B5%D1%82_(%D0%9F%D0%B0%D1%82%D1%80%D0%B8%D0%B0%D1%80%D1%85_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" class="mw-redirect" title="Филарет (Патриарх Московский)">Фёдор Никитич Романов</a></td>
+<td rowspan="2" colspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="14" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-bottom: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #bfc;"><a href="/w/index.php?title=%D0%A5%D0%BE%D0%B2%D1%80%D0%B8%D0%BD%D0%B0-%D0%93%D0%BE%D0%BB%D0%BE%D0%B2%D0%B8%D0%BD%D0%B0,_%D0%92%D0%B0%D1%80%D0%B2%D0%B0%D1%80%D0%B0_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Ховрина-Головина, Варвара Ивановна (страница отсутствует)">Варвара Ивановна Ховрина-Головина</a> или Евдокия Ивановна Горбатая-Суздальская</td>
+<td rowspan="2" colspan="3">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="6" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #fb9;"><a href="/wiki/%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87" title="Михаил Фёдорович">Михаил Фёдорович</a></td>
+<td rowspan="2" colspan="9">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="30" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #9fe;">Василий Михайлович Шестов</td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #bfc;"><a href="/w/index.php?title=%D0%A8%D0%B5%D1%81%D1%82%D0%BE%D0%B2,_%D0%98%D0%B2%D0%B0%D0%BD_%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D1%8C%D0%B5%D0%B2%D0%B8%D1%87&amp;action=edit&amp;redlink=1" class="new" title="Шестов, Иван Васильевич (страница отсутствует)">Иван Васильевич Шестов</a></td>
+<td rowspan="2" colspan="3">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="6" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-bottom: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #ffc;"><a href="/wiki/%D0%A8%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D0%B0,_%D0%9A%D1%81%D0%B5%D0%BD%D0%B8%D1%8F_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0" title="Шестова, Ксения Ивановна">Ксения Ивановна Шестова</a></td>
+<td rowspan="2" colspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="14" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-bottom: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #bfc;">Мария</td>
+<td rowspan="2" colspan="3">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="6" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #fcc;"><b>Алексей Михайлович</b></td>
+<td rowspan="2" colspan="12">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="62" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="62">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="62">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #9fe;">Андрей Стрешнев</td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="2" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #bfc;">Степан Андреевич Стрешнев</td>
+<td rowspan="2" colspan="3">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="6" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #ffc;"><a href="/wiki/%D0%A1%D1%82%D1%80%D0%B5%D1%88%D0%BD%D0%B5%D0%B2,_%D0%9B%D1%83%D0%BA%D1%8C%D1%8F%D0%BD_%D0%A1%D1%82%D0%B5%D0%BF%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Стрешнев, Лукьян Степанович">Лукьян Степанович Стрешнев</a></td>
+<td rowspan="2" colspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="14" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-bottom: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #fb9;">Стрешнева, Евдокия Лукьяновна</td>
+<td rowspan="2" colspan="9">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="30" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-bottom: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #ffc;">Анна Константиновна</td>
+<td rowspan="2" colspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="14" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14}">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14}">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14}">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14}" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14}">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14}">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14}">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14}">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<h2><span class="mw-headline" id=".D0.98.D0.BD.D1.82.D0.B5.D1.80.D0.B5.D1.81.D0.BD.D1.8B.D0.B5_.D1.84.D0.B0.D0.BA.D1.82.D1.8B">Интересные факты</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=15" class="mw-editsection-visualeditor" title="Редактировать раздел «Интересные факты»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=15" title="Редактировать раздел «Интересные факты»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<ul>
+<li>Любимым развлечением Алексея Михайловича была игра в шахматы (и другие близкие им настольные игры: тавлеи, саки…)<sup id="cite_ref-17" class="reference"><a href="#cite_note-17">[17]</a></sup>. На картине российского художника Вячеслава Шварца <a href="/wiki/%D0%A1%D1%86%D0%B5%D0%BD%D0%B0_%D0%B8%D0%B7_%D0%B4%D0%BE%D0%BC%D0%B0%D1%88%D0%BD%D0%B5%D0%B9_%D0%B6%D0%B8%D0%B7%D0%BD%D0%B8_%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D1%85_%D1%86%D0%B0%D1%80%D0%B5%D0%B9" title="Сцена из домашней жизни русских царей">«Сцена из домашней жизни русских царей»</a> (1865) предстаёт царь Алексей Михайлович, играющий в шахматы с боярином.</li>
+<li>В детстве Алексей Михайлович получил хорошее музыкальное образование. В зрелом возрасте он сочинял церковные песнопения. Из них сохранилась только <a href="/wiki/%D0%A1%D1%82%D0%B8%D1%85%D0%B8%D1%80%D0%B0" title="Стихира">стихира</a> «Достойно есть», написанная в европейском, или <a href="/wiki/%D0%92%D0%B5%D0%BD%D0%B5%D1%86%D0%B8%D1%8F" title="Венеция">«венецианском»</a> (в терминологии XVII века) стиле, основанном на польско-украинской традиции, где ведущую партию играют басы. Стихира вошла в репертуар Мужского хора Издательского Отдела Московской Патриархии «Древнерусский Распев»<sup id="cite_ref-18" class="reference"><a href="#cite_note-18">[18]</a></sup>.</li>
+</ul>
+<h2><span class="mw-headline" id=".D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5">См. также</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=16" class="mw-editsection-visualeditor" title="Редактировать раздел «См. также»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=16" title="Редактировать раздел «См. также»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<ul>
+<li><a href="/wiki/%D0%9F%D0%BE%D1%80%D1%82%D1%80%D0%B5%D1%82_%D0%BA%D0%BE%D1%82%D0%B0" class="mw-redirect" title="Портрет кота">Подлинный портрет кота Великого князя Московского</a></li>
+</ul>
+<h2><span class="mw-headline" id=".D0.9F.D0.B0.D0.BC.D1.8F.D1.82.D0.BD.D0.B8.D0.BA.D0.B8">Памятники</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=17" class="mw-editsection-visualeditor" title="Редактировать раздел «Памятники»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=17" title="Редактировать раздел «Памятники»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<ul>
+<li>В августе 2010 года в <a href="/wiki/%D0%9D%D0%BE%D0%B2%D1%8B%D0%B9_%D0%9E%D1%81%D0%BA%D0%BE%D0%BB" title="Новый Оскол">Новом Осколе</a> открыт памятник основателю города царю Алексею Михайловичу.</li>
+<li>В <a href="/wiki/%D0%9F%D0%B5%D0%BD%D0%B7%D0%B0" title="Пенза">Пензе</a> к 350-летию города планируется установка памятника царю Алексею Михайловичу<sup id="cite_ref-19" class="reference"><a href="#cite_note-19">[19]</a></sup>.</li>
+</ul>
+<h2><span class="mw-headline" id=".D0.9A.D0.B8.D0.BD.D0.B5.D0.BC.D0.B0.D1.82.D0.BE.D0.B3.D1.80.D0.B0.D1.84">Кинематограф</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=18" class="mw-editsection-visualeditor" title="Редактировать раздел «Кинематограф»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=18" title="Редактировать раздел «Кинематограф»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<ul>
+<li><a href="/wiki/%D0%9B%D0%B5%D0%BE%D0%BD%D1%82%D1%8C%D0%B5%D0%B2,_%D0%9F%D1%91%D1%82%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Леонтьев, Пётр Иванович">Пётр Леонтьев</a> («<a href="/wiki/%D0%A1%D1%82%D0%B5%D0%BF%D0%B0%D0%BD_%D0%A0%D0%B0%D0%B7%D0%B8%D0%BD_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)" title="Степан Разин (фильм)">Степан Разин</a>». Реж. <a href="/wiki/%D0%9F%D1%80%D0%B0%D0%B2%D0%BE%D0%B2,_%D0%98%D0%B2%D0%B0%D0%BD_%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D0%B8%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Правов, Иван Константинович">И. Правов</a>, <a href="/wiki/%D0%9F%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D1%81%D0%BA%D0%B0%D1%8F,_%D0%9E%D0%BB%D1%8C%D0%B3%D0%B0_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0" title="Преображенская, Ольга Ивановна">О. Преображенская</a>. <a href="/wiki/1939" class="mw-redirect" title="1939">1939</a>)</li>
+<li><a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2,_%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B5%D0%B2%D0%B8%D1%87_(%D0%B0%D0%BA%D1%82%D1%91%D1%80)" title="Иванов, Владимир Николаевич (актёр)">Владимир Иванов</a> («<a href="/wiki/%D0%A2%D1%80%D0%B8%D1%81%D1%82%D0%B0_%D0%BB%D0%B5%D1%82_%D1%82%D0%BE%D0%BC%D1%83%E2%80%A6_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)" title="Триста лет тому… (фильм)">300 лет тому…</a>». Реж. <a href="/wiki/%D0%9F%D0%B5%D1%82%D1%80%D0%BE%D0%B2,_%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87_(%D1%80%D0%B5%D0%B6%D0%B8%D1%81%D1%81%D1%91%D1%80)" title="Петров, Владимир Михайлович (режиссёр)">В. Петров</a>. <a href="/wiki/1956" class="mw-redirect" title="1956">1956</a>)</li>
+<li><a href="/wiki/%D0%98%D0%BB%D1%8C%D1%8F_%D0%93%D1%83%D1%80%D0%B8%D0%BD" class="mw-redirect" title="Илья Гурин">Илья Гурин</a> («<a href="/wiki/%D0%93%D1%83%D0%BB%D1%8F%D1%89%D0%B8%D0%B5_%D0%BB%D1%8E%D0%B4%D0%B8_(%D1%84%D0%B8%D0%BB%D1%8C%D0%BC)" title="Гулящие люди (фильм)">Гулящие люди</a>». Реж. <a href="/wiki/%D0%93%D1%83%D1%80%D0%B8%D0%BD,_%D0%98%D0%BB%D1%8C%D1%8F_%D0%AF%D0%BA%D0%BE%D0%B2%D0%BB%D0%B5%D0%B2%D0%B8%D1%87" title="Гурин, Илья Яковлевич">И. Гурин</a>. <a href="/wiki/1988" class="mw-redirect" title="1988">1988</a>)</li>
+<li><a href="/w/index.php?title=%D0%A2%D0%B8%D1%85%D0%BE%D0%BD%D0%BE%D0%B2,_%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%AE%D1%80%D1%8C%D0%B5%D0%B2%D0%B8%D1%87&amp;action=edit&amp;redlink=1" class="new" title="Тихонов, Дмитрий Юрьевич (страница отсутствует)">Дмитрий Тихонов</a> («<a href="/wiki/%D0%A0%D0%B0%D1%81%D0%BA%D0%BE%D0%BB_(%D1%82%D0%B5%D0%BB%D0%B5%D1%81%D0%B5%D1%80%D0%B8%D0%B0%D0%BB,_2011)" title="Раскол (телесериал, 2011)">Раскол</a>», т/с. Реж. Н. Досталь. <a href="/wiki/2011" class="mw-redirect" title="2011">2011</a>)</li>
+<li>Александр Горелов («<a href="/wiki/%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2%D1%8B_(%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D1%86%D0%B8%D0%BA%D0%BB)" title="Романовы (документальный цикл)">Романовы. Фильм первый</a>». Реж. М. Беспалый. <a href="/wiki/2013" class="mw-redirect" title="2013">2013</a>)</li>
+</ul>
+<h2><span class="mw-headline" id=".D0.92.D0.B0.D0.B6.D0.BD.D0.B5.D0.B9.D1.88.D0.B8.D0.B5_.D1.81.D0.BE.D1.87.D0.B8.D0.BD.D0.B5.D0.BD.D0.B8.D1.8F_.D0.BF.D0.BE_.D0.B8.D1.81.D1.82.D0.BE.D1.80.D0.B8.D0.B8_.D1.86.D0.B0.D1.80.D1.81.D1.82.D0.B2.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D1.86.D0.B0.D1.80.D1.8F_.D0.90.D0.BB.D0.B5.D0.BA.D1.81.D0.B5.D1.8F">Важнейшие сочинения по истории царствования царя Алексея</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=19" class="mw-editsection-visualeditor" title="Редактировать раздел «Важнейшие сочинения по истории царствования царя Алексея»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=19" title="Редактировать раздел «Важнейшие сочинения по истории царствования царя Алексея»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<ul>
+<li><span class="citation"><i>Аболенский Иван.</i> Московское государство при царе Алексее Михайловиче и патриархе Никоне по запискам архидиакона Павла Алеппского.&#160;— Киев: Типография С.Т.Еремеева, 1876.&#160;— 203&#160;с.</span></li>
+<li><i><a href="/wiki/%D0%91%D0%B5%D1%80%D1%85,_%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B5%D0%B2%D0%B8%D1%87" title="Берх, Василий Николаевич">Берх В. Н.</a></i> Царствование царя Алексея Михайловича, СПб., 1831.</li>
+<li><i>Забелин И. Е.</i> Царь Алексей Михайлович (в «Опытах изучения русских древ. и истор.», т. I, стр. 203—281; то же в «Отеч. зап.», т. 110, стр. 325—378)</li>
+<li><i><a href="/wiki/%D0%9A%D0%BB%D1%8E%D1%87%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9,_%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9E%D1%81%D0%B8%D0%BF%D0%BE%D0%B2%D0%B8%D1%87" title="Ключевский, Василий Осипович">Ключевский В. О.</a></i> <a rel="nofollow" class="external text" href="http://modernhistory.omskreg.ru/page.php?id=797">Исторические портреты. Статьи: «Значение преподобного Сергия для русского народа и государства», «Добрые Люди древней Руси», «Характеристика царя Ивана Грозного», «Царь Алексей Михайлович», «Жизнь Петра Великого до начала Северной войны».</a> М., <a href="/wiki/1991" class="mw-redirect" title="1991">1991</a>.</li>
+<li><span class="citation"><i>Медовиков П. Е.</i> <a rel="nofollow" class="external text" href="http://books.google.ru/books?id=1eYGAAAAQAAJ&amp;dq=inauthor:%22Петр+Ефимович+Медовиков%22&amp;source=gbs_navlinks_s">Историческое значение царствования Алексея Михайловича</a>.&#160;— М: Типография Александра Семена, 1854.&#160;— 256&#160;с.</span></li>
+<li><i>Соловьёв С. М.</i> История России, т. Х, XI и XII</li>
+<li><i><a href="/wiki/%D0%A4%D0%BB%D0%BE%D1%80%D1%8F,_%D0%91%D0%BE%D1%80%D0%B8%D1%81_%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B5%D0%B2%D0%B8%D1%87" title="Флоря, Борис Николаевич">Флоря Б. Н.</a></i> Русское государство и его западные соседи (1655—1661). М., 2010.</li>
+<li><i><a href="/wiki/%D0%9F%D0%BB%D0%B0%D1%82%D0%BE%D0%BD%D0%BE%D0%B2,_%D0%A1%D0%B5%D1%80%D0%B3%D0%B5%D0%B9_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87" title="Платонов, Сергей Фёдорович">Платонов С. Ф.</a></i> Царь Алексей Михайлович (в «Истор. вест.» 1886&#160;г., май, стр. 265—275)</li>
+<li><span class="citation"><i><a href="/wiki/%D0%9F%D1%80%D0%B5%D1%81%D0%BD%D1%8F%D0%BA%D0%BE%D0%B2,_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%95%D0%B2%D0%B3%D0%B5%D0%BD%D1%8C%D0%B5%D0%B2%D0%B8%D1%87" title="Пресняков, Александр Евгеньевич">Пресняков А. Е.</a></i> Царь Алексей Михайлович // Российские самодержцы (книга исторических очерков) / А. Е. Пресняков; Составитель, автор предисловия и приложения д-р ист. наук <a href="/wiki/%D0%A1%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B2,_%D0%90%D0%BD%D0%B0%D1%82%D0%BE%D0%BB%D0%B8%D0%B9_%D0%A4%D0%B8%D0%BB%D0%B8%D0%BF%D0%BF%D0%BE%D0%B2%D0%B8%D1%87_(%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D0%BA)" title="Смирнов, Анатолий Филиппович (историк)">А. Ф. Смирнов</a>; Ред. А. Н. Казакевич; Художник Б. А. Лавров.&#160;— <span style="border-bottom:1px dotted gray; cursor:default" title="Москва">М</span>.: <a href="/wiki/%D0%9A%D0%BD%D0%B8%D0%B3%D0%B0_(%D0%B8%D0%B7%D0%B4%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%BE)" title="Книга (издательство)">Книга</a>, 1990.&#160;— С.&#160;59-141.&#160;— 464&#160;с.&#160;— <span class="nowrap">200&#160;000 экз.</span>&#160;— <a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BA%D0%BD%D0%B8%D0%B3/5212004896" class="internal mw-magiclink-isbn">ISBN 5-212-00489-6</a>.</span> (обл.)</li>
+<li><i><a href="/wiki/%D0%A5%D0%BC%D1%8B%D1%80%D0%BE%D0%B2,_%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B5%D0%B2%D0%B8%D1%87" title="Хмыров, Михаил Дмитриевич">Хмыров М. Д.</a></i> Царь Алексей Михайлович и его время (в «Древ. и нов. России», т. III, 1875&#160;г.)</li>
+</ul>
+<h2><span class="mw-headline" id=".D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.87.D0.B0.D0.BD.D0.B8.D1.8F">Примечания</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=20" class="mw-editsection-visualeditor" title="Редактировать раздел «Примечания»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=20" title="Редактировать раздел «Примечания»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<div class="references-small columns" style="column-count:2;-webkit-column-count:2;">
+<ol class="references">
+<li id="cite_note-1"><b><a href="#cite_ref-1">↑</a></b> <span class="reference-text">«Тишайший» (<a href="/wiki/%D0%9B%D0%B0%D1%82%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Латинский язык">лат.</a>&#160;<i><span lang="la" xml:lang="la">clementissimus</span></i>)&#160;— почётный титул латиноязычного происхождения, означающий «тишину» (спокойствие, благоденствие) в стране во время правления государя. К качествам характера Алексея Михайловича отношения не имеет. Впоследствии, когда в дипломатии латинский язык был заменён французским, прежнее величание «clementissimus» переведено было на французский (<a href="/wiki/%D0%A4%D1%80%D0%B0%D0%BD%D1%86%D1%83%D0%B7%D1%81%D0%BA%D0%B8%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA" title="Французский язык">фр.</a>&#160;<i><span lang="fr" xml:lang="fr">tres gracieux</span></i>), а в России уже с французского перевели как «всемилостивейший», и это название было также применено к государеву титулу, взамен прежнего «тишайший».</span></li>
+<li id="cite_note-2"><b><a href="#cite_ref-2">↑</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.sedmitza.ru/lib/text/439363/">Новый летописец, XVIII</a></span></li>
+<li id="cite_note-3"><b><a href="#cite_ref-3">↑</a></b> <span class="reference-text">Курбатов О.&#160;А.&#160;Из истории военных реформ в России во 2-й половине XVII века. Реорганизация конницы на материалах Новгородского разряда 1650-х&#160;— 1660-х гг./Диссертация на соискание ученой степени кандидата исторических наук, М., 2002, стр. 93</span></li>
+<li id="cite_note-4"><b><a href="#cite_ref-4">↑</a></b> <span class="reference-text">Бабулин И.&#160;Б.&#160;Генерал Бауман и его деятельность в русской армии XVII века // Рейтар. 2005. No 7</span></li>
+<li id="cite_note-5"><b><a href="#cite_ref-5">↑</a></b> <span class="reference-text">Шамин С.&#160;М.&#160;Куранты XVII столетия: Европейская пресса в России и возникновение русской периодической печати.&#160;— М.; СПб.: «Альянс-Архео», 2011. С. 74-91.</span></li>
+<li id="cite_note-6"><b><a href="#cite_ref-6">↑</a></b> <span class="reference-text">Waugh D. C. Azbuka znakami lits: Egyptian Hieroglyphs in the Privy Chancellery Archive // <a href="/w/index.php?title=Oxford_Slavonic_Papers&amp;action=edit&amp;redlink=1" class="new" title="Oxford Slavonic Papers (страница отсутствует)">Oxford Slavonic Papers</a>. N. S., 1977, vol. 10, Р. 46-50.</span></li>
+<li id="cite_note-7"><b><a href="#cite_ref-7">↑</a></b> <span class="reference-text">Богданов А. П. О рассуждении Самуила Коллинса // Естественнонаучные представления Древней Руси. М., 1988. С. 204—208.</span></li>
+<li id="cite_note-8"><b><a href="#cite_ref-8">↑</a></b> <span class="reference-text">Орленко С.&#160;П.&#160;Выходцы из Западной Европы в России XVII века (правовой статус и реальное положение). М., 2004. С. 135.</span></li>
+<li id="cite_note-9"><b><a href="#cite_ref-9">↑</a></b> <span class="reference-text">Седов П.&#160;В.&#160;Закат Московского царства: Царский двор конца XVII века. СПб., 2006. С. 139.</span></li>
+<li id="cite_note-mal47-10"><span class="mw-cite-backlink">↑ <a href="#cite_ref-mal47_10-0"><sup><i><b>1</b></i></sup></a> <a href="#cite_ref-mal47_10-1"><sup><i><b>2</b></i></sup></a></span> <span class="reference-text"><span class="citation"><i>Малов А. В.</i> Московские выборные полки солдатского строя в начальный период своей истории 1656 – 1671 гг.&#160;— <span style="border-bottom:1px dotted gray; cursor:default" title="Москва">М</span>.: Древлехранилище, 2006.&#160;— С.&#160;47.&#160;— <a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%98%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%B8_%D0%BA%D0%BD%D0%B8%D0%B3/5936461068" class="internal mw-magiclink-isbn">ISBN 5-93646-106-8</a>.</span></span></li>
+<li id="cite_note-11"><b><a href="#cite_ref-11">↑</a></b> <span class="reference-text"><span class="citation"><i>Малов А. В.</i> Московские выборные полки солдатского строя…&#160;— С.&#160;47-48.</span></span></li>
+<li id="cite_note-12"><b><a href="#cite_ref-12">↑</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="http://statehistory.ru/books/L-V--CHerepnin_Zemskie-sobory-Russkogo-gosudarstva-v-XVI---XVII-vv-/58">Л.&#160;В.&#160;Черепнин. Земские соборы Русского государства в XVI—XVII&#160;вв.</a></span></li>
+<li id="cite_note-13"><b><a href="#cite_ref-13">↑</a></b> <span class="reference-text">См. <a href="/wiki/%D0%A5%D1%80%D0%BE%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%BE-%D1%84%D1%80%D0%B0%D0%BD%D1%86%D1%83%D0%B7%D1%81%D0%BA%D0%B8%D1%85_%D0%BE%D1%82%D0%BD%D0%BE%D1%88%D0%B5%D0%BD%D0%B8%D0%B9" title="Хронология русско-французских отношений">Хронология русско-французских отношений</a>, окт. 1654</span></li>
+<li id="cite_note-14"><b><a href="#cite_ref-14">↑</a></b> <span class="reference-text">Реляция о военном походе его царского величества Алексея Михайловича в Литву против Польского короля Яна Казимира, 1654&#160;г. (Перевод с польского)//Витебская старина. Т.4. Отд.2. Витебск, 1885. С. 347—352</span></li>
+<li id="cite_note-jakovleva-15"><b><a href="#cite_ref-jakovleva_15-0">↑</a></b> <span class="reference-text">Таирова-Яковлева Т.&#160;Г.&#160;Иван Выговский//Единорогъ. Материалы по военной истории Восточной Европы эпохи Средних веков и Раннего Нового времени, вып.1, М., 2009</span></li>
+<li id="cite_note-.D0.BF.D0.B0.D0.BD-16"><b><a href="#cite_ref-.D0.BF.D0.B0.D0.BD_16-0">↑</a></b> <span class="reference-text"><span class="citation"><i><a href="/wiki/%D0%9F%D0%B0%D0%BD%D0%BE%D0%B2%D0%B0,_%D0%A2%D0%B0%D1%82%D1%8C%D1%8F%D0%BD%D0%B0_%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B5%D0%B2%D0%BD%D0%B0" title="Панова, Татьяна Дмитриевна">Панова Т. Д.</a></i> <a rel="nofollow" class="external text" href="http://russist.ru/nekropol/kreml1.htm">Некрополи Московского Кремля</a>. <i>изд. 2-е, испр. и доп.</i>. Руссист (2003). <small>Проверено 27 марта 2011.</small> <small><a rel="nofollow" class="external text" href="http://www.webcitation.org/68wpKQSSA">Архивировано из первоисточника 6 июля 2012</a>.</small></span></span></li>
+<li id="cite_note-17"><b><a href="#cite_ref-17">↑</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="http://rusinst.ru/docs/books/I.E.Zabelin-Domashnii_byt_russkih_carei.pdf">Забелин И.&#160;Е.&#160;Домашний быт русских царей в XVI и XVII столетиях. М.: Институт русской цивилизации, 2014. С. 315.</a></span></li>
+<li id="cite_note-18"><b><a href="#cite_ref-18">↑</a></b> <span class="reference-text"><i>khlopov55</i>. <a rel="nofollow" class="external text" href="http://www.youtube.com/watch?v=1dyKI1UDVEE">Алексей Михайлович. Достойно есть. Хор Патриархата.</a> [Видеозапись] / Выложено пользователем khlopov55 // YouTube. 08.07.2014.</span></li>
+<li id="cite_note-19"><b><a href="#cite_ref-19">↑</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="http://ria.ru/society/20101025/289058619.html">Памятник основателю Пензы царю Алексею Михайловичу установят в городе&#160;— РИА Новости</a></span></li>
+</ol>
+</div>
+<h2><span class="mw-headline" id=".D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8">Ссылки</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=21" class="mw-editsection-visualeditor" title="Редактировать раздел «Ссылки»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=21" title="Редактировать раздел «Ссылки»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<table class="metadata plainlinks navigation-box ruwikiWikimediaNavigation" style="margin:0 0 1em 1em; clear:right; border:solid #aaa 1px; background:#f9f9f9; padding:1ex; font-size:90%; float:right;">
+<tr>
+<th><a href="https://commons.wikimedia.org/wiki/Category:Alexis_I_of_Russia" title="commons:Category:Alexis I of Russia"><img alt="commons:" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/20px-Commons-logo.svg.png" width="20" height="27" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/40px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></a></th>
+<td><span class="wikicommons-ref"><a class="external text" href="https://commons.wikimedia.org/wiki/Category:Alexis_I_of_Russia?uselang=ru">Алексей Михайлович</a></span> на Викискладе</td>
+</tr>
+</table>
+<ul>
+<li><span class="citation"><a href="https://ru.wikisource.org/wiki/%D0%AD%D0%A1%D0%91%D0%95/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" class="extiw" title="s:ЭСБЕ/Алексей Михайлович">Алексей Михайлович</a> // <a href="/wiki/%D0%AD%D0%BD%D1%86%D0%B8%D0%BA%D0%BB%D0%BE%D0%BF%D0%B5%D0%B4%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D1%81%D0%BB%D0%BE%D0%B2%D0%B0%D1%80%D1%8C_%D0%91%D1%80%D0%BE%D0%BA%D0%B3%D0%B0%D1%83%D0%B7%D0%B0_%D0%B8_%D0%95%D1%84%D1%80%D0%BE%D0%BD%D0%B0" title="Энциклопедический словарь Брокгауза и Ефрона">Энциклопедический словарь Брокгауза и Ефрона</a>&#160;: в 86 т. (82 т. и 4 доп.).&#160;— <span style="border-bottom:1px dotted gray; cursor:default;" title="Санкт-Петербург">СПб.</span>, 1890—1907.</span></li>
+<li><a rel="nofollow" class="external text" href="http://www.ruslanka.ru/rod/AM.html">Алексей Михайлович Романов как правитель и человек</a> на сайте <a rel="nofollow" class="external text" href="http://www.ruslanka.ru">RUslanka.RU</a></li>
+<li><i>Медовиков П. Е.</i> <a rel="nofollow" class="external text" href="http://elib.shpl.ru/ru/nodes/20688-medovikov-p-e-istoricheskoe-znachenie-tsarstvovaniya-alekseya-mihaylovicha-m-1854#page/1/mode/grid/zoom/1">Историческое значение царствования Алексея Михайловича.</a>&#160;— М., 1854.&#160;— 256 с.</li>
+<li>Аболенский И. Московское государство при царе Алексее Михайловиче и патриархе Никоне, о запискам архидьякона Павла Алеппского. Киев, 1876// <a rel="nofollow" class="external free" href="http://www.runivers.ru/lib/book8359/473876/">http://www.runivers.ru/lib/book8359/473876/</a></li>
+<li><a rel="nofollow" class="external text" href="http://www.bel.ru/news/region/2010/08/27/48893.html">Памятник царю Алексею Михайловичу Романову</a></li>
+<li><a rel="nofollow" class="external text" href="http://mikv1.narod.ru/text/Koiet_RS93N80N12.htm">Койэт Б. Исторический рассказ или описание путешествия, совершенного в свите господина Кунраада фон-Кленка, чрезвычайного посла высокомощных генеральных штатов и его высочества принца Оранскаго к Его Величеству царю Московии. Отрывки / Примеч. и перевод А.&#160;М.&#160;Ловягина // Русская старина, 1893.&#160;— Т. 80.&#160;— №&#160;12.&#160;— С. 528—538.&#160;— Под загл.: Москва при смерти тишайшего государя. (Выдержки из записок иностранца-современника)</a></li>
+<li><a rel="nofollow" class="external text" href="http://www.memoirs.ru/rarhtml/1216OpMoskKarl.htm">Описание Московии при реляциях гр. Карлейля // Историческая библиотека, 1879.&#160;— №&#160;5.&#160;— С. 1-46.</a></li>
+<li><a rel="nofollow" class="external text" href="http://www.memoirs.ru/rarhtml/Plat_IV86_24_5.htm">Платонов С.&#160;Ф.&#160;Царь Алексей Михайлович. (Опыт характеристики) // Исторический вестник, 1886.&#160;— Т. 24.&#160;— №&#160;5.&#160;— С. 265—275.</a></li>
+<li><a rel="nofollow" class="external text" href="https://www.youtube.com/embed/wkFhGTrcXAg">Русские цари. Сер. 4. Тишайший царь Бунташного века</a> [Видеозапись] / Авт. сцен. д. и. н., проф. РГГУ И. Курукин; реж. К. Адамян // Русские цари&#160;: в 14 сер.&#160;— М.&#160;: Студия «Берг Саунд», 2011.</li>
+</ul>
+<table class="navbox" style="border-spacing:0">
+<tr>
+<td style="padding:2px">
+<table class="nowraplinks collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit">
+<tr>
+<th scope="col" class="navbox-title" colspan="2" style="background:#A3EEA3;"><span class="nomobile" style="float:left;text-align:left;width:5em;margin-right:0.5em"><a href="/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B5_%D1%86%D0%B0%D1%80%D0%B8" title="Просмотр этого шаблона"><img alt="⛭" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/14px-Wikipedia_interwiki_section_gear_icon.svg.png" width="14" height="14" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/21px-Wikipedia_interwiki_section_gear_icon.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/28px-Wikipedia_interwiki_section_gear_icon.svg.png 2x" data-file-width="14" data-file-height="14" /></a></span>
+<div style="font-size:114%"><a href="/wiki/%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%BE%D0%B5_%D1%86%D0%B0%D1%80%D1%81%D1%82%D0%B2%D0%BE" title="Русское царство">Русские цари</a></div>
+</th>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<td colspan="2" class="navbox-list navbox-odd hlist hlist-items-nowrap" style="width:100%;padding:0px;text-align: center;">
+<div style="padding:0em 0.25em">
+<div class="NavContent">
+<p><span class="nowrap"><a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_%D0%93%D1%80%D0%BE%D0%B7%D0%BD%D1%8B%D0%B9" title="Иван Грозный">Иван IV</a> —</span> <span class="nowrap"><i><a href="/wiki/%D0%A1%D0%B8%D0%BC%D0%B5%D0%BE%D0%BD_%D0%91%D0%B5%D0%BA%D0%B1%D1%83%D0%BB%D0%B0%D1%82%D0%BE%D0%B2%D0%B8%D1%87" title="Симеон Бекбулатович">Симеон Бекбулатович</a></i> —</span> <span class="nowrap"><a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_I_%D0%98%D0%BE%D0%B0%D0%BD%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" class="mw-redirect" title="Фёдор I Иоаннович">Фёдор I</a> —</span> <span class="nowrap"><a href="/wiki/%D0%93%D0%BE%D0%B4%D1%83%D0%BD%D0%BE%D0%B2%D0%B0,_%D0%98%D1%80%D0%B8%D0%BD%D0%B0_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%BD%D0%B0" title="Годунова, Ирина Фёдоровна">Ирина Годунова</a> —</span> <span class="nowrap"><a href="/wiki/%D0%91%D0%BE%D1%80%D0%B8%D1%81_%D0%93%D0%BE%D0%B4%D1%83%D0%BD%D0%BE%D0%B2" title="Борис Годунов">Борис Годунов</a> —</span> <span class="nowrap"><a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_II_%D0%93%D0%BE%D0%B4%D1%83%D0%BD%D0%BE%D0%B2" title="Фёдор II Годунов">Фёдор II Годунов</a> —</span> <span class="nowrap"><a href="/wiki/%D0%9B%D0%B6%D0%B5%D0%B4%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_I" title="Лжедмитрий I">Лжедмитрий I</a> —</span> <span class="nowrap"><a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_IV_%D0%A8%D1%83%D0%B9%D1%81%D0%BA%D0%B8%D0%B9" title="Василий IV Шуйский">Василий IV Шуйский</a> —</span> <span class="nowrap"><i><a href="/wiki/%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D1%81%D0%BB%D0%B0%D0%B2_IV" title="Владислав IV">Владислав</a></i> —</span> <span class="nowrap"><a href="/wiki/%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87" title="Михаил Фёдорович">Михаил Фёдорович</a> —</span> <span class="nowrap"><strong class="selflink">Алексей Михайлович</strong> —</span> <span class="nowrap"><a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_III_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Фёдор III Алексеевич">Фёдор III</a> —</span> <span class="nowrap"><a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_V" title="Иван V">Иван V</a> —</span> <span class="nowrap"><a href="/wiki/%D0%9F%D1%91%D1%82%D1%80_I" title="Пётр I">Пётр I</a></span></p>
+</div>
+</div>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table class="navbox" style="border-spacing:0">
+<tr>
+<td style="padding:2px">
+<table class="nowraplinks collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit">
+<tr>
+<th scope="col" class="navbox-title" colspan="4"><span class="nomobile" style="float:left;text-align:left;width:5em;margin-right:0.5em"><a href="/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%94%D0%B5%D1%82%D0%B8_%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB%D0%B0_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87%D0%B0" title="Просмотр этого шаблона"><img alt="⛭" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/14px-Wikipedia_interwiki_section_gear_icon.svg.png" width="14" height="14" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/21px-Wikipedia_interwiki_section_gear_icon.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/28px-Wikipedia_interwiki_section_gear_icon.svg.png 2x" data-file-width="14" data-file-height="14" /></a></span>
+<div style="font-size:114%"><small><a href="/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D1%85_%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%B8%D1%87%D0%B5%D0%B9" title="Список русских царевичей">Царевичи</a> и <a href="/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D1%85_%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%B5%D0%BD" title="Список русских царевен">царевны</a>:</small> <small><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%98%D0%B2%D0%B0%D0%BD%D0%B0_IV" title="Дети Ивана IV">Ивана IV</a></small> ← <b><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB%D0%B0_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87%D0%B0" title="Дети Михаила Фёдоровича">Дети</a> <i><a href="/wiki/%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87" title="Михаил Фёдорович">Михаила Фёдоровича</a></i></b> → <small><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%8F_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87%D0%B0" title="Дети Алексея Михайловича">Алексея</a></small> → <small><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%98%D0%B2%D0%B0%D0%BD%D0%B0_V" title="Дети Ивана V">Ивана V</a></small> → <small><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_I" title="Дети Петра I">Петра I</a></small></div>
+</th>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<td class="navbox-image" rowspan="1" style="width:1%;padding:0px 7px 0px 0px">
+<div><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Equestrian_portrait_of_Michael_I_of_Russia_(17th_c.,_GIM).jpg" class="image"><img alt="Equestrian portrait of Michael I of Russia (17th c., GIM).jpg" src="//upload.wikimedia.org/wikipedia/commons/thumb/8/82/Equestrian_portrait_of_Michael_I_of_Russia_%2817th_c.%2C_GIM%29.jpg/53px-Equestrian_portrait_of_Michael_I_of_Russia_%2817th_c.%2C_GIM%29.jpg" width="53" height="73" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/82/Equestrian_portrait_of_Michael_I_of_Russia_%2817th_c.%2C_GIM%29.jpg/80px-Equestrian_portrait_of_Michael_I_of_Russia_%2817th_c.%2C_GIM%29.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/82/Equestrian_portrait_of_Michael_I_of_Russia_%2817th_c.%2C_GIM%29.jpg/106px-Equestrian_portrait_of_Michael_I_of_Russia_%2817th_c.%2C_GIM%29.jpg 2x" data-file-width="525" data-file-height="728" /></a></div>
+</td>
+<td colspan="2" class="navbox-list navbox-odd hlist hlist-items-nowrap" style="width:100%;padding:0px;text-align: center;">
+<div style="padding:0em 0.25em">
+<div class="NavContent">
+<p><br />
+<a href="/wiki/%D0%98%D1%80%D0%B8%D0%BD%D0%B0_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%BD%D0%B0" title="Ирина Михайловна">Ирина</a> • <a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Caravaca3.png" class="image"><img alt="Caravaca3.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/10px-Caravaca3.png" width="10" height="19" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/15px-Caravaca3.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/20px-Caravaca3.png 2x" data-file-width="49" data-file-height="92" /></a> <i><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB%D0%B0_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87%D0%B0#.D0.9F.D0.B5.D0.BB.D0.B0.D0.B3.D0.B5.D1.8F" title="Дети Михаила Фёдоровича">Пелагея</a></i> • <a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:H%C3%A9raldique_meuble_couronne.svg" class="image" title="Корона"><img alt="Корона" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/ce/H%C3%A9raldique_meuble_couronne.svg/22px-H%C3%A9raldique_meuble_couronne.svg.png" width="22" height="12" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/ce/H%C3%A9raldique_meuble_couronne.svg/33px-H%C3%A9raldique_meuble_couronne.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/ce/H%C3%A9raldique_meuble_couronne.svg/44px-H%C3%A9raldique_meuble_couronne.svg.png 2x" data-file-width="153" data-file-height="81" /></a> <strong class="selflink">Алексей</strong> • <a href="/wiki/%D0%90%D0%BD%D0%BD%D0%B0_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%BD%D0%B0" title="Анна Михайловна">Анна</a> • <a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Caravaca3.png" class="image"><img alt="Caravaca3.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/10px-Caravaca3.png" width="10" height="19" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/15px-Caravaca3.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/20px-Caravaca3.png 2x" data-file-width="49" data-file-height="92" /></a> <i><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB%D0%B0_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87%D0%B0#.D0.9C.D0.B0.D1.80.D1.84.D0.B0" title="Дети Михаила Фёдоровича">Марфа</a></i><br />
+<a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Caravaca3.png" class="image"><img alt="Caravaca3.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/10px-Caravaca3.png" width="10" height="19" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/15px-Caravaca3.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/20px-Caravaca3.png 2x" data-file-width="49" data-file-height="92" /></a> <a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87_(%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%B8%D1%87)" title="Иван Михайлович (царевич)">Иван</a> • <a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Caravaca3.png" class="image"><img alt="Caravaca3.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/10px-Caravaca3.png" width="10" height="19" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/15px-Caravaca3.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/20px-Caravaca3.png 2x" data-file-width="49" data-file-height="92" /></a> <i><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB%D0%B0_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87%D0%B0#.D0.A1.D0.BE.D1.84.D1.8C.D1.8F" title="Дети Михаила Фёдоровича">Софья</a></i> • <a href="/wiki/%D0%A2%D0%B0%D1%82%D1%8C%D1%8F%D0%BD%D0%B0_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%BD%D0%B0" title="Татьяна Михайловна">Татьяна</a> • <a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Caravaca3.png" class="image"><img alt="Caravaca3.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/10px-Caravaca3.png" width="10" height="19" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/15px-Caravaca3.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/20px-Caravaca3.png 2x" data-file-width="49" data-file-height="92" /></a> <i><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB%D0%B0_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87%D0%B0#.D0.95.D0.B2.D0.B4.D0.BE.D0.BA.D0.B8.D1.8F" title="Дети Михаила Фёдоровича">Евдокия</a></i> • <a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Caravaca3.png" class="image"><img alt="Caravaca3.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/10px-Caravaca3.png" width="10" height="19" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/15px-Caravaca3.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/20px-Caravaca3.png 2x" data-file-width="49" data-file-height="92" /></a> <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87_(%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%B8%D1%87)" title="Василий Михайлович (царевич)">Василий</a></p>
+</div>
+</div>
+</td>
+<td class="navbox-image" rowspan="1" style="width:1%;padding:0px 0px 0px 7px">
+<div><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Equestrian_portrait_of_Alexis_of_Russia_(17_c,_GIM).jpg" class="image"><img alt="Equestrian portrait of Alexis of Russia (17 c, GIM).jpg" src="//upload.wikimedia.org/wikipedia/commons/thumb/6/6c/Equestrian_portrait_of_Alexis_of_Russia_%2817_c%2C_GIM%29.jpg/53px-Equestrian_portrait_of_Alexis_of_Russia_%2817_c%2C_GIM%29.jpg" width="53" height="74" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/6c/Equestrian_portrait_of_Alexis_of_Russia_%2817_c%2C_GIM%29.jpg/80px-Equestrian_portrait_of_Alexis_of_Russia_%2817_c%2C_GIM%29.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/6c/Equestrian_portrait_of_Alexis_of_Russia_%2817_c%2C_GIM%29.jpg/106px-Equestrian_portrait_of_Alexis_of_Russia_%2817_c%2C_GIM%29.jpg 2x" data-file-width="1184" data-file-height="1643" /></a></div>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table class="navbox" style="border-spacing:0">
+<tr>
+<td style="padding:2px">
+<table class="nowraplinks collapsible collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit">
+<tr>
+<th scope="col" class="navbox-title" colspan="2" style="background:#A3EEA3;"><span class="nomobile" style="float:left;text-align:left;width:5em;margin-right:0.5em"><a href="/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%9F%D1%91%D1%82%D1%80_I" title="Просмотр этого шаблона"><img alt="⛭" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/14px-Wikipedia_interwiki_section_gear_icon.svg.png" width="14" height="14" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/21px-Wikipedia_interwiki_section_gear_icon.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/28px-Wikipedia_interwiki_section_gear_icon.svg.png 2x" data-file-width="14" data-file-height="14" /></a></span>
+<div style="font-size:114%"><a href="/wiki/%D0%9F%D1%91%D1%82%D1%80_I" title="Пётр I">Пётр I</a></div>
+</th>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background:#A3EEA3;"><a href="/wiki/%D0%A0%D0%B5%D1%84%D0%BE%D1%80%D0%BC%D1%8B_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_I" title="Реформы Петра I">Реформы</a></th>
+<td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;text-align:left;">
+<div style="padding:0em 0.25em"><a href="/wiki/%D0%92%D0%BD%D0%B5%D1%88%D0%BD%D1%8F%D1%8F_%D0%BF%D0%BE%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_I" title="Внешняя политика Петра I">Внешняя политика</a> | <a href="/wiki/%D0%90%D1%80%D0%BC%D0%B8%D1%8F_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_I" title="Армия Петра I">Армия</a> | <a href="/wiki/%D0%9E%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D1%84%D0%BE%D1%80%D0%BC%D0%B0_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_I" title="Областная реформа Петра I">Областная</a> | <a href="/wiki/%D0%A6%D0%B5%D1%80%D0%BA%D0%BE%D0%B2%D0%BD%D0%B0%D1%8F_%D1%80%D0%B5%D1%84%D0%BE%D1%80%D0%BC%D0%B0_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_I" title="Церковная реформа Петра I">Церковная</a> | <a href="/wiki/%D0%9F%D1%80%D0%BE%D0%BC%D1%8B%D1%88%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%B8_%D1%82%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D0%BB%D1%8F_%D0%BF%D1%80%D0%B8_%D0%9F%D0%B5%D1%82%D1%80%D0%B5_I" title="Промышленность и торговля при Петре I">Промышленность и торговля</a> | <a href="/wiki/%D0%A4%D0%B8%D0%BD%D0%B0%D0%BD%D1%81%D0%BE%D0%B2%D0%B0%D1%8F_%D1%80%D0%B5%D1%84%D0%BE%D1%80%D0%BC%D0%B0_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_I" title="Финансовая реформа Петра I">Финансовая</a> | <a href="/wiki/%D0%94%D0%B2%D0%BE%D1%80%D1%8F%D0%BD%D1%81%D1%82%D0%B2%D0%BE_%D0%B2_%D1%86%D0%B0%D1%80%D1%81%D1%82%D0%B2%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_I" title="Дворянство в царствование Петра I">Дворянская</a> | <a href="/wiki/%D0%9A%D1%80%D0%B5%D1%81%D1%82%D1%8C%D1%8F%D0%BD%D0%B5_%D0%B2_%D1%86%D0%B0%D1%80%D1%81%D1%82%D0%B2%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_I" title="Крестьяне в царствование Петра I">Крестьянская</a> | <a href="/wiki/%D0%A3%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%BE_%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D0%BE%D0%B2_%D0%B8_%D0%B3%D0%BE%D1%80%D0%BE%D0%B6%D0%B0%D0%BD%D0%B5_%D0%BF%D1%80%D0%B8_%D0%9F%D0%B5%D1%82%D1%80%D0%B5_I" title="Устройство городов и горожане при Петре I">Городская</a></div>
+</td>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background:#A3EEA3;">События</th>
+<td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;text-align:left;;background:#f0f0f0">
+<div style="padding:0em 0.25em"><a href="/wiki/%D0%9F%D0%BE%D1%82%D0%B5%D1%88%D0%BD%D1%8B%D0%B5_%D0%B2%D0%BE%D0%B9%D1%81%D0%BA%D0%B0" title="Потешные войска">Потешные войска</a> | <a href="/wiki/%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%BE%D0%B5_%D0%BF%D0%BE%D1%81%D0%BE%D0%BB%D1%8C%D1%81%D1%82%D0%B2%D0%BE" title="Великое посольство">Великое посольство</a> | <a href="/wiki/%D0%9A%D0%BE%D0%B6%D1%83%D1%85%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B5_%D0%BC%D0%B0%D0%BD%D1%91%D0%B2%D1%80%D1%8B" class="mw-redirect" title="Кожуховские манёвры">Кожуховские манёвры</a> | <a href="/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%81%D1%82%D0%BE%D0%BB%D0%B8%D1%86%D1%8B_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8_%D0%B8%D0%B7_%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D1%8B_%D0%B2_%D0%A1%D0%B0%D0%BD%D0%BA%D1%82-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3" title="Перенос столицы России из Москвы в Санкт-Петербург">Перенос столицы России из Москвы в Санкт-Петербург</a> | <a href="/wiki/%D0%A3%D0%BA%D0%B0%D0%B7_%D0%BE_%D0%BF%D1%80%D0%B5%D1%81%D1%82%D0%BE%D0%BB%D0%BE%D0%BD%D0%B0%D1%81%D0%BB%D0%B5%D0%B4%D0%B8%D0%B8_(1722)" title="Указ о престолонаследии (1722)">Указ о престолонаследии (1722)</a></div>
+</td>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background:#A3EEA3;">Войны</th>
+<td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;text-align:left;">
+<div style="padding:0em 0.25em"><a href="/wiki/%D0%A1%D1%82%D1%80%D0%B5%D0%BB%D0%B5%D1%86%D0%BA%D0%B8%D0%B9_%D0%B1%D1%83%D0%BD%D1%82_(1682)" title="Стрелецкий бунт (1682)">Стрелецкий бунт (1682)</a> | <a href="/wiki/%D0%90%D0%B7%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B5_%D0%BF%D0%BE%D1%85%D0%BE%D0%B4%D1%8B_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_I" title="Азовские походы Петра I">Азовские походы (1695 и 1696)</a> | <a href="/wiki/%D0%A1%D0%B5%D0%B2%D0%B5%D1%80%D0%BD%D0%B0%D1%8F_%D0%B2%D0%BE%D0%B9%D0%BD%D0%B0" title="Северная война">Северная война</a> (1700-1721) | <a href="/wiki/%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%BE-%D1%82%D1%83%D1%80%D0%B5%D1%86%D0%BA%D0%B0%D1%8F_%D0%B2%D0%BE%D0%B9%D0%BD%D0%B0_(1710%E2%80%941713)" title="Русско-турецкая война (1710—1713)">Русско-турецкая война (1710—1713)</a>: <a href="/wiki/%D0%9F%D1%80%D1%83%D1%82%D1%81%D0%BA%D0%B8%D0%B9_%D0%BF%D0%BE%D1%85%D0%BE%D0%B4" title="Прутский поход">Прутский поход</a> 1711 | <a href="/wiki/%D0%9F%D0%B5%D1%80%D1%81%D0%B8%D0%B4%D1%81%D0%BA%D0%B8%D0%B9_%D0%BF%D0%BE%D1%85%D0%BE%D0%B4_(1722%E2%80%941723)" title="Персидский поход (1722—1723)">Персидский поход (1722—1723)</a></div>
+</td>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background:#A3EEA3;"><a href="/wiki/%D0%9F%D0%B0%D0%BC%D1%8F%D1%82%D1%8C_%D0%BE_%D0%9F%D0%B5%D1%82%D1%80%D0%B5_I" title="Память о Петре I">Память</a></th>
+<td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;text-align:left;;background:#f0f0f0">
+<div style="padding:0em 0.25em"><a href="/wiki/%D0%9F%D0%B0%D0%BC%D1%8F%D1%82%D0%BD%D0%B8%D0%BA%D0%B8_%D0%9F%D0%B5%D1%82%D1%80%D1%83_I" title="Памятники Петру I">Памятники</a> | <a href="/wiki/%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%BB%D0%B5%D0%B3%D0%B5%D0%BD%D0%B4%D1%8B_%D0%BE_%D0%9F%D0%B5%D1%82%D1%80%D0%B5_I" title="Исторические легенды о Петре I">Исторические легенды</a> | <a href="/wiki/%D0%9F%D1%91%D1%82%D1%80_I_%D0%B2_%D0%BC%D0%B5%D0%BC%D1%83%D0%B0%D1%80%D0%B0%D1%85" title="Пётр I в мемуарах">В мемуарах</a> | <a href="/wiki/%D0%9F%D1%91%D1%82%D1%80_I_%D0%B8_%D0%BC%D1%83%D0%B7%D1%8B%D0%BA%D0%B0" title="Пётр I и музыка">Пётр I и музыка</a></div>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table class="navbox" style="border-spacing:0">
+<tr>
+<td style="padding:2px">
+<table class="nowraplinks collapsible collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit">
+<tr>
+<th scope="col" class="navbox-title" colspan="4" style="background:#a3eea3;;"><span class="nomobile" style="float:left;text-align:left;width:5em;margin-right:0.5em"><a href="/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%9C%D0%B0%D1%81%D1%82%D0%B5%D1%80%D0%B0_%D0%B7%D0%BD%D0%B0%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D0%BF%D0%B5%D0%BD%D0%B8%D1%8F_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B9_%D0%A0%D1%83%D1%81%D0%B8" title="Просмотр этого шаблона"><img alt="⛭" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/14px-Wikipedia_interwiki_section_gear_icon.svg.png" width="14" height="14" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/21px-Wikipedia_interwiki_section_gear_icon.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/28px-Wikipedia_interwiki_section_gear_icon.svg.png 2x" data-file-width="14" data-file-height="14" /></a></span>
+<div style="font-size:114%">Мастера знаменного пения Московской Руси</div>
+</th>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<td class="navbox-image" rowspan="1" style="width:1%;padding:0px 7px 0px 0px">
+<div><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:%D0%A1%D1%82%D0%B8%D1%85%D0%B8%D1%80%D0%B0_%D0%95%D0%B2%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D0%B5%D1%80%D0%B2%D0%B0%D1%8F_%D0%A4%D0%B5%D0%B4%D0%BE%D1%80%D0%B0_%D0%9A%D1%80%D0%B5%D1%81%D1%82%D1%8C%D1%8F%D0%BD%D0%B8%D0%BD%D0%B0_%D0%B2_%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B5_%D0%91._%D0%9A%D1%83%D1%82%D1%83%D0%B7%D0%BE%D0%B2%D0%B0..jpg" class="image"><img alt="Стихира Евангельская первая Федора Крестьянина в расшифровке Б. Кутузова..jpg" src="//upload.wikimedia.org/wikipedia/commons/thumb/7/77/%D0%A1%D1%82%D0%B8%D1%85%D0%B8%D1%80%D0%B0_%D0%95%D0%B2%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D0%B5%D1%80%D0%B2%D0%B0%D1%8F_%D0%A4%D0%B5%D0%B4%D0%BE%D1%80%D0%B0_%D0%9A%D1%80%D0%B5%D1%81%D1%82%D1%8C%D1%8F%D0%BD%D0%B8%D0%BD%D0%B0_%D0%B2_%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B5_%D0%91._%D0%9A%D1%83%D1%82%D1%83%D0%B7%D0%BE%D0%B2%D0%B0..jpg/125px-%D0%A1%D1%82%D0%B8%D1%85%D0%B8%D1%80%D0%B0_%D0%95%D0%B2%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D0%B5%D1%80%D0%B2%D0%B0%D1%8F_%D0%A4%D0%B5%D0%B4%D0%BE%D1%80%D0%B0_%D0%9A%D1%80%D0%B5%D1%81%D1%82%D1%8C%D1%8F%D0%BD%D0%B8%D0%BD%D0%B0_%D0%B2_%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B5_%D0%91._%D0%9A%D1%83%D1%82%D1%83%D0%B7%D0%BE%D0%B2%D0%B0..jpg" width="125" height="60" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/7/77/%D0%A1%D1%82%D0%B8%D1%85%D0%B8%D1%80%D0%B0_%D0%95%D0%B2%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D0%B5%D1%80%D0%B2%D0%B0%D1%8F_%D0%A4%D0%B5%D0%B4%D0%BE%D1%80%D0%B0_%D0%9A%D1%80%D0%B5%D1%81%D1%82%D1%8C%D1%8F%D0%BD%D0%B8%D0%BD%D0%B0_%D0%B2_%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B5_%D0%91._%D0%9A%D1%83%D1%82%D1%83%D0%B7%D0%BE%D0%B2%D0%B0..jpg/188px-%D0%A1%D1%82%D0%B8%D1%85%D0%B8%D1%80%D0%B0_%D0%95%D0%B2%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D0%B5%D1%80%D0%B2%D0%B0%D1%8F_%D0%A4%D0%B5%D0%B4%D0%BE%D1%80%D0%B0_%D0%9A%D1%80%D0%B5%D1%81%D1%82%D1%8C%D1%8F%D0%BD%D0%B8%D0%BD%D0%B0_%D0%B2_%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B5_%D0%91._%D0%9A%D1%83%D1%82%D1%83%D0%B7%D0%BE%D0%B2%D0%B0..jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/7/77/%D0%A1%D1%82%D0%B8%D1%85%D0%B8%D1%80%D0%B0_%D0%95%D0%B2%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D0%B5%D1%80%D0%B2%D0%B0%D1%8F_%D0%A4%D0%B5%D0%B4%D0%BE%D1%80%D0%B0_%D0%9A%D1%80%D0%B5%D1%81%D1%82%D1%8C%D1%8F%D0%BD%D0%B8%D0%BD%D0%B0_%D0%B2_%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B5_%D0%91._%D0%9A%D1%83%D1%82%D1%83%D0%B7%D0%BE%D0%B2%D0%B0..jpg/250px-%D0%A1%D1%82%D0%B8%D1%85%D0%B8%D1%80%D0%B0_%D0%95%D0%B2%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F_%D0%BF%D0%B5%D1%80%D0%B2%D0%B0%D1%8F_%D0%A4%D0%B5%D0%B4%D0%BE%D1%80%D0%B0_%D0%9A%D1%80%D0%B5%D1%81%D1%82%D1%8C%D1%8F%D0%BD%D0%B8%D0%BD%D0%B0_%D0%B2_%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BA%D0%B5_%D0%91._%D0%9A%D1%83%D1%82%D1%83%D0%B7%D0%BE%D0%B2%D0%B0..jpg 2x" data-file-width="1566" data-file-height="751" /></a></div>
+</td>
+<td colspan="2" class="navbox-list navbox-odd hlist hlist-items-nowrap" style="width:100%;padding:0px;text-align: center;">
+<div style="padding:0em 0.25em">
+<div class="NavContent">
+<p><a href="/wiki/%D0%A0%D0%BE%D0%B3%D0%BE%D0%B2,_%D0%A1%D0%B0%D0%B2%D0%B2%D0%B0" title="Рогов, Савва">Савва Рогов</a>&#160;• <a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%9A%D1%80%D0%B5%D1%81%D1%82%D1%8C%D1%8F%D0%BD%D0%B8%D0%BD" title="Фёдор Крестьянин">Фёдор Крестьянин</a>&#160;• <a href="/wiki/%D0%9C%D0%B0%D1%80%D0%BA%D0%B5%D0%BB%D0%BB_%D0%91%D0%B5%D0%B7%D0%B1%D0%BE%D1%80%D0%BE%D0%B4%D1%8B%D0%B9" title="Маркелл Безбородый">Маркелл Безбородый</a>&#160;• <a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_%D0%93%D1%80%D0%BE%D0%B7%D0%BD%D1%8B%D0%B9" title="Иван Грозный">царь Иван IV Грозный</a>&#160;• <a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_%D0%9D%D0%BE%D1%81" title="Иван Нос">Иван Нос</a>&#160;• <a href="/wiki/%D0%A1%D1%82%D0%B5%D1%84%D0%B0%D0%BD_%D0%93%D0%BE%D0%BB%D1%8B%D1%88" title="Стефан Голыш">Стефан Голыш</a>&#160;• <a href="/wiki/%D0%92%D0%B0%D1%80%D0%BB%D0%B0%D0%B0%D0%BC_(%D0%A0%D0%BE%D0%B3%D0%BE%D0%B2)" title="Варлаам (Рогов)">митрополит Ростовский Варлаам</a>&#160;• <a href="/wiki/%D0%98%D1%81%D0%B0%D0%B9%D1%8F_(%D0%9B%D1%83%D0%BA%D0%BE%D1%88%D0%BA%D0%BE)" title="Исайя (Лукошко)">Исайя Лукошко, архимандрит Хутынский</a>&#160;• <a href="/wiki/%D0%A4%D0%B0%D0%B4%D0%B4%D0%B5%D0%B9_%D0%A1%D1%83%D0%B1%D0%B1%D0%BE%D1%82%D0%B8%D0%BD" title="Фаддей Субботин">Фаддей Субботин</a>&#160;• <a href="/wiki/%D0%A8%D0%B0%D0%B9%D0%B4%D1%83%D1%80%D0%BE%D0%B2,_%D0%98%D0%B2%D0%B0%D0%BD_%D0%90%D0%BA%D0%B8%D0%BC%D0%BE%D0%B2%D0%B8%D1%87" title="Шайдуров, Иван Акимович">Иван Шайдур</a>&#160;• <a href="/wiki/%D0%9C%D0%B5%D0%B7%D0%B5%D0%BD%D0%B5%D1%86,_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Мезенец, Александр Иванович">Александр Мезенец</a>&#160;• <strong class="selflink">царь Алексей Михайлович</strong>&#160;• <a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_III_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Фёдор III Алексеевич">царь Фёдор III Алексеевич</a></p>
+</div>
+</div>
+</td>
+<td class="navbox-image" rowspan="1" style="width:1%;padding:0px 0px 0px 7px">
+<div><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Feodor_III_by_Ivan_Saltanov.jpg" class="image"><img alt="Feodor III by Ivan Saltanov.jpg" src="//upload.wikimedia.org/wikipedia/commons/thumb/9/9b/Feodor_III_by_Ivan_Saltanov.jpg/40px-Feodor_III_by_Ivan_Saltanov.jpg" width="40" height="81" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/9/9b/Feodor_III_by_Ivan_Saltanov.jpg/60px-Feodor_III_by_Ivan_Saltanov.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/9/9b/Feodor_III_by_Ivan_Saltanov.jpg/80px-Feodor_III_by_Ivan_Saltanov.jpg 2x" data-file-width="359" data-file-height="728" /></a></div>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table class="navbox" style="border-spacing:0">
+<tr>
+<td style="padding:2px">
+<table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit">
+<tr>
+<th scope="row" class="navbox-group" style="background: #CCF;">
+<div style="padding: 0px 18px 0px 0px; width: 100%;">
+<div style="float: left; margin-left: -0.25em;"><span class="noprint plainlinksneverexpand nowrap" style="font-size:x-small;">&#160;<a href="/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%92%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B5_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8" title="Просмотр этого шаблона"><img alt="⚙️" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/14px-Wikipedia_interwiki_section_gear_icon.svg.png" width="14" height="14" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/21px-Wikipedia_interwiki_section_gear_icon.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/28px-Wikipedia_interwiki_section_gear_icon.svg.png 2x" data-file-width="14" data-file-height="14" /></a>&#160;</span></div>
+&#160;&#160;Тематические сайты</div>
+</th>
+<td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+<div style="padding:0em 0.25em"><a rel="nofollow" class="external text" href="http://nndb.com/people/242/000111906">Notable Names Database</a> · <a rel="nofollow" class="external text" href="http://www.rkd.nl/rkddb/dispatcher.aspx?action=search&amp;database=ChoiceArtists&amp;search=priref=459736">RKDartists</a> · <a rel="nofollow" class="external text" href="http://ru.rodovid.org/wk/Person:59815">Родовод</a></div>
+</td>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background: #CCF;">Словари и энциклопедии</th>
+<td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+<div style="padding:0em 0.25em"><a rel="nofollow" class="external text" href="http://www.enciclopedia.cat/enciclopèdies/gran-enciclopèdia-catalana/EC-GEC-0002210.xml">Большая каталонская</a> · <a rel="nofollow" class="external text" href="http://bigenc.ru/text/1811746">Большая российская</a> · <a href="https://ru.wikisource.org/wiki/%D0%AD%D0%A1%D0%91%D0%95/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" class="extiw" title="s:ЭСБЕ/Алексей Михайлович">Брокгауза и Ефрона</a> · <a href="https://ru.wikisource.org/wiki/%D0%95%D0%AD%D0%91%D0%95/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" class="extiw" title="s:ЕЭБЕ/Алексей Михайлович">Еврейская Брокгауза и Ефрона</a> · <a href="https://ru.wikisource.org/wiki/%D0%9C%D0%AD%D0%A1%D0%91%D0%95/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" class="extiw" title="s:МЭСБЕ/Алексей Михайлович">Малый Брокгауза и Ефрона</a> · <a href="https://ru.wikisource.org/wiki/%D0%A0%D0%91%D0%A1/%D0%92%D0%A2/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" class="extiw" title="s:РБС/ВТ/Алексей Михайлович">Русский биографический</a> · <a href="https://ru.wikisource.org/wiki/%D0%AD%D0%9B/%D0%94%D0%9E/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" class="extiw" title="s:ЭЛ/ДО/Алексей Михайлович">Энциклопедический лексикон</a> · <a href="https://en.wikisource.org/wiki/1911_Encyclop%C3%A6dia_Britannica/Alexius_Mikhailovich" class="extiw" title="wikisource:1911 Encyclopædia Britannica/Alexius Mikhailovich">Britannica (11-th)</a></div>
+</td>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background: #CCF;"><a href="/wiki/%D0%9D%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8C" title="Нормативный контроль">Нормативный контроль</a></th>
+<td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+<div style="padding:0em 0.25em"><a href="/wiki/%D0%9D%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_%D0%A4%D1%80%D0%B0%D0%BD%D1%86%D0%B8%D0%B8" title="Национальная библиотека Франции">BNF</a>:&#160;<a rel="nofollow" class="external text" href="http://catalogue.bnf.fr/ark:/12148/cb11997487d">11997487d</a> · <a href="/wiki/Gemeinsame_Normdatei" title="Gemeinsame Normdatei">GND</a>:&#160;<a rel="nofollow" class="external text" href="http://d-nb.info/gnd/118501909">118501909</a> · <a href="/wiki/%D0%9C%D0%B5%D0%B6%D0%B4%D1%83%D0%BD%D0%B0%D1%80%D0%BE%D0%B4%D0%BD%D1%8B%D0%B9_%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80_%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D1%85_%D0%BD%D0%B0%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B9" title="Международный идентификатор стандартных наименований">ISNI</a>:&#160;<a rel="nofollow" class="external text" href="http://isni-url.oclc.nl/isni/0000000121360628">0000 0001 2136 0628</a> · <a href="/wiki/%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80_%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8_%D0%9A%D0%BE%D0%BD%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B0" title="Контрольный номер Библиотеки Конгресса">LCCN</a>:&#160;<a rel="nofollow" class="external text" href="http://id.loc.gov/authorities/n81099051">n81099051</a> · <a href="/wiki/%D0%9A%D0%BE%D1%80%D0%BE%D0%BB%D0%B5%D0%B2%D1%81%D0%BA%D0%B0%D1%8F_%D0%BD%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_%D0%9D%D0%B8%D0%B4%D0%B5%D1%80%D0%BB%D0%B0%D0%BD%D0%B4%D0%BE%D0%B2" title="Королевская национальная библиотека Нидерландов">NTA</a>:&#160;<a rel="nofollow" class="external text" href="http://opc4.kb.nl/PPN?PPN=070207119">070207119</a> · <a href="/wiki/%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%82%D0%B5%D1%82%D1%81%D0%BA%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D0%B8" title="Университетская система документации">SUDOC</a>:&#160;<a rel="nofollow" class="external text" href="http://www.idref.fr/028065107">028065107</a> · <a href="/wiki/VIAF" title="VIAF">VIAF</a>:&#160;<a rel="nofollow" class="external text" href="http://viaf.org/viaf/62339723">62339723</a></div>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+
+
+<!--
+NewPP limit report
+Parsed by mw1172
+Cached time: 20170130104544
+Cache expiry: 2592000
+Dynamic content: false
+CPU time usage: 1.112 seconds
+Real time usage: 1.483 seconds
+Preprocessor visited node count: 19291/1000000
+Preprocessor generated node count: 0/1500000
+Post‐expand include size: 270581/2097152 bytes
+Template argument size: 66477/2097152 bytes
+Highest expansion depth: 18/40
+Expensive parser function count: 31/500
+Lua time usage: 0.408/10.000 seconds
+Lua memory usage: 6.05 MB/50 MB
+-->
+<!--
+Transclusion expansion time report (%,ms,calls,template)
+100.00% 1229.602 1 -total
+ 31.88% 391.955 1 Шаблон:Государственный_деятель2
+ 25.52% 313.828 54 Шаблон:Сс3
+ 24.83% 305.370 37 Шаблон:Wikidata
+ 19.57% 240.678 16 Шаблон:If-wikidata
+ 16.43% 202.029 356 Шаблон:OldStyleDate3/lag
+ 16.36% 201.156 1 Шаблон:Государственный_деятель/Личные_данные
+ 16.31% 200.608 1 Шаблон:Библиоинформация
+ 4.47% 54.981 6 Шаблон:Книга
+ 3.77% 46.301 1 Шаблон:Примечания
+-->
+
+<!-- Saved in parser cache with key ruwiki:pcache:idhash:25393-0!*!0!!ru!4!* and timestamp 20170130104542 and revision id 83193143
+ -->
+<noscript><img src="//ru.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;" /></noscript></div> <div class="printfooter">
+ Источник — «<a dir="ltr" href="https://ru.wikipedia.org/w/index.php?title=Алексей_Михайлович&amp;oldid=83193143">https://ru.wikipedia.org/w/index.php?title=Алексей_Михайлович&amp;oldid=83193143</a>» </div>
+ <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B8" title="Служебная:Категории">Категории</a>: <ul><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A0%D0%BE%D0%B4%D0%B8%D0%B2%D1%88%D0%B8%D0%B5%D1%81%D1%8F_27_%D0%BC%D0%B0%D1%80%D1%82%D0%B0" title="Категория:Родившиеся 27 марта">Родившиеся 27 марта</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A0%D0%BE%D0%B4%D0%B8%D0%B2%D1%88%D0%B8%D0%B5%D1%81%D1%8F_%D0%B2_1629_%D0%B3%D0%BE%D0%B4%D1%83" title="Категория:Родившиеся в 1629 году">Родившиеся в 1629 году</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D0%B5%D1%80%D1%81%D0%BE%D0%BD%D0%B0%D0%BB%D0%B8%D0%B8_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83" title="Категория:Персоналии по алфавиту">Персоналии по алфавиту</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A0%D0%BE%D0%B4%D0%B8%D0%B2%D1%88%D0%B8%D0%B5%D1%81%D1%8F_%D0%B2_%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B5" title="Категория:Родившиеся в Москве">Родившиеся в Москве</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A3%D0%BC%D0%B5%D1%80%D1%88%D0%B8%D0%B5_8_%D1%84%D0%B5%D0%B2%D1%80%D0%B0%D0%BB%D1%8F" title="Категория:Умершие 8 февраля">Умершие 8 февраля</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A3%D0%BC%D0%B5%D1%80%D1%88%D0%B8%D0%B5_%D0%B2_1676_%D0%B3%D0%BE%D0%B4%D1%83" title="Категория:Умершие в 1676 году">Умершие в 1676 году</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A3%D0%BC%D0%B5%D1%80%D1%88%D0%B8%D0%B5_%D0%B2_%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B5" title="Категория:Умершие в Москве">Умершие в Москве</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D0%BE%D1%85%D0%BE%D1%80%D0%BE%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B2_%D0%90%D1%80%D1%85%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%BE%D0%BC_%D1%81%D0%BE%D0%B1%D0%BE%D1%80%D0%B5_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D0%9A%D1%80%D0%B5%D0%BC%D0%BB%D1%8F" title="Категория:Похороненные в Архангельском соборе Московского Кремля">Похороненные в Архангельском соборе Московского Кремля</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A6%D0%B0%D1%80%D0%B8_%D0%B8%D0%B7_%D0%B4%D0%BE%D0%BC%D0%B0_%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2%D1%8B%D1%85" title="Категория:Цари из дома Романовых">Цари из дома Романовых</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A3%D1%87%D0%B0%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%B8_%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%BE-%D0%BF%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%BE%D0%B9_%D0%B2%D0%BE%D0%B9%D0%BD%D1%8B_1654%E2%80%941667_%D0%B3%D0%BE%D0%B4%D0%BE%D0%B2_(%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B0%D1%8F_%D1%81%D1%82%D0%BE%D1%80%D0%BE%D0%BD%D0%B0)" title="Категория:Участники Русско-польской войны 1654—1667 годов (русская сторона)">Участники Русско-польской войны 1654—1667 годов (русская сторона)</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" title="Категория:Алексей Михайлович">Алексей Михайлович</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B5_%D1%86%D0%B0%D1%80%D0%B8" title="Категория:Русские цари">Русские цари</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Скрытые категории: <ul><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A1%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B,_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D1%8E%D1%89%D0%B8%D0%B5_%D0%B2%D0%BE%D0%BB%D1%88%D0%B5%D0%B1%D0%BD%D1%8B%D0%B5_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8_ISBN" title="Категория:Страницы, использующие волшебные ссылки ISBN">Страницы, использующие волшебные ссылки ISBN</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D0%B8_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC_%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8%D0%B7_%D0%92%D0%B8%D0%BA%D0%B8%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85" title="Категория:Википедия:Статьи с переопределением значения из Викиданных">Википедия:Статьи с переопределением значения из Викиданных</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D0%B8,_%D1%82%D1%80%D0%B5%D0%B1%D1%83%D1%8E%D1%89%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BD%D0%BA%D1%80%D0%B5%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8" title="Категория:Википедия:Статьи, требующие конкретизации">Википедия:Статьи, требующие конкретизации</a></li></ul></div></div> <div class="visualClear"></div>
+ </div>
+ </div>
+ <div id="mw-navigation">
+ <h2>Навигация</h2>
+
+ <div id="mw-head">
+ <div id="p-personal" role="navigation" class="" aria-labelledby="p-personal-label">
+ <h3 id="p-personal-label">Персональные инструменты</h3>
+ <ul>
+ <li id="pt-anonuserpage">Вы не представились системе</li><li id="pt-anontalk"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%9C%D0%BE%D1%91_%D0%BE%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5" title="Страница обсуждений для моего IP [n]" accesskey="n">Обсуждение</a></li><li id="pt-anoncontribs"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%9C%D0%BE%D0%B9_%D0%B2%D0%BA%D0%BB%D0%B0%D0%B4" title="Список правок, сделанных с этого IP-адреса [y]" accesskey="y">Вклад</a></li><li id="pt-createaccount"><a href="/w/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C_%D1%83%D1%87%D1%91%D1%82%D0%BD%D1%83%D1%8E_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C&amp;returnto=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9+%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" title="Мы предлагаем вам создать учётную запись и войти в систему, хотя это и не обязательно.">Создать учётную запись</a></li><li id="pt-login"><a href="/w/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D1%85%D0%BE%D0%B4&amp;returnto=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9+%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" title="Здесь можно зарегистрироваться в системе, но это необязательно. [o]" accesskey="o">Войти</a></li> </ul>
+ </div>
+ <div id="left-navigation">
+ <div id="p-namespaces" role="navigation" class="vectorTabs" aria-labelledby="p-namespaces-label">
+ <h3 id="p-namespaces-label">Пространства имён</h3>
+ <ul>
+ <li id="ca-nstab-main" class="selected"><span><a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" title="Просмотр основной страницы [c]" accesskey="c">Статья</a></span></li>
+ <li id="ca-talk"><span><a href="/wiki/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" title="Обсуждение основной страницы [t]" accesskey="t" rel="discussion">Обсуждение</a></span></li>
+ </ul>
+ </div>
+ <div id="p-variants" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-variants-label">
+ <h3 id="p-variants-label">
+ <span>Варианты</span><a href="#"></a>
+ </h3>
+
+ <div class="menu">
+ <ul>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div id="right-navigation">
+ <div id="p-views" role="navigation" class="vectorTabs" aria-labelledby="p-views-label">
+ <h3 id="p-views-label">Просмотры</h3>
+ <ul>
+ <li id="ca-view" class="collapsible"><span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;stable=1" >Читать</a></span></li>
+ <li id="ca-current" class="collapsible collapsible selected"><span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;stable=0&amp;redirect=no" title="Показать текущую версию этой страницы [v]" accesskey="v">Текущая версия</a></span></li>
+ <li id="ca-ve-edit"><span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit" title="Редактировать данную страницу [v]" accesskey="v">Править</a></span></li>
+ <li id="ca-edit" class=" collapsible"><span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit" title="Эту статью можно изменять. Перед сохранением изменений, пожалуйста, нажмите кнопку предварительного просмотра для визуальной проверки результата [e]" accesskey="e">Править вики-текст</a></span></li>
+ <li id="ca-history" class="collapsible"><span><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=history" title="Журнал изменений страницы [h]" accesskey="h">История</a></span></li>
+ </ul>
+ </div>
+ <div id="p-cactions" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-cactions-label">
+ <h3 id="p-cactions-label"><span>Ещё</span><a href="#"></a></h3>
+
+ <div class="menu">
+ <ul>
+ </ul>
+ </div>
+ </div>
+ <div id="p-search" role="search">
+ <h3>
+ <label for="searchInput">Поиск</label>
+ </h3>
+
+ <form action="/w/index.php" id="searchform">
+ <div id="simpleSearch">
+ <input type="search" name="search" placeholder="Искать в Википедии" title="Искать в Википедии [f]" accesskey="f" id="searchInput"/><input type="hidden" value="Служебная:Поиск" name="title"/><input type="submit" name="fulltext" value="Найти" title="Найти страницы, содержащие указанный текст" id="mw-searchButton" class="searchButton mw-fallbackSearchButton"/><input type="submit" name="go" value="Перейти" title="Перейти к странице, имеющей в точности такое название" id="searchButton" class="searchButton"/> </div>
+ </form>
+ </div>
+ </div>
+ </div>
+ <div id="mw-panel">
+ <div id="p-logo" role="banner"><a class="mw-wiki-logo" href="/wiki/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0" title="Перейти на заглавную страницу"></a></div>
+ <div class="portal" role="navigation" id='p-navigation' aria-labelledby='p-navigation-label'>
+ <h3 id='p-navigation-label'>Навигация</h3>
+
+ <div class="body">
+ <ul>
+ <li id="n-mainpage"><a href="/wiki/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0" title="Перейти на заглавную страницу [z]" accesskey="z">Заглавная страница</a></li><li id="n-browse"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9F%D0%BE%D0%B8%D1%81%D0%BA_%D0%BF%D0%BE_%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC" title="Поиск по категориям">Рубрикация</a></li><li id="n-index"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%90%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D0%BD%D1%8B%D0%B9_%D1%83%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C" title="Поиск по двум первым буквам">Указатель А — Я</a></li><li id="n-featured"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%98%D0%B7%D0%B1%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8" title="Статьи, считающиеся лучшими статьями проекта">Избранные статьи</a></li><li id="n-randompage"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%A1%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0" title="Посмотреть случайно выбранную страницу [x]" accesskey="x">Случайная статья</a></li><li id="n-currentevents"><a href="/wiki/%D0%9F%D0%BE%D1%80%D1%82%D0%B0%D0%BB:%D0%A2%D0%B5%D0%BA%D1%83%D1%89%D0%B8%D0%B5_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F" title="Статьи о текущих событиях в мире">Текущие события</a></li> </ul>
+ </div>
+ </div>
+ <div class="portal" role="navigation" id='p-participation' aria-labelledby='p-participation-label'>
+ <h3 id='p-participation-label'>Участие</h3>
+
+ <div class="body">
+ <ul>
+ <li id="n-bug_in_article"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BE%D0%B1_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0%D1%85" title="Сообщить об ошибке в этой статье">Сообщить об ошибке</a></li><li id="n-portal"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9F%D0%BE%D1%80%D1%82%D0%B0%D0%BB_%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B0" title="О проекте, о том, чем здесь можно заниматься, а также — где что находится">Портал сообщества</a></li><li id="n-forum"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A4%D0%BE%D1%80%D1%83%D0%BC" title="Форум участников Википедии">Форум</a></li><li id="n-recentchanges"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%A1%D0%B2%D0%B5%D0%B6%D0%B8%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B8" title="Список последних изменений [r]" accesskey="r">Свежие правки</a></li><li id="n-newpages"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%9D%D0%BE%D0%B2%D1%8B%D0%B5_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B" title="Список недавно созданных страниц">Новые страницы</a></li><li id="n-help"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0" title="Место, где можно получить справку">Справка</a></li><li id="n-sitesupport"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_ru.wikipedia.org&amp;uselang=ru" title="Поддержите нас">Пожертвовать</a></li> </ul>
+ </div>
+ </div>
+ <div class="portal" role="navigation" id='p-tb' aria-labelledby='p-tb-label'>
+ <h3 id='p-tb-label'>Инструменты</h3>
+
+ <div class="body">
+ <ul>
+ <li id="t-whatlinkshere"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%A1%D1%81%D1%8B%D0%BB%D0%BA%D0%B8_%D1%81%D1%8E%D0%B4%D0%B0/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" title="Список всех страниц, ссылающихся на данную [j]" accesskey="j">Ссылки сюда</a></li><li id="t-recentchangeslinked"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%A1%D0%B2%D1%8F%D0%B7%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B8/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" rel="nofollow" title="Последние изменения в страницах, на которые ссылается эта страница [k]" accesskey="k">Связанные правки</a></li><li id="t-specialpages"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%A1%D0%BF%D0%B5%D1%86%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B" title="Список служебных страниц [q]" accesskey="q">Спецстраницы</a></li><li id="t-permalink"><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;oldid=83193143" title="Постоянная ссылка на эту версию страницы">Постоянная ссылка</a></li><li id="t-info"><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;action=info" title="Подробнее об этой странице">Сведения о странице</a></li><li id="t-wikibase"><a href="https://www.wikidata.org/wiki/Q7731" title="Ссылка на связанный элемент репозитория данных [g]" accesskey="g">Элемент Викиданных</a></li><li id="t-cite"><a href="/w/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%A6%D0%B8%D1%82%D0%B0%D1%82%D0%B0&amp;page=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;id=83193143" title="Информация о том, как цитировать эту страницу">Цитировать страницу</a></li> </ul>
+ </div>
+ </div>
+ <div class="portal" role="navigation" id='p-coll-print_export' aria-labelledby='p-coll-print_export-label'>
+ <h3 id='p-coll-print_export-label'>Печать/экспорт</h3>
+
+ <div class="body">
+ <ul>
+ <li id="coll-create_a_book"><a href="/w/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%D0%BA%D0%BD%D0%B8%D0%B3&amp;bookcmd=book_creator&amp;referer=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9+%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87">Создать книгу</a></li><li id="coll-download-as-rdf2latex"><a href="/w/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%D0%BA%D0%BD%D0%B8%D0%B3&amp;bookcmd=render_article&amp;arttitle=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9+%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;returnto=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9+%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;oldid=83193143&amp;writer=rdf2latex">Скачать как PDF</a></li><li id="t-print"><a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;printable=yes" title="Версия этой страницы для печати [p]" accesskey="p">Версия для печати</a></li> </ul>
+ </div>
+ </div>
+ <div class="portal" role="navigation" id='p-wikibase-otherprojects' aria-labelledby='p-wikibase-otherprojects-label'>
+ <h3 id='p-wikibase-otherprojects-label'>В других проектах</h3>
+
+ <div class="body">
+ <ul>
+ <li class="wb-otherproject-link wb-otherproject-commons"><a href="https://commons.wikimedia.org/wiki/Category:Alexis_I_of_Russia" hreflang="en">Викисклад</a></li> </ul>
+ </div>
+ </div>
+ <div class="portal" role="navigation" id='p-lang' aria-labelledby='p-lang-label'>
+ <h3 id='p-lang-label'>На других языках</h3>
+
+ <div class="body">
+ <ul>
+ <li class="interlanguage-link interwiki-af"><a href="https://af.wikipedia.org/wiki/Aleksei_van_Rusland" title="Aleksei van Rusland — африкаанс" lang="af" hreflang="af" class="interlanguage-link-target">Afrikaans</a></li><li class="interlanguage-link interwiki-ar"><a href="https://ar.wikipedia.org/wiki/%D8%A3%D9%84%D9%8A%D9%83%D8%B3_%D8%A7%D9%84%D8%A3%D9%88%D9%84" title="أليكس الأول — арабский" lang="ar" hreflang="ar" class="interlanguage-link-target">العربية</a></li><li class="interlanguage-link interwiki-ast"><a href="https://ast.wikipedia.org/wiki/Alexis_I_de_Rusia" title="Alexis I de Rusia — астурийский" lang="ast" hreflang="ast" class="interlanguage-link-target">Asturianu</a></li><li class="interlanguage-link interwiki-az"><a href="https://az.wikipedia.org/wiki/I_Aleksey" title="I Aleksey — азербайджанский" lang="az" hreflang="az" class="interlanguage-link-target">Azərbaycanca</a></li><li class="interlanguage-link interwiki-be"><a href="https://be.wikipedia.org/wiki/%D0%90%D0%BB%D1%8F%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D1%96%D1%85%D0%B0%D0%B9%D0%BB%D0%B0%D0%B2%D1%96%D1%87,_%D1%86%D0%B0%D1%80_%D1%96_%D0%B2%D1%8F%D0%BB%D1%96%D0%BA%D1%96_%D0%BA%D0%BD%D1%8F%D0%B7%D1%8C_%D1%83%D1%81%D1%8F%D0%B5_%D0%A0%D1%83%D1%81%D1%96" title="Аляксей Міхайлавіч, цар і вялікі князь усяе Русі — белорусский" lang="be" hreflang="be" class="interlanguage-link-target">Беларуская</a></li><li class="interlanguage-link interwiki-be-x-old"><a href="https://be-x-old.wikipedia.org/wiki/%D0%90%D0%BB%D1%8F%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D1%96%D1%85%D0%B0%D0%B9%D0%BB%D0%B0%D0%B2%D1%96%D1%87" title="Аляксей Міхайлавіч — беларуская (тарашкевіца)‎" lang="be-x-old" hreflang="be-x-old" class="interlanguage-link-target">Беларуская (тарашкевіца)‎</a></li><li class="interlanguage-link interwiki-bg"><a href="https://bg.wikipedia.org/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_(%D0%A0%D1%83%D1%81%D0%B8%D1%8F)" title="Алексей (Русия) — болгарский" lang="bg" hreflang="bg" class="interlanguage-link-target">Български</a></li><li class="interlanguage-link interwiki-ca"><a href="https://ca.wikipedia.org/wiki/Aleix_de_R%C3%BAssia_(tsar_de_R%C3%BAssia)" title="Aleix de Rússia (tsar de Rússia) — каталанский" lang="ca" hreflang="ca" class="interlanguage-link-target">Català</a></li><li class="interlanguage-link interwiki-cs"><a href="https://cs.wikipedia.org/wiki/Alexej_I._Michajlovi%C4%8D" title="Alexej I. Michajlovič — чешский" lang="cs" hreflang="cs" class="interlanguage-link-target">Čeština</a></li><li class="interlanguage-link interwiki-da"><a href="https://da.wikipedia.org/wiki/Aleksej_Mikhajlovitj_af_Rusland" title="Aleksej Mikhajlovitj af Rusland — датский" lang="da" hreflang="da" class="interlanguage-link-target">Dansk</a></li><li class="interlanguage-link interwiki-de"><a href="https://de.wikipedia.org/wiki/Alexei_I._(Russland)" title="Alexei I. (Russland) — немецкий" lang="de" hreflang="de" class="interlanguage-link-target">Deutsch</a></li><li class="interlanguage-link interwiki-el"><a href="https://el.wikipedia.org/wiki/%CE%91%CE%BB%CE%AD%CE%BE%CE%B9%CE%BF%CF%82_%CF%84%CE%B7%CF%82_%CE%A1%CF%89%CF%83%CE%AF%CE%B1%CF%82" title="Αλέξιος της Ρωσίας — греческий" lang="el" hreflang="el" class="interlanguage-link-target">Ελληνικά</a></li><li class="interlanguage-link interwiki-en"><a href="https://en.wikipedia.org/wiki/Alexis_of_Russia" title="Alexis of Russia — английский" lang="en" hreflang="en" class="interlanguage-link-target">English</a></li><li class="interlanguage-link interwiki-eo"><a href="https://eo.wikipedia.org/wiki/Aleksej_Mi%C4%A5ajlovi%C4%89" title="Aleksej Miĥajloviĉ — эсперанто" lang="eo" hreflang="eo" class="interlanguage-link-target">Esperanto</a></li><li class="interlanguage-link interwiki-es"><a href="https://es.wikipedia.org/wiki/Alejo_I_de_Rusia" title="Alejo I de Rusia — испанский" lang="es" hreflang="es" class="interlanguage-link-target">Español</a></li><li class="interlanguage-link interwiki-et"><a href="https://et.wikipedia.org/wiki/Aleksei_I_Mihhailovit%C5%A1" title="Aleksei I Mihhailovitš — эстонский" lang="et" hreflang="et" class="interlanguage-link-target">Eesti</a></li><li class="interlanguage-link interwiki-eu"><a href="https://eu.wikipedia.org/wiki/Alexis_Errusiakoa" title="Alexis Errusiakoa — баскский" lang="eu" hreflang="eu" class="interlanguage-link-target">Euskara</a></li><li class="interlanguage-link interwiki-fa"><a href="https://fa.wikipedia.org/wiki/%D8%A7%D9%84%DA%A9%D8%B3%DB%8C%D8%B3_%DB%8C%DA%A9%D9%85_%D8%B1%D9%88%D8%B3%DB%8C%D9%87" title="الکسیس یکم روسیه — персидский" lang="fa" hreflang="fa" class="interlanguage-link-target">فارسی</a></li><li class="interlanguage-link interwiki-fi"><a href="https://fi.wikipedia.org/wiki/Aleksei_Mihailovit%C5%A1" title="Aleksei Mihailovitš — финский" lang="fi" hreflang="fi" class="interlanguage-link-target">Suomi</a></li><li class="interlanguage-link interwiki-fr"><a href="https://fr.wikipedia.org/wiki/Alexis_Ier_(tsar_de_Russie)" title="Alexis Ier (tsar de Russie) — французский" lang="fr" hreflang="fr" class="interlanguage-link-target">Français</a></li><li class="interlanguage-link interwiki-fy"><a href="https://fy.wikipedia.org/wiki/Aleksej_I_fan_Rusl%C3%A2n" title="Aleksej I fan Ruslân — западный фризский" lang="fy" hreflang="fy" class="interlanguage-link-target">Frysk</a></li><li class="interlanguage-link interwiki-gl"><a href="https://gl.wikipedia.org/wiki/Alexis_I_de_Rusia" title="Alexis I de Rusia — галисийский" lang="gl" hreflang="gl" class="interlanguage-link-target">Galego</a></li><li class="interlanguage-link interwiki-he"><a href="https://he.wikipedia.org/wiki/%D7%90%D7%9C%D7%9B%D7%A1%D7%99%D7%99_%D7%94%D7%A8%D7%90%D7%A9%D7%95%D7%9F,_%D7%A6%D7%90%D7%A8_%D7%A8%D7%95%D7%A1%D7%99%D7%94" title="אלכסיי הראשון, צאר רוסיה — иврит" lang="he" hreflang="he" class="interlanguage-link-target">עברית</a></li><li class="interlanguage-link interwiki-hr"><a href="https://hr.wikipedia.org/wiki/Aleksej_I.,_ruski_car" title="Aleksej I., ruski car — хорватский" lang="hr" hreflang="hr" class="interlanguage-link-target">Hrvatski</a></li><li class="interlanguage-link interwiki-hu"><a href="https://hu.wikipedia.org/wiki/Alekszej_orosz_c%C3%A1r" title="Alekszej orosz cár — венгерский" lang="hu" hreflang="hu" class="interlanguage-link-target">Magyar</a></li><li class="interlanguage-link interwiki-hy"><a href="https://hy.wikipedia.org/wiki/%D4%B1%D5%AC%D5%A5%D6%84%D5%BD%D5%A5%D5%B5_%D5%84%D5%AB%D5%AD%D5%A1%D5%B5%D5%AC%D5%B8%D5%BE%D5%AB%D5%B9" title="Ալեքսեյ Միխայլովիչ — армянский" lang="hy" hreflang="hy" class="interlanguage-link-target">Հայերեն</a></li><li class="interlanguage-link interwiki-id"><a href="https://id.wikipedia.org/wiki/Aleksey_I_dari_Rusia" title="Aleksey I dari Rusia — индонезийский" lang="id" hreflang="id" class="interlanguage-link-target">Bahasa Indonesia</a></li><li class="interlanguage-link interwiki-it"><a href="https://it.wikipedia.org/wiki/Alessio_Michajlovi%C4%8D" title="Alessio Michajlovič — итальянский" lang="it" hreflang="it" class="interlanguage-link-target">Italiano</a></li><li class="interlanguage-link interwiki-ja"><a href="https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%AC%E3%82%AF%E3%82%BB%E3%82%A4_(%E3%83%A2%E3%82%B9%E3%82%AF%E3%83%AF%E5%A4%A7%E5%85%AC)" title="アレクセイ (モスクワ大公) — японский" lang="ja" hreflang="ja" class="interlanguage-link-target">日本語</a></li><li class="interlanguage-link interwiki-ka"><a href="https://ka.wikipedia.org/wiki/%E1%83%90%E1%83%9A%E1%83%94%E1%83%A5%E1%83%A1%E1%83%98_I_(%E1%83%A0%E1%83%A3%E1%83%A1%E1%83%94%E1%83%97%E1%83%98)" title="ალექსი I (რუსეთი) — грузинский" lang="ka" hreflang="ka" class="interlanguage-link-target">ქართული</a></li><li class="interlanguage-link interwiki-ko"><a href="https://ko.wikipedia.org/wiki/%EC%95%8C%EB%A0%89%EC%84%B8%EC%9D%B4_1%EC%84%B8" title="알렉세이 1세 — корейский" lang="ko" hreflang="ko" class="interlanguage-link-target">한국어</a></li><li class="interlanguage-link interwiki-ky"><a href="https://ky.wikipedia.org/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" title="Алексей Михайлович — киргизский" lang="ky" hreflang="ky" class="interlanguage-link-target">Кыргызча</a></li><li class="interlanguage-link interwiki-la"><a href="https://la.wikipedia.org/wiki/Alexius_(tzar_Russiae)" title="Alexius (tzar Russiae) — латинский" lang="la" hreflang="la" class="interlanguage-link-target">Latina</a></li><li class="interlanguage-link interwiki-lt"><a href="https://lt.wikipedia.org/wiki/Aleksejus_Michailovi%C4%8Dius" title="Aleksejus Michailovičius — литовский" lang="lt" hreflang="lt" class="interlanguage-link-target">Lietuvių</a></li><li class="interlanguage-link interwiki-lv"><a href="https://lv.wikipedia.org/wiki/Aleksejs_I_Romanovs" title="Aleksejs I Romanovs — латышский" lang="lv" hreflang="lv" class="interlanguage-link-target">Latviešu</a></li><li class="interlanguage-link interwiki-mg"><a href="https://mg.wikipedia.org/wiki/Alexis_an%27i_Rosia" title="Alexis an'i Rosia — малагасийский" lang="mg" hreflang="mg" class="interlanguage-link-target">Malagasy</a></li><li class="interlanguage-link interwiki-mk"><a href="https://mk.wikipedia.org/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%98_I_%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2" title="Алексеј I Романов — македонский" lang="mk" hreflang="mk" class="interlanguage-link-target">Македонски</a></li><li class="interlanguage-link interwiki-mr"><a href="https://mr.wikipedia.org/wiki/%E0%A4%85%E0%A4%B2%E0%A5%87%E0%A4%95%E0%A5%8D%E0%A4%B8%E0%A4%BF%E0%A4%B8_%E0%A4%AA%E0%A4%B9%E0%A4%BF%E0%A4%B2%E0%A4%BE,_%E0%A4%B0%E0%A4%B6%E0%A4%BF%E0%A4%AF%E0%A4%BE" title="अलेक्सिस पहिला, रशिया — маратхи" lang="mr" hreflang="mr" class="interlanguage-link-target">मराठी</a></li><li class="interlanguage-link interwiki-nl"><a href="https://nl.wikipedia.org/wiki/Alexis_van_Rusland" title="Alexis van Rusland — нидерландский" lang="nl" hreflang="nl" class="interlanguage-link-target">Nederlands</a></li><li class="interlanguage-link interwiki-no"><a href="https://no.wikipedia.org/wiki/Aleksej_I_av_Russland" title="Aleksej I av Russland — норвежский" lang="no" hreflang="no" class="interlanguage-link-target">Norsk bokmål</a></li><li class="interlanguage-link interwiki-pl"><a href="https://pl.wikipedia.org/wiki/Aleksy_I_Romanow" title="Aleksy I Romanow — польский" lang="pl" hreflang="pl" class="interlanguage-link-target">Polski</a></li><li class="interlanguage-link interwiki-pt"><a href="https://pt.wikipedia.org/wiki/Aleixo_da_R%C3%BAssia" title="Aleixo da Rússia — португальский" lang="pt" hreflang="pt" class="interlanguage-link-target">Português</a></li><li class="interlanguage-link interwiki-ro"><a href="https://ro.wikipedia.org/wiki/Alexei_I_al_Rusiei" title="Alexei I al Rusiei — румынский" lang="ro" hreflang="ro" class="interlanguage-link-target">Română</a></li><li class="interlanguage-link interwiki-sco"><a href="https://sco.wikipedia.org/wiki/Alexis_o_Roushie" title="Alexis o Roushie — шотландский" lang="sco" hreflang="sco" class="interlanguage-link-target">Scots</a></li><li class="interlanguage-link interwiki-sh"><a href="https://sh.wikipedia.org/wiki/Aleksej_I.,_car_Rusije" title="Aleksej I., car Rusije — сербскохорватский" lang="sh" hreflang="sh" class="interlanguage-link-target">Srpskohrvatski / српскохрватски</a></li><li class="interlanguage-link interwiki-sk"><a href="https://sk.wikipedia.org/wiki/Alexej_I._(Rusko)" title="Alexej I. (Rusko) — словацкий" lang="sk" hreflang="sk" class="interlanguage-link-target">Slovenčina</a></li><li class="interlanguage-link interwiki-sl"><a href="https://sl.wikipedia.org/wiki/Aleksej_Ruski" title="Aleksej Ruski — словенский" lang="sl" hreflang="sl" class="interlanguage-link-target">Slovenščina</a></li><li class="interlanguage-link interwiki-sr"><a href="https://sr.wikipedia.org/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%98_I_%D0%9C%D0%B8%D1%85%D0%B0%D1%98%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" title="Алексеј I Михајлович — сербский" lang="sr" hreflang="sr" class="interlanguage-link-target">Српски / srpski</a></li><li class="interlanguage-link interwiki-sv"><a href="https://sv.wikipedia.org/wiki/Aleksej_Michajlovitj" title="Aleksej Michajlovitj — шведский" lang="sv" hreflang="sv" class="interlanguage-link-target">Svenska</a></li><li class="interlanguage-link interwiki-th"><a href="https://th.wikipedia.org/wiki/%E0%B8%9E%E0%B8%A3%E0%B8%B0%E0%B9%80%E0%B8%88%E0%B9%89%E0%B8%B2%E0%B8%8B%E0%B8%B2%E0%B8%A3%E0%B9%8C%E0%B8%AD%E0%B9%80%E0%B8%A5%E0%B9%87%E0%B8%81%E0%B8%8B%E0%B8%B5%E0%B8%97%E0%B8%B5%E0%B9%88_1_%E0%B9%81%E0%B8%AB%E0%B9%88%E0%B8%87%E0%B8%A3%E0%B8%B1%E0%B8%AA%E0%B9%80%E0%B8%8B%E0%B8%B5%E0%B8%A2" title="พระเจ้าซาร์อเล็กซีที่ 1 แห่งรัสเซีย — тайский" lang="th" hreflang="th" class="interlanguage-link-target">ไทย</a></li><li class="interlanguage-link interwiki-tr"><a href="https://tr.wikipedia.org/wiki/I._Aleksey_(Rusya)" title="I. Aleksey (Rusya) — турецкий" lang="tr" hreflang="tr" class="interlanguage-link-target">Türkçe</a></li><li class="interlanguage-link interwiki-tt"><a href="https://tt.wikipedia.org/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_I" title="Алексей I — татарский" lang="tt" hreflang="tt" class="interlanguage-link-target">Татарча/tatarça</a></li><li class="interlanguage-link interwiki-uk"><a href="https://uk.wikipedia.org/wiki/%D0%9E%D0%BB%D0%B5%D0%BA%D1%81%D1%96%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" title="Олексій Михайлович — украинский" lang="uk" hreflang="uk" class="interlanguage-link-target">Українська</a></li><li class="interlanguage-link interwiki-uz"><a href="https://uz.wikipedia.org/wiki/Aleksey_Mixaylovich" title="Aleksey Mixaylovich — узбекский" lang="uz" hreflang="uz" class="interlanguage-link-target">Oʻzbekcha/ўзбекча</a></li><li class="interlanguage-link interwiki-vi"><a href="https://vi.wikipedia.org/wiki/Aleksei_c%E1%BB%A7a_Nga" title="Aleksei của Nga — вьетнамский" lang="vi" hreflang="vi" class="interlanguage-link-target">Tiếng Việt</a></li><li class="interlanguage-link interwiki-zh"><a href="https://zh.wikipedia.org/wiki/%E9%98%BF%E5%88%97%E5%85%8B%E8%B0%A2%C2%B7%E7%B1%B3%E5%93%88%E4%BC%8A%E6%B4%9B%E7%BB%B4%E5%A5%87%C2%B7%E7%BD%97%E6%9B%BC%E8%AF%BA%E5%A4%AB" title="阿列克谢·米哈伊洛维奇·罗曼诺夫 — китайский" lang="zh" hreflang="zh" class="interlanguage-link-target">中文</a></li> </ul>
+ <div class='after-portlet after-portlet-lang'><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Q7731#sitelinks-wikipedia" title="Править межъязыковые ссылки" class="wbc-editpage">Править ссылки</a></span></div> </div>
+ </div>
+ </div>
+ </div>
+ <div id="footer" role="contentinfo">
+ <ul id="footer-info">
+ <li id="footer-info-lastmod"> Последнее изменение этой страницы: 07:51, 21 января 2017.</li>
+ <li id="footer-info-copyright">Текст доступен по <a rel="license" href="//ru.wikipedia.org/wiki/Википедия:Текст_лицензии_Creative_Commons_Attribution-ShareAlike_3.0_Unported">лицензии Creative Commons Attribution-ShareAlike</a><a rel="license" href="//creativecommons.org/licenses/by-sa/3.0/" style="display:none;"></a>; в отдельных случаях могут действовать дополнительные условия.
+<span class="noprint">Подробнее см. <a href="//wikimediafoundation.org/wiki/Terms_of_Use/ru">Условия использования</a>.</span><br/>
+Wikipedia&reg; — зарегистрированный товарный знак некоммерческой организации <a href="//wikimediafoundation.org/wiki/Приёмная">Wikimedia Foundation, Inc.</a><br /></li><li class="noprint"><a class='internal' href="//ru.wikipedia.org/wiki/Википедия:Контакты">Свяжитесь с нами</a></li>
+ </ul>
+ <ul id="footer-places">
+ <li id="footer-places-privacy"><a href="https://meta.wikimedia.org/wiki/Privacy_policy/ru" class="extiw" title="m:Privacy policy/ru">Политика конфиденциальности</a></li>
+ <li id="footer-places-about"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5" title="Википедия:Описание">Описание Википедии</a></li>
+ <li id="footer-places-disclaimer"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9E%D1%82%D0%BA%D0%B0%D0%B7_%D0%BE%D1%82_%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8" title="Википедия:Отказ от ответственности">Отказ от ответственности</a></li>
+ <li id="footer-places-developers"><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/How_to_contribute">Разработчики</a></li>
+ <li id="footer-places-cookiestatement"><a href="https://wikimediafoundation.org/wiki/Cookie_statement">Соглашение о cookie</a></li>
+ <li id="footer-places-mobileview"><a href="//ru.m.wikipedia.org/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Мобильная версия</a></li>
+ </ul>
+ <ul id="footer-icons" class="noprint">
+ <li id="footer-copyrightico">
+ <a href="https://wikimediafoundation.org/"><img src="/static/images/wikimedia-button.png" srcset="/static/images/wikimedia-button-1.5x.png 1.5x, /static/images/wikimedia-button-2x.png 2x" width="88" height="31" alt="Wikimedia Foundation"/></a> </li>
+ <li id="footer-poweredbyico">
+ <a href="//www.mediawiki.org/"><img src="/static/images/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" srcset="/static/images/poweredby_mediawiki_132x47.png 1.5x, /static/images/poweredby_mediawiki_176x62.png 2x" width="88" height="31"/></a> </li>
+ </ul>
+ <div style="clear:both"></div>
+ </div>
+ <script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgPageParseReport":{"limitreport":{"cputime":"1.112","walltime":"1.483","ppvisitednodes":{"value":19291,"limit":1000000},"ppgeneratednodes":{"value":0,"limit":1500000},"postexpandincludesize":{"value":270581,"limit":2097152},"templateargumentsize":{"value":66477,"limit":2097152},"expansiondepth":{"value":18,"limit":40},"expensivefunctioncount":{"value":31,"limit":500},"entityaccesscount":{"value":27,"limit":400},"timingprofile":["100.00% 1229.602 1 -total"," 31.88% 391.955 1 Шаблон:Государственный_деятель2"," 25.52% 313.828 54 Шаблон:Сс3"," 24.83% 305.370 37 Шаблон:Wikidata"," 19.57% 240.678 16 Шаблон:If-wikidata"," 16.43% 202.029 356 Шаблон:OldStyleDate3/lag"," 16.36% 201.156 1 Шаблон:Государственный_деятель/Личные_данные"," 16.31% 200.608 1 Шаблон:Библиоинформация"," 4.47% 54.981 6 Шаблон:Книга"," 3.77% 46.301 1 Шаблон:Примечания"]},"scribunto":{"limitreport-timeusage":{"value":"0.408","limit":"10.000"},"limitreport-memusage":{"value":6348273,"limit":52428800}},"cachereport":{"origin":"mw1172","timestamp":"20170130104544","ttl":2592000,"transientcontent":false}}});});</script><script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgBackendResponseTime":109,"wgHostname":"mw1274"});});</script>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/table/integrity/Feodor_I_of_Russia-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/table/integrity/Feodor_I_of_Russia-novalid.html
new file mode 100644
index 0000000000..31597f7cc1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/table/integrity/Feodor_I_of_Russia-novalid.html
@@ -0,0 +1,1772 @@
+<!DOCTYPE html>
+<html class="client-nojs" lang="ru" dir="ltr">
+<head>
+<meta charset="UTF-8"/>
+<title>Фёдор Иванович — Википедия</title>
+<script>document.documentElement.className = document.documentElement.className.replace( /(^|\s)client-nojs(\s|$)/, "$1client-js$2" );</script>
+<script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Фёдор_Иванович","wgTitle":"Фёдор Иванович","wgCurRevisionId":83139961,"wgRevisionId":83139961,"wgArticleId":54693,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Википедия:Статьи с переопределением значения из Викиданных","Википедия:Ссылка на Викитеку непосредственно в статье","Родившиеся 31 мая","Родившиеся в 1557 году","Персоналии по алфавиту","Родившиеся в урочище Собилка","Родившиеся в Переславле-Засесском","Умершие 17 января","Умершие в 1598 году","Умершие в Москве","Родившиеся в Москве","Русские цари","Рюриковичи по алфавиту","Похороненные в Архангельском соборе Московского Кремля","Канонизированные князья","Даниловичи (Рюриковичи)"],"wgBreakFrames":false,"wgPageContentLanguage":"ru","wgPageContentModel":"wikitext","wgSeparatorTransformTable":[",\t."," \t,"],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"],"wgMonthNamesShort":["","янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек"],"wgRelevantPageName":"Фёдор_Иванович","wgRelevantArticleId":54693,"wgRequestId":"WI6vHgpAEKsAABiT5lQAAABY","wgIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgFlaggedRevsParams":{"tags":{"accuracy":{"levels":3,"quality":2,"pristine":4}}},"wgStableRevisionId":83139961,"wgWikiEditorEnabledModules":{"toolbar":true,"dialogs":true,"preview":false,"publish":false},"wgBetaFeaturesFeatures":[],"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgVisualEditor":{"pageLanguageCode":"ru","pageLanguageDir":"ltr","usePageImages":true,"usePageDescriptions":true},"wgPreferredVariant":"ru","wgMFDisplayWikibaseDescriptions":{"search":true,"nearby":true,"watchlist":true,"tagline":false},"wgRelatedArticles":null,"wgRelatedArticlesUseCirrusSearch":true,"wgRelatedArticlesOnlyUseCirrusSearch":false,"wgULSCurrentAutonym":"русский","wgNoticeProject":"wikipedia","wgCentralNoticeCookiesToDelete":[],"wgCentralNoticeCategoriesUsingLegacy":["Fundraising","fundraising"],"wgCategoryTreePageCategoryOptions":"{\"mode\":0,\"hideprefix\":20,\"showcount\":true,\"namespaces\":false}","wgWikibaseItemId":"Q186321","wgCentralAuthMobileDomain":false,"wgVisualEditorToolbarScrollOffset":0,"wgEditSubmitButtonLabelPublish":false});mw.loader.state({"ext.globalCssJs.user.styles":"ready","ext.globalCssJs.site.styles":"ready","site.styles":"ready","noscript":"ready","user.styles":"ready","user":"ready","user.options":"loading","user.tokens":"loading","ext.math.styles":"ready","ext.cite.styles":"ready","wikibase.client.init":"ready","ext.gadget.logo":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","ext.flaggedRevs.basic":"ready","ext.wikimediaBadges":"ready","mediawiki.legacy.shared":"ready","mediawiki.legacy.commonPrint":"ready","mediawiki.sectionAnchor":"ready","mediawiki.skinning.interface":"ready","skins.vector.styles":"ready","ext.globalCssJs.user":"ready","ext.globalCssJs.site":"ready"});mw.loader.implement("user.options@0aplg68",function($,jQuery,require,module){mw.user.options.set({"variant":"ru"});});mw.loader.implement("user.tokens@1dqfd7l",function ( $, jQuery, require, module ) {
+mw.user.tokens.set({"editToken":"+\\","patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"});/*@nomin*/;
+
+});mw.loader.load(["ext.cite.a11y","mediawiki.toc","mediawiki.action.view.postEdit","site","mediawiki.page.startup","mediawiki.user","mediawiki.hidpi","mediawiki.page.ready","mediawiki.legacy.wikibits","mediawiki.searchSuggest","ext.gadget.collapserefs","ext.gadget.directLinkToCommons","ext.gadget.referenceTooltips","ext.gadget.edittop","ext.gadget.blpEditNotice","ext.centralauth.centralautologin","mmv.head","mmv.bootstrap.autostart","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.eventLogging.subscriber","ext.wikimediaEvents","ext.navigationTiming","ext.uls.eventlogger","ext.uls.init","ext.uls.compactlinks","ext.uls.interface","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.flaggedRevs.advanced","skins.vector.js"]);});</script>
+<link rel="stylesheet" href="/w/load.php?debug=false&amp;lang=ru&amp;modules=ext.cite.styles%7Cext.flaggedRevs.basic%7Cext.gadget.logo%7Cext.math.scripts%2Cstyles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cmediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.sectionAnchor%7Cmediawiki.skinning.interface%7Cskins.vector.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector"/>
+<script async="" src="/w/load.php?debug=false&amp;lang=ru&amp;modules=startup&amp;only=scripts&amp;skin=vector"></script>
+<meta name="ResourceLoaderDynamicStyles" content=""/>
+<link rel="stylesheet" href="/w/load.php?debug=false&amp;lang=ru&amp;modules=site.styles&amp;only=styles&amp;skin=vector"/>
+<noscript><link rel="stylesheet" href="/w/load.php?debug=false&amp;lang=ru&amp;modules=noscript&amp;only=styles&amp;skin=vector"/></noscript>
+<meta name="generator" content="MediaWiki 1.29.0-wmf.9"/>
+<meta name="referrer" content="origin-when-cross-origin"/>
+<link rel="alternate" href="android-app://org.wikipedia/http/ru.m.wikipedia.org/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87"/>
+<link rel="alternate" type="application/x-wiki" title="Править" href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit"/>
+<link rel="edit" title="Править" href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit"/>
+<link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"/>
+<link rel="shortcut icon" href="/static/favicon/wikipedia.ico"/>
+<link rel="search" type="application/opensearchdescription+xml" href="/w/opensearch_desc.php" title="Википедия (ru)"/>
+<link rel="EditURI" type="application/rsd+xml" href="//ru.wikipedia.org/w/api.php?action=rsd"/>
+<link rel="copyright" href="//creativecommons.org/licenses/by-sa/3.0/"/>
+<link rel="canonical" href="https://ru.wikipedia.org/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87"/>
+<link rel="dns-prefetch" href="//login.wikimedia.org"/>
+<link rel="dns-prefetch" href="//meta.wikimedia.org" />
+</head>
+<body class="mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Фёдор_Иванович rootpage-Фёдор_Иванович skin-vector action-view"> <div id="mw-page-base" class="noprint"></div>
+ <div id="mw-head-base" class="noprint"></div>
+ <div id="content" class="mw-body" role="main">
+ <a id="top"></a>
+
+ <div id="siteNotice"><!-- CentralNotice --></div>
+ <div class="mw-indicators">
+</div>
+ <h1 id="firstHeading" class="firstHeading" lang="ru">Фёдор Иванович</h1>
+ <div id="bodyContent" class="mw-body-content">
+ <div id="siteSub">Материал из Википедии — свободной энциклопедии</div>
+ <div id="contentSub"></div>
+ <div id="jump-to-nav" class="mw-jump">
+ Перейти к: <a href="#mw-head">навигация</a>, <a href="#p-search">поиск</a>
+ </div>
+ <div id="mw-content-text" lang="ru" dir="ltr" class="mw-content-ltr"><script>function mfTempOpenSection(id){var block=document.getElementById("mf-section-"+id);block.className+=" open-block";block.previousSibling.className+=" open-block";}</script><table align="right" class="infobox" style="border-spacing: 1px; padding: 0px 0px;" cellspacing="1px">
+<tr>
+<td style="padding: 0.5em; background: #eaeaea; font-size: 120%; text-align: center; line-height:130%;" colspan="2"><span style="font-size:1.25em; font-weight:bold">Фёдор I Иоаннович</span></td>
+</tr>
+<tr>
+<td colspan="2" style="text-align: center; border-top: solid darkgray 1px;"><span class="no-wikidata" data-wikidata-property-id="P18"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Tsarskiy_titulyarnik_feodor_iv.jpg" class="image"><img alt="Tsarskiy titulyarnik feodor iv.jpg" src="//upload.wikimedia.org/wikipedia/commons/thumb/9/90/Tsarskiy_titulyarnik_feodor_iv.jpg/250px-Tsarskiy_titulyarnik_feodor_iv.jpg" width="250" height="343" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/9/90/Tsarskiy_titulyarnik_feodor_iv.jpg/375px-Tsarskiy_titulyarnik_feodor_iv.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/9/90/Tsarskiy_titulyarnik_feodor_iv.jpg 2x" data-file-width="394" data-file-height="540" /></a></span></td>
+</tr>
+<tr>
+<td colspan="2" style="text-align: center;"><span class="no-wikidata" data-wikidata-property-id="P2096">Портрет из <a href="/wiki/%D0%A6%D0%B0%D1%80%D1%81%D0%BA%D0%B8%D0%B9_%D1%82%D0%B8%D1%82%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%B8%D0%BA" title="Царский титулярник">«Царского титулярника»</a></span></td>
+</tr>
+<tr>
+<th colspan="2" style="border-top: solid darkgray 1px;">
+<table style="width: 100%;" cellspacing="1px">
+<tr>
+<td style="width: 22px; vertical-align: middle;">
+<div class="center">
+<div class="floatnone"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Flag_of_Tzar_of_Muscovia.svg" class="image" title="Флаг"><img alt="Флаг" src="//upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Flag_of_Tzar_of_Muscovia.svg/22px-Flag_of_Tzar_of_Muscovia.svg.png" width="22" height="22" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Flag_of_Tzar_of_Muscovia.svg/33px-Flag_of_Tzar_of_Muscovia.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/d3/Flag_of_Tzar_of_Muscovia.svg/44px-Flag_of_Tzar_of_Muscovia.svg.png 2x" data-file-width="600" data-file-height="600" /></a></div>
+</div>
+</td>
+<td style="text-align:center; font-size:130%; background:lavender; vertical-align: middle;" height="18px"><a href="/wiki/%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%BE%D0%B5_%D1%86%D0%B0%D1%80%D1%81%D1%82%D0%B2%D0%BE" title="Русское царство">Государь, Царь и Великий Князь<br />
+всея Руси</a></td>
+</tr>
+</table>
+</th>
+</tr>
+<tr>
+<th colspan="2" style="padding: 0px; text-align:center; font-size:110%;"><a href="/wiki/18_%D0%BC%D0%B0%D1%80%D1%82%D0%B0" title="18 марта">18 марта</a> <a href="/wiki/1584" class="mw-redirect" title="1584">1584</a>&#160;—&#160;<abbr title="7 января по юлианскому календарю">7</abbr>&#160;(<a href="/wiki/17_%D1%8F%D0%BD%D0%B2%D0%B0%D1%80%D1%8F" title="17 января"><span title="17 января по григорианскому календарю">17</span></a>)&#160;января&#160;<a href="/wiki/1598_%D0%B3%D0%BE%D0%B4" title="1598 год">1598</a></th>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Коронация:</th>
+<td><a href="/wiki/31_%D0%BC%D0%B0%D1%8F" title="31 мая">31 мая</a> <a href="/wiki/1584" class="mw-redirect" title="1584">1584</a></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Предшественник:</th>
+<td><a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_IV_%D0%93%D1%80%D0%BE%D0%B7%D0%BD%D1%8B%D0%B9" class="mw-redirect" title="Иван IV Грозный">Иван IV Грозный</a></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Преемник:</th>
+<td><a href="/wiki/%D0%93%D0%BE%D0%B4%D1%83%D0%BD%D0%BE%D0%B2%D0%B0,_%D0%98%D1%80%D0%B8%D0%BD%D0%B0_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%BD%D0%B0" title="Годунова, Ирина Фёдоровна">Ирина Фёдоровна</a></td>
+</tr>
+<tr>
+<td colspan="2" style="border-top: solid darkgray 1px; line-height:0px">&#160;</td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Вероисповедание:</th>
+<td><span class="no-wikidata" data-wikidata-property-id="P140"><a href="/wiki/%D0%9F%D1%80%D0%B0%D0%B2%D0%BE%D1%81%D0%BB%D0%B0%D0%B2%D0%B8%D0%B5" title="Православие">Православие</a></span></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Рождение:</th>
+<td><span class="nowrap"><a href="/wiki/31_%D0%BC%D0%B0%D1%8F" title="31 мая">31 мая</a> <a href="/wiki/1557_%D0%B3%D0%BE%D0%B4" title="1557 год">1557</a></span><span style="display:none">(<span class="bday">1557-05-31</span>)</span><br />
+<div class="no-wikidata" data-wikidata-property-id="P19">
+<p><a href="/w/index.php?title=%D0%A3%D1%80%D0%BE%D1%87%D0%B8%D1%89%D0%B5_%D0%A1%D0%BE%D0%B1%D0%B8%D0%BB%D0%BA%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Урочище Собилка (страница отсутствует)">Урочище Собилка</a>,</p>
+<a href="/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D1%81%D0%BB%D0%B0%D0%B2%D0%BB%D1%8C-%D0%97%D0%B0%D0%BB%D0%B5%D1%81%D1%81%D0%BA%D0%B8%D0%B9" title="Переславль-Залесский">Переславль-Залесский</a></div>
+</td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Смерть:</th>
+<td><span class="nowrap"><a href="/wiki/17_%D1%8F%D0%BD%D0%B2%D0%B0%D1%80%D1%8F" title="17 января">7 (17) января</a> <a href="/wiki/1598_%D0%B3%D0%BE%D0%B4" title="1598 год">1598</a></span><span style="display:none">(<span class="dday">1598-01-17</span>)</span> <span class="nowrap">(40 лет)</span><br />
+<span class="no-wikidata" data-wikidata-property-id="P20"><a href="/wiki/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0" title="Москва">Москва</a></span></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Место погребения:</th>
+<td><span class="no-wikidata" data-wikidata-property-id="P119"><a href="/wiki/%D0%90%D1%80%D1%85%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9_%D1%81%D0%BE%D0%B1%D0%BE%D1%80_(%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0)" title="Архангельский собор (Москва)">Архангельский собор в Москве</a></span></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Род:</th>
+<td><a href="/wiki/%D0%A0%D1%8E%D1%80%D0%B8%D0%BA%D0%BE%D0%B2%D0%B8%D1%87%D0%B8" title="Рюриковичи">Рюриковичи</a></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Отец:</th>
+<td><span class="no-wikidata" data-wikidata-property-id="P22"><a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_%D0%93%D1%80%D0%BE%D0%B7%D0%BD%D1%8B%D0%B9" title="Иван Грозный">Иван IV Грозный</a></span></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Мать:</th>
+<td><span class="no-wikidata" data-wikidata-property-id="P25"><a href="/wiki/%D0%97%D0%B0%D1%85%D0%B0%D1%80%D1%8C%D0%B8%D0%BD%D0%B0-%D0%AE%D1%80%D1%8C%D0%B5%D0%B2%D0%B0,_%D0%90%D0%BD%D0%B0%D1%81%D1%82%D0%B0%D1%81%D0%B8%D1%8F_%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0" title="Захарьина-Юрьева, Анастасия Романовна">Анастасия Романовна Захарьина-Юрьева</a></span></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Супруга:</th>
+<td><a href="/wiki/%D0%93%D0%BE%D0%B4%D1%83%D0%BD%D0%BE%D0%B2%D0%B0,_%D0%98%D1%80%D0%B8%D0%BD%D0%B0_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%BD%D0%B0" title="Годунова, Ирина Фёдоровна">Ирина Фёдоровна Годунова</a></td>
+</tr>
+<tr>
+<th style="text-align: right; background:#eee; width:40%;">Дети:</th>
+<td><span class="no-wikidata" data-wikidata-property-id="P40"><b>дочь:</b> <a href="/wiki/%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%81%D0%B8%D1%8F_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%BD%D0%B0" title="Феодосия Фёдоровна">Феодосия</a></span></td>
+</tr>
+<tr>
+<th colspan="2" class="metadata" style="text-align:center;">
+<div style="border: solid #ddd; border-width: 1px 0px 0px 0px;width:100%;background:#eaeaea"><span class="wikidata-claim" data-wikidata-property-id="P373" data-wikidata-claim-id="q186321$CA8D368F-7A0E-4415-9455-87DE72DD0FE4"><span class="wikidata-snak wikidata-main-snak"><b><a href="https://commons.wikimedia.org/wiki/Category:Feodor_I_of_Russia" title="commons:Category:Feodor I of Russia"><img alt="Commons-logo.svg" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/15px-Commons-logo.svg.png" width="15" height="20" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/23px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></a>&#160;<a href="https://commons.wikimedia.org/wiki/Category:Feodor_I_of_Russia" class="extiw" title="commons:Category:Feodor I of Russia">Фёдор I Иоаннович</a></b> на <a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D1%81%D0%BA%D0%BB%D0%B0%D0%B4" title="Викисклад">Викискладе</a></span></span></div>
+</th>
+</tr>
+</table>
+<div class="dablink noprint">В Википедии есть статьи о других людях с именем <a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_(%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F)" class="mw-disambig" title="Фёдор (значения)">Фёдор (значения)</a>.</div>
+<div class="dablink">Запрос «Фёдор Иванович» перенаправляется сюда; см. также <a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87_(%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F)" class="mw-disambig" title="Фёдор Иванович (значения)">другие значения</a>.</div>
+<p><b>Фёдор I Иоа́ннович</b>, известен также по имени <b>Феодор Блаженный</b>, <a href="/wiki/31_%D0%BC%D0%B0%D1%8F" title="31 мая">31 мая</a> <a href="/wiki/1557" class="mw-redirect" title="1557">1557</a>, <a href="/wiki/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0" title="Москва">Москва</a>&#160;— <abbr title="7 января по юлианскому календарю">7</abbr>&#160;(<a href="/wiki/17_%D1%8F%D0%BD%D0%B2%D0%B0%D1%80%D1%8F" title="17 января"><span title="17 января по григорианскому календарю">17</span></a>)&#160;января&#160;<a href="/wiki/1598_%D0%B3%D0%BE%D0%B4" title="1598 год">1598</a>, <a href="/wiki/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0" title="Москва">Москва</a>)&#160;— <a href="/wiki/%D0%A6%D0%B0%D1%80%D1%8C" title="Царь">царь</a> всея Руси и <a href="/wiki/%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%BE%D0%B5_%D0%BA%D0%BD%D1%8F%D0%B6%D0%B5%D1%81%D1%82%D0%B2%D0%BE_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B5" title="Великое княжество Московское">великий князь Московский</a> с <abbr title="18 марта по юлианскому календарю">18</abbr>&#160;(<a href="/wiki/28_%D0%BC%D0%B0%D1%80%D1%82%D0%B0" title="28 марта"><span title="28 марта по григорианскому календарю">28</span></a>)&#160;марта&#160;<a href="/wiki/1584_%D0%B3%D0%BE%D0%B4" title="1584 год">1584</a> года, третий сын <a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_%D0%93%D1%80%D0%BE%D0%B7%D0%BD%D1%8B%D0%B9" title="Иван Грозный">Ивана IV Грозного</a> и царицы <a href="/wiki/%D0%97%D0%B0%D1%85%D0%B0%D1%80%D1%8C%D0%B8%D0%BD%D0%B0-%D0%AE%D1%80%D1%8C%D0%B5%D0%B2%D0%B0,_%D0%90%D0%BD%D0%B0%D1%81%D1%82%D0%B0%D1%81%D0%B8%D1%8F_%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0" title="Захарьина-Юрьева, Анастасия Романовна">Анастасии Романовны Захарьиной-Юрьевой</a>, последний представитель московской ветви династии <a href="/wiki/%D0%A0%D1%8E%D1%80%D0%B8%D0%BA%D0%BE%D0%B2%D0%B8%D1%87%D0%B8" title="Рюриковичи">Рюриковичей</a>. Канонизирован Православной Церковью как «святой благоверный Феодор I Иоаннович, царь Московский»<sup id="cite_ref-:0_1-0" class="reference"><a href="#cite_note-:0-1">[1]</a></sup>. Память 7 (20) января, воскресенье перед 26 августа (по ст. стилю) / 4 сентября (по нов. стилю), то есть первое воскресенье сентября (<a href="/wiki/%D0%A1%D0%BE%D0%B1%D0%BE%D1%80_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D1%85_%D1%81%D0%B2%D1%8F%D1%82%D1%8B%D1%85" title="Собор Московских святых">Собор Московских святых</a>).</p>
+<p></p>
+<div id="toc" class="toc">
+<div id="toctitle">
+<h2>Содержание</h2>
+</div>
+<ul>
+<li class="toclevel-1 tocsection-1"><a href="#.D0.91.D0.B8.D0.BE.D0.B3.D1.80.D0.B0.D1.84.D0.B8.D1.8F"><span class="tocnumber">1</span> <span class="toctext">Биография</span></a></li>
+<li class="toclevel-1 tocsection-2"><a href="#.D0.A1.D0.BC.D0.B5.D1.80.D1.82.D1.8C"><span class="tocnumber">2</span> <span class="toctext">Смерть</span></a></li>
+<li class="toclevel-1 tocsection-3"><a href="#.D0.9E.D1.81.D0.BD.D0.BE.D0.B2.D0.BD.D1.8B.D0.B5_.D1.81.D0.BE.D0.B1.D1.8B.D1.82.D0.B8.D1.8F_.D0.B2.D0.BE_.D0.B2.D1.80.D0.B5.D0.BC.D1.8F_.D1.86.D0.B0.D1.80.D1.81.D1.82.D0.B2.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D0.A4.D1.91.D0.B4.D0.BE.D1.80.D0.B0_.D0.98.D0.BE.D0.B0.D0.BD.D0.BD.D0.BE.D0.B2.D0.B8.D1.87.D0.B0"><span class="tocnumber">3</span> <span class="toctext">Основные события во время царствования Фёдора Иоанновича</span></a></li>
+<li class="toclevel-1 tocsection-4"><a href="#.D0.9F.D0.B8.D1.81.D1.8C.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D0.B5_.D0.B8.D1.81.D1.82.D0.BE.D1.87.D0.BD.D0.B8.D0.BA.D0.B8_.D0.BE_.D0.A4.D1.91.D0.B4.D0.BE.D1.80.D0.B5_.D0.98.D0.BE.D0.B0.D0.BD.D0.BD.D0.BE.D0.B2.D0.B8.D1.87.D0.B5"><span class="tocnumber">4</span> <span class="toctext">Письменные источники о Фёдоре Иоанновиче</span></a></li>
+<li class="toclevel-1 tocsection-5"><a href="#.D0.9F.D1.80.D0.B5.D0.B4.D0.BA.D0.B8"><span class="tocnumber">5</span> <span class="toctext">Предки</span></a></li>
+<li class="toclevel-1 tocsection-6"><a href="#.D0.9F.D0.B0.D0.BC.D1.8F.D1.82.D1.8C"><span class="tocnumber">6</span> <span class="toctext">Память</span></a>
+<ul>
+<li class="toclevel-2 tocsection-7"><a href="#.D0.92_.D0.9F.D1.80.D0.B0.D0.B2.D0.BE.D1.81.D0.BB.D0.B0.D0.B2.D0.BD.D0.BE.D0.B9_.D0.A6.D0.B5.D1.80.D0.BA.D0.B2.D0.B8"><span class="tocnumber">6.1</span> <span class="toctext">В Православной Церкви</span></a></li>
+<li class="toclevel-2 tocsection-8"><a href="#.D0.A1.D0.BA.D1.83.D0.BB.D1.8C.D0.BF.D1.82.D1.83.D1.80.D0.B0"><span class="tocnumber">6.2</span> <span class="toctext">Скульптура</span></a></li>
+<li class="toclevel-2 tocsection-9"><a href="#.D0.97.D0.B0.D1.85.D0.BE.D1.80.D0.BE.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5"><span class="tocnumber">6.3</span> <span class="toctext">Захоронение</span></a></li>
+</ul>
+</li>
+<li class="toclevel-1 tocsection-10"><a href="#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.87.D0.B0.D0.BD.D0.B8.D1.8F"><span class="tocnumber">7</span> <span class="toctext">Примечания</span></a></li>
+<li class="toclevel-1 tocsection-11"><a href="#.D0.9B.D0.B8.D1.82.D0.B5.D1.80.D0.B0.D1.82.D1.83.D1.80.D0.B0"><span class="tocnumber">8</span> <span class="toctext">Литература</span></a></li>
+</ul>
+</div>
+<p></p>
+<h2><span class="mw-headline" id=".D0.91.D0.B8.D0.BE.D0.B3.D1.80.D0.B0.D1.84.D0.B8.D1.8F">Биография</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=1" class="mw-editsection-visualeditor" title="Редактировать раздел «Биография»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=1" title="Редактировать раздел «Биография»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<p>Когда родился Федор, Иван Грозный повелел построить церковь в <a href="/wiki/%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9_%D0%BC%D0%BE%D0%BD%D0%B0%D1%81%D1%82%D1%8B%D1%80%D1%8C_(%D0%9F%D0%B5%D1%80%D0%B5%D1%81%D0%BB%D0%B0%D0%B2%D0%BB%D1%8C-%D0%97%D0%B0%D0%BB%D0%B5%D1%81%D1%81%D0%BA%D0%B8%D0%B9)" title="Феодоровский монастырь (Переславль-Залесский)">Феодоровском монастыре</a> города <a href="/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D1%81%D0%BB%D0%B0%D0%B2%D0%BB%D1%8C-%D0%97%D0%B0%D0%BB%D0%B5%D1%81%D1%81%D0%BA%D0%B8%D0%B9" title="Переславль-Залесский">Переславль-Залесский</a>. Этот храм в честь <a href="/wiki/%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80_%D0%A1%D1%82%D1%80%D0%B0%D1%82%D0%B8%D0%BB%D0%B0%D1%82" title="Феодор Стратилат">Феодора Стратилата</a> стал главным собором монастыря и сохранился до настоящего времени. По преданию, на месте самого рождения царевича, в урочище Собилка, в 4 км от города по направлению к Москве, была поставлена каменная часовня-крест, также сохранившееся до нашего времени.</p>
+<div class="thumb tleft">
+<div class="thumbinner" style="width:222px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Facial_Chronicle_-_b.22,_p._409_-_Birth_of_Feodor_I.gif" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Facial_Chronicle_-_b.22%2C_p._409_-_Birth_of_Feodor_I.gif/220px-Facial_Chronicle_-_b.22%2C_p._409_-_Birth_of_Feodor_I.gif" width="220" height="399" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Facial_Chronicle_-_b.22%2C_p._409_-_Birth_of_Feodor_I.gif/330px-Facial_Chronicle_-_b.22%2C_p._409_-_Birth_of_Feodor_I.gif 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/e/e0/Facial_Chronicle_-_b.22%2C_p._409_-_Birth_of_Feodor_I.gif/440px-Facial_Chronicle_-_b.22%2C_p._409_-_Birth_of_Feodor_I.gif 2x" data-file-width="834" data-file-height="1513" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Facial_Chronicle_-_b.22,_p._409_-_Birth_of_Feodor_I.gif" class="internal" title="Увеличить"></a></div>
+Рождение Федора</div>
+</div>
+</div>
+<p>19 ноября 1581 года от раны, по одной из неподтверждённых версий, нанесённой отцом, погиб наследник престола <a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87_(%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%B8%D1%87)" title="Иван Иванович (царевич)">Иван</a>. С этого времени Фёдор стал наследником царского престола.</p>
+<p>Со слов самого Ивана Грозного, Фёдор был «постник и молчальник, более для <a href="/wiki/%D0%9A%D0%B5%D0%BB%D1%8C%D1%8F" title="Келья">кельи</a>, нежели для власти державной рождённый». От брака с <a href="/wiki/%D0%93%D0%BE%D0%B4%D1%83%D0%BD%D0%BE%D0%B2%D0%B0,_%D0%98%D1%80%D0%B8%D0%BD%D0%B0_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%BD%D0%B0" title="Годунова, Ирина Фёдоровна">Ириной Фёдоровной Годуновой</a> имел одну дочь (<a href="/wiki/1592" class="mw-redirect" title="1592">1592</a>), <a href="/wiki/%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%81%D0%B8%D1%8F_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%BD%D0%B0" title="Феодосия Фёдоровна">Феодосию</a>, прожившую всего девять месяцев и скончавшуюся в том же году (по другим сведениям&#160;— скончалась в 1594 году). В конце <a href="/wiki/1597_%D0%B3%D0%BE%D0%B4" title="1597 год">1597 года</a> Фёдор смертельно заболел и 7 января 1598 года в час ночи скончался. На нём пресеклась московская линия династии <a href="/wiki/%D0%A0%D1%8E%D1%80%D0%B8%D0%BA%D0%BE%D0%B2%D0%B8%D1%87%D0%B8" title="Рюриковичи">Рюриковичей</a> (потомство <a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_I_%D0%94%D0%B0%D0%BD%D0%B8%D0%BB%D0%BE%D0%B2%D0%B8%D1%87_%D0%9A%D0%B0%D0%BB%D0%B8%D1%82%D0%B0" title="Иван I Данилович Калита">Ивана I Калиты</a>).</p>
+<p>Большинство историков считают, что Фёдор был не способен к государственной деятельности, по некоторым данным слабый здоровьем и умом; принимал мало участия в управлении государством, находясь под опекой сперва совета вельмож, затем своего шурина <a href="/wiki/%D0%91%D0%BE%D1%80%D0%B8%D1%81_%D0%93%D0%BE%D0%B4%D1%83%D0%BD%D0%BE%D0%B2" title="Борис Годунов">Бориса Фёдоровича Годунова</a>, который с <a href="/wiki/1587_%D0%B3%D0%BE%D0%B4" title="1587 год">1587 года</a> фактически был соправителем государства, а после смерти Фёдора стал его преемником. Положение Бориса Годунова при царском дворе было столь значимо, что заморские дипломаты искали аудиенции именно у Бориса Годунова, его воля была законом. Фёдор царствовал, Борис управлял&#160;— это знали все и на Руси, и за границей.</p>
+<p>Историк и философ <a href="/wiki/%D0%A1%D0%BE%D0%BB%D0%BE%D0%B2%D1%8C%D1%91%D0%B2,_%D0%A1%D0%B5%D1%80%D0%B3%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" title="Соловьёв, Сергей Михайлович">С.&#160;М.&#160;Соловьев</a> в «Истории России с древнейших времен» описывает обычный распорядок дня Государя так:</p>
+<div class="thumb tright">
+<div class="thumbinner" style="width:222px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Boris_Godunov_icon.jpg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/7/78/Boris_Godunov_icon.jpg/220px-Boris_Godunov_icon.jpg" width="220" height="287" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/7/78/Boris_Godunov_icon.jpg 1.5x" data-file-width="322" data-file-height="420" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Boris_Godunov_icon.jpg" class="internal" title="Увеличить"></a></div>
+Борис Годунов</div>
+</div>
+</div>
+<blockquote>
+<p><i>«Обыкновенно встаёт он около четырёх часов утра. Когда оденется и умоется, приходит к нему отец духовный с Крестом, к которому Царь прикладывается. Затем крестовый дьяк вносит в комнату икону Святого, празднуемого в тот день, перед которой Царь молится около четверти часа. Входит опять священник со святою водой, кропит ею иконы и Царя. После этого царь посылает к царице спросить, хорошо ли она почивала? И чрез несколько времени сам идет здороваться с нею в средней комнате, находящейся между его и ее покоями; отсюда идут они вместе в церковь к заутрени, продолжающейся около часу. Возвратясь из церкви, Царь садится в большой комнате, куда являются на поклон бояре, находящиеся в особенной милости. Около девяти часов Царь едет к обедне, которая продолжается два часа… После обеда и сна едет к вечерне… Каждую неделю Царь отправляется на богомолье в какой-нибудь из ближайших монастырей».</i><sup id="cite_ref-2" class="reference"><a href="#cite_note-2">[2]</a></sup></p>
+</blockquote>
+<p>Основатель династии <a href="/wiki/%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2%D1%8B" title="Романовы">Романовых</a>, <a href="/wiki/%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87" title="Михаил Фёдорович">Михаил Фёдорович</a> приходился двоюродным племянником Фёдору I (так как мать Фёдора, Анастасия Романовна, была родной сестрой деда Михаила, Никиты Романовича Захарьина); на этом родстве основывались права Романовых на престол.</p>
+<h2><span class="mw-headline" id=".D0.A1.D0.BC.D0.B5.D1.80.D1.82.D1.8C">Смерть</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=2" class="mw-editsection-visualeditor" title="Редактировать раздел «Смерть»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=2" title="Редактировать раздел «Смерть»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<p>Царь Фёдор Иоаннович скончался 7 января 1598 года. По свидетельству Патриарха Иова, в предсмертном томлении царь беседовал с кем-то незримым для других, именуя его великим Святителем, а в час кончины его, по преданию, ощущалось благоухание в палатах Кремлёвских. Сам Патриарх совершил таинство елеосвящения и причастил умирающего Царя Святых Христовых Таин. Феодор Иоаннович умер, не оставив потомства, и с его смертью прекратилась московская династия Рюриковичей на царском престоле в Москве. Погребен он был в Архангельском соборе Московского Кремля<sup id="cite_ref-:0_1-1" class="reference"><a href="#cite_note-:0-1">[1]</a></sup>.</p>
+<h2><span class="mw-headline" id=".D0.9E.D1.81.D0.BD.D0.BE.D0.B2.D0.BD.D1.8B.D0.B5_.D1.81.D0.BE.D0.B1.D1.8B.D1.82.D0.B8.D1.8F_.D0.B2.D0.BE_.D0.B2.D1.80.D0.B5.D0.BC.D1.8F_.D1.86.D0.B0.D1.80.D1.81.D1.82.D0.B2.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D0.A4.D1.91.D0.B4.D0.BE.D1.80.D0.B0_.D0.98.D0.BE.D0.B0.D0.BD.D0.BD.D0.BE.D0.B2.D0.B8.D1.87.D0.B0">Основные события во время царствования Фёдора Иоанновича</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=3" class="mw-editsection-visualeditor" title="Редактировать раздел «Основные события во время царствования Фёдора Иоанновича»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=3" title="Редактировать раздел «Основные события во время царствования Фёдора Иоанновича»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<div class="thumb tright">
+<div class="thumbinner" style="width:222px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Fedor_ioannovich01_reconstruction.jpg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/0/06/Fedor_ioannovich01_reconstruction.jpg/220px-Fedor_ioannovich01_reconstruction.jpg" width="220" height="307" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/0/06/Fedor_ioannovich01_reconstruction.jpg/330px-Fedor_ioannovich01_reconstruction.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/0/06/Fedor_ioannovich01_reconstruction.jpg/440px-Fedor_ioannovich01_reconstruction.jpg 2x" data-file-width="879" data-file-height="1225" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Fedor_ioannovich01_reconstruction.jpg" class="internal" title="Увеличить"></a></div>
+Реконструкция Герасимова</div>
+</div>
+</div>
+<ul>
+<li>1584&#160;— избран на царство Московским <a href="/wiki/%D0%97%D0%B5%D0%BC%D1%81%D0%BA%D0%B8%D0%B9_%D1%81%D0%BE%D0%B1%D0%BE%D1%80" title="Земский собор">Земским собором</a></li>
+<li>1586&#160;— отлита <a href="/wiki/%D0%A6%D0%B0%D1%80%D1%8C-%D0%BF%D1%83%D1%88%D0%BA%D0%B0" title="Царь-пушка">Царь-пушка</a>, основана <a href="/wiki/%D0%A1%D0%B0%D0%BC%D0%B0%D1%80%D0%B0" title="Самара">Самара</a></li>
+<li>1589&#160;— учреждение <a href="/wiki/%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9_%D0%BF%D0%B0%D1%82%D1%80%D0%B8%D0%B0%D1%80%D1%85%D0%B0%D1%82" title="Московский патриархат">Московского патриархата</a> с первым патриархом <a href="/wiki/%D0%98%D0%BE%D0%B2_(%D0%BF%D0%B0%D1%82%D1%80%D0%B8%D0%B0%D1%80%D1%85_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" title="Иов (патриарх Московский)">Иовом</a></li>
+<li>1589&#160;— основан <a href="/wiki/%D0%92%D0%BE%D0%BB%D0%B3%D0%BE%D0%B3%D1%80%D0%B0%D0%B4" title="Волгоград">Царицын</a></li>
+<li>1590&#160;— основан <a href="/wiki/%D0%A1%D0%B0%D1%80%D0%B0%D1%82%D0%BE%D0%B2" title="Саратов">Саратов</a></li>
+<li>1591 годы&#160;— завершено строительство <a href="/wiki/%D0%91%D0%B5%D0%BB%D1%8B%D0%B9_%D0%B3%D0%BE%D1%80%D0%BE%D0%B4" title="Белый город">Белого города</a> Москвы</li>
+<li>1595 год&#160;— окончание <a href="/wiki/%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%BE-%D1%88%D0%B2%D0%B5%D0%B4%D1%81%D0%BA%D0%B0%D1%8F_%D0%B2%D0%BE%D0%B9%D0%BD%D0%B0_(1590%E2%80%941595)" title="Русско-шведская война (1590—1595)">русско-шведской войны 1590—1595</a> годов, по результатам которой России возвращены города <a href="/wiki/%D0%9A%D0%B8%D0%BD%D0%B3%D0%B8%D1%81%D0%B5%D0%BF%D0%BF" title="Кингисепп">Ям</a>, <a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD%D0%B3%D0%BE%D1%80%D0%BE%D0%B4" title="Ивангород">Ивангород</a>, <a href="/wiki/%D0%9A%D0%BE%D0%BF%D0%BE%D1%80%D1%81%D0%BA%D0%B0%D1%8F_%D0%BA%D1%80%D0%B5%D0%BF%D0%BE%D1%81%D1%82%D1%8C" title="Копорская крепость">Копорье</a>, <a href="/wiki/%D0%9A%D0%BE%D1%80%D0%B5%D0%BB%D0%B0_(%D0%B3%D0%BE%D1%80%D0%BE%D0%B4)" class="mw-redirect" title="Корела (город)">Корела</a></li>
+</ul>
+<h2><span class="mw-headline" id=".D0.9F.D0.B8.D1.81.D1.8C.D0.BC.D0.B5.D0.BD.D0.BD.D1.8B.D0.B5_.D0.B8.D1.81.D1.82.D0.BE.D1.87.D0.BD.D0.B8.D0.BA.D0.B8_.D0.BE_.D0.A4.D1.91.D0.B4.D0.BE.D1.80.D0.B5_.D0.98.D0.BE.D0.B0.D0.BD.D0.BD.D0.BE.D0.B2.D0.B8.D1.87.D0.B5">Письменные источники о Фёдоре Иоанновиче</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=4" class="mw-editsection-visualeditor" title="Редактировать раздел «Письменные источники о Фёдоре Иоанновиче»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=4" title="Редактировать раздел «Письменные источники о Фёдоре Иоанновиче»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<div class="thumb tright">
+<div class="thumbinner" style="width:222px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Tsar_Cannon_01_by_shakko_(detail).jpg" class="image"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/0/02/Tsar_Cannon_01_by_shakko_%28detail%29.jpg/220px-Tsar_Cannon_01_by_shakko_%28detail%29.jpg" width="220" height="138" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/0/02/Tsar_Cannon_01_by_shakko_%28detail%29.jpg/330px-Tsar_Cannon_01_by_shakko_%28detail%29.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/0/02/Tsar_Cannon_01_by_shakko_%28detail%29.jpg/440px-Tsar_Cannon_01_by_shakko_%28detail%29.jpg 2x" data-file-width="4059" data-file-height="2545" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Tsar_Cannon_01_by_shakko_(detail).jpg" class="internal" title="Увеличить"></a></div>
+Изображение Федора Иоанновича, <a href="/wiki/%D0%A6%D0%B0%D1%80%D1%8C-%D0%BF%D1%83%D1%88%D0%BA%D0%B0" title="Царь-пушка">Царь-пушка</a></div>
+</div>
+</div>
+<p>По отзыву английского дипломата Джильса Флетчера<sup id="cite_ref-:1_3-0" class="reference"><a href="#cite_note-:1-3">[3]</a></sup>:</p>
+<blockquote style="float:none; padding:3px 15px 3px 15px; border:thin solid #e0e0e0;">
+<div>«Теперешний царь (по имени Феодор Иванович) относительно своей наружности: росту малого, приземист и толстоват, телосложения слабого и склонен к водяной; нос у него ястребиный, поступь нетвердая от некоторой расслабленности в членах; он тяжел и недеятелен, но всегда улыбается, так что почти смеется. Что касается до других свойств его, то он прост и слабоумен, но весьма любезен и хорош в обращении, тих, милостив, не имеет склонности к войне, мало способен к делам политическим и до крайности суеверен. Кроме того, что он молится дома, ходит он обыкновенно каждую неделю на богомолье в какой-нибудь из ближних монастырей».</div>
+</blockquote>
+<p>Голландский купец и торговый агент в Москве <a href="/wiki/%D0%9C%D0%B0%D1%81%D1%81%D0%B0,_%D0%98%D1%81%D0%B0%D0%B0%D0%BA" title="Масса, Исаак">Исаак Масса</a><sup id="cite_ref-:1_3-1" class="reference"><a href="#cite_note-:1-3">[3]</a></sup>:</p>
+<blockquote style="float:none; padding:3px 15px 3px 15px; border:thin solid #e0e0e0;">
+<div>
+<p>Очень добр, набожен и весьма кроток… Он был столь благочестив, что часто желал променять своё царство на монастырь, ежели бы только это было возможно.</p>
+</div>
+</blockquote>
+<p>Дьяк <a href="/wiki/%D0%A1%D0%B5%D0%BC%D1%91%D0%BD%D0%BE%D0%B2,_%D0%98%D0%B2%D0%B0%D0%BD_%D0%A2%D0%B8%D0%BC%D0%BE%D1%84%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Семёнов, Иван Тимофеевич">Иван Тимофеев</a> даёт Фёдору такую оценку<sup id="cite_ref-:1_3-2" class="reference"><a href="#cite_note-:1-3">[3]</a></sup>:</p>
+<blockquote style="float:none; padding:3px 15px 3px 15px; border:thin solid #e0e0e0;">
+<div>«Своими молитвами царь мой сохранил землю невредимой от вражеских козней. Он был по природе кроток, ко всем очень милостив и непорочен и, подобно Иову, на всех путях своих охранял себя от всякой злой вещи, более всего любя благочестие, церковное благолепие и, после священных иереев, монашеский чин и даже меньших во Христе братьев, ублажаемых в Евангелии самим Господом. Просто сказать&#160;— он всего себя предал Христу и все время своего святого и преподобного царствования; не любя крови, как инок, проводил в посте, в молитвах и мольбах с коленопреклонением&#160;— днем и ночью, всю жизнь изнуряя себя духовными подвигами… Монашество, соединенное с царством, не разделяясь, взаимно украшали друг друга; он рассуждал, что для будущей (жизни) одно имеет значение не меньше другого, [являясь] нераспрягаемой колесницей, возводящей к небесам. И то и другое было видимо только одним верным, которые были привязаны к нему любовью. Извне все легко могли видеть в нем царя, внутри же подвигами иночества он оказывался монахом; видом он был венценосцем, а своими стремлениями&#160;— монах».</div>
+</blockquote>
+<p>Исключительно важно свидетельство неофициального, иными словами, частного исторического памятника&#160;— «Пискарёвского летописца». О царе Фёдоре сказано столько доброго, сколько не досталось никому из русских правителей. Его называют <i>«благочестивым», «милостивым», «благоверным»,</i> на страницах летописи приводится длинный список его трудов на благо Церкви. Кончина его воспринимается как настоящая катастрофа, как предвестие худших бед России: <i>«Солнце померче и преста от течения своего, и луна не даст света своего, и звезды с небеси спадоша: за многи грехи християнския преставися последнее светило, собратель и облагодатель всея Руския земли государь царь и великий князь Федор Иванович…»</i> Обращаясь к прежнему царствованию, летописец вещает с необыкновенной нежностью: <i>«А царьствовал благоверный и христолюбивый царь и великий князь Феодор Иванович… тихо и праведно, и милостивно, безметежно. И все люди в покое и в любви, и в тишине, и во благоденстве пребыша в та лета. Ни в которые лета, ни при котором царе в Руской земли, кроме великого князя Ивана Даниловича Калиты, такие тишины и благоденства не бысть, что при нем, благоверном царе и великом князе Феодоре Ивановиче всеа Русии».</i><sup id="cite_ref-:1_3-3" class="reference"><a href="#cite_note-:1-3">[3]</a></sup> Современник и близкий ко двору Государя князь И.&#160;М.&#160;Катырев-Ростовский сказал о Государе так:</p>
+<blockquote>
+<p><i>«Благоюродив бысть от чрева матери своея и ни о чем попечения имея, токмо о душевном спасении». По его свидетельству, в Царе Феодоре «мнишество бысть с царствием сплетено без раздвоения и одно служило украшением другому».</i><sup id="cite_ref-:0_1-2" class="reference"><a href="#cite_note-:0-1">[1]</a></sup></p>
+</blockquote>
+<p>Известный историк <a href="/wiki/%D0%9A%D0%BB%D1%8E%D1%87%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9,_%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9E%D1%81%D0%B8%D0%BF%D0%BE%D0%B2%D0%B8%D1%87" title="Ключевский, Василий Осипович">В.&#160;О.&#160;Ключевский</a> так писал о святом Феодоре:</p>
+<blockquote>
+<p><i>«…блаженный на престоле, один из тех нищих духом, которым подобает Царство Небесное, а не земное, которых Церковь так любила заносить в свои святцы»</i><sup id="cite_ref-:0_1-3" class="reference"><a href="#cite_note-:0-1">[1]</a></sup></p>
+</blockquote>
+<p>В статье, посвященной прославлению в лике святых Патриархов <a href="/wiki/%D0%98%D0%BE%D0%B2_(%D0%9F%D0%B0%D1%82%D1%80%D0%B8%D0%B0%D1%80%D1%85_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" class="mw-redirect" title="Иов (Патриарх Московский)">Иова</a> и <a href="/wiki/%D0%A2%D0%B8%D1%85%D0%BE%D0%BD_(%D0%9F%D0%B0%D1%82%D1%80%D0%B8%D0%B0%D1%80%D1%85_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" class="mw-redirect" title="Тихон (Патриарх Московский)">Тихона</a>, архимандрит <a href="/wiki/%D0%A2%D0%B8%D1%85%D0%BE%D0%BD_(%D0%A8%D0%B5%D0%B2%D0%BA%D1%83%D0%BD%D0%BE%D0%B2)" title="Тихон (Шевкунов)">Тихон (Шевкунов)</a> отметил:</p>
+<blockquote>
+<p><i>«Царь Феодор Иоаннович был удивительный, светлый человек. Это был воистину святой на троне. Он постоянно пребывал в богомыслии и молитве, был добр ко всем, жизнью для него была церковная служба, и Господь не омрачил годы его царствования нестроениями и смутой. Они начались после его смерти. Редко какого царя так любил и жалел русский народ. Его почитали за блаженного и юродивого, называли „освятованным царем“. Недаром вскоре после кончины он был занесён в святцы местночтимых московских святых. Народ видел в нем мудрость, которая исходит от чистого сердца и которой так богаты „нищие духом“. Именно таким изобразил царя Федора в своей трагедии Алексей Константинович Толстой. Но для чужого взгляда этот государь был другим. Иностранные путешественники, соглядатаи и дипломаты (такие как Пирсон, Флетчер или швед Петрей де Эрлезунда), оставившие свои записки о России, в лучшем случае называют его „тихим идиотом“. А поляк Лев Сапега утверждал, что „напрасно говорят, что у этого государя мало рассудка, я убежден, что он вовсе лишен его“».</i><sup id="cite_ref-4" class="reference"><a href="#cite_note-4">[4]</a></sup></p>
+</blockquote>
+<h2><span class="mw-headline" id=".D0.9F.D1.80.D0.B5.D0.B4.D0.BA.D0.B8">Предки</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=5" class="mw-editsection-visualeditor" title="Редактировать раздел «Предки»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=5" title="Редактировать раздел «Предки»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<table class="wikitable mw-collapsible mw-collapsed" style="width:100%;">
+<tr>
+<th style="width:100%; text-align: center;">Фёдор Иванович — предки</th>
+</tr>
+<tr>
+<td>
+<center>
+<table cellspacing="0" cellpadding="0" border="0" style="font-size: 90%; line-height: 110%;">
+<tr align="center">
+<td rowspan="62" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="62">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="62">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #9fe;"><a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_II_%D0%A2%D1%91%D0%BC%D0%BD%D1%8B%D0%B9" title="Василий II Тёмный">Василий II Тёмный</a></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="2" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #bfc;"><a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_III" class="mw-redirect" title="Иван III">Иван III</a></td>
+<td rowspan="2" colspan="3">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="6" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-bottom: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #9fe;"><a href="/wiki/%D0%9C%D0%B0%D1%80%D0%B8%D1%8F_%D0%AF%D1%80%D0%BE%D1%81%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0" title="Мария Ярославна">Мария Боровская</a></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="2" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #ffc;"><a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_III" title="Василий III">Василий III</a></td>
+<td rowspan="2" colspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="14" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #9fe;"><a href="/wiki/%D0%A4%D0%BE%D0%BC%D0%B0_%D0%9F%D0%B0%D0%BB%D0%B5%D0%BE%D0%BB%D0%BE%D0%B3" title="Фома Палеолог">Фома Палеолог</a></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="2" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-bottom: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #bfc;"><a href="/wiki/%D0%A1%D0%BE%D1%84%D0%B8%D1%8F_%D0%9F%D0%B0%D0%BB%D0%B5%D0%BE%D0%BB%D0%BE%D0%B3" title="София Палеолог">София Палеолог</a></td>
+<td rowspan="2" colspan="3">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="6" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-bottom: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #9fe;"><a href="/w/index.php?title=%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0_%D0%97%D0%B0%D0%BA%D0%BA%D0%B0%D1%80%D0%B8%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Екатерина Заккариа (страница отсутствует)">Екатерина Заккариа</a></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="2" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #fb9;"><a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_%D0%93%D1%80%D0%BE%D0%B7%D0%BD%D1%8B%D0%B9" title="Иван Грозный">Иван Грозный</a></td>
+<td rowspan="2" colspan="9">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="30" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #9fe;">Лев Борисович Глинский</td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #bfc;"><a href="/w/index.php?title=%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87_%D0%93%D0%BB%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Василий Иванович Глинский (страница отсутствует)">Глинский, Василий Иванович</a></td>
+<td rowspan="2" colspan="3">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="6" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-bottom: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #ffc;"><a href="/wiki/%D0%95%D0%BB%D0%B5%D0%BD%D0%B0_%D0%93%D0%BB%D0%B8%D0%BD%D1%81%D0%BA%D0%B0%D1%8F" class="mw-redirect" title="Елена Глинская">Елена Глинская</a></td>
+<td rowspan="2" colspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="14" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #9fe;">Стефан Якшич</td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="2" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-bottom: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #bfc;">Анна Якшич</td>
+<td rowspan="2" colspan="3">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="6" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-bottom: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #9fe;">Милица Бельмушевич</td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="2" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #fcc;"><b>Фёдор Иоаннович</b></td>
+<td rowspan="2" colspan="12">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="62" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="62">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="62">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #9fe;"><a href="/wiki/%D0%97%D0%B0%D1%85%D0%B0%D1%80%D0%B8%D0%B9_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87_%D0%9A%D0%BE%D1%88%D0%BA%D0%B8%D0%BD" class="mw-redirect" title="Захарий Иванович Кошкин">Захарий Иванович Кошкин</a></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="2" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #bfc;"><a href="/wiki/%D0%AE%D1%80%D0%B8%D0%B9_%D0%97%D0%B0%D1%85%D0%B0%D1%80%D1%8C%D0%B5%D0%B2%D0%B8%D1%87_%D0%9A%D0%BE%D1%88%D0%BA%D0%B8%D0%BD-%D0%97%D0%B0%D1%85%D0%B0%D1%80%D1%8C%D0%B8%D0%BD" class="mw-redirect" title="Юрий Захарьевич Кошкин-Захарьин">Юрий Захарьевич Кошкин</a></td>
+<td rowspan="2" colspan="3">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="6" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #ffc;"><a href="/wiki/%D0%97%D0%B0%D1%85%D0%B0%D1%80%D1%8C%D0%B8%D0%BD,_%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD_%D0%AE%D1%80%D1%8C%D0%B5%D0%B2%D0%B8%D1%87" class="mw-redirect" title="Захарьин, Роман Юрьевич">Роман Юрьевич Захарьин-Юрьев</a></td>
+<td rowspan="2" colspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="14" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #9fe;"><a href="/w/index.php?title=%D0%A2%D1%83%D1%87%D0%BA%D0%BE-%D0%9C%D0%BE%D1%80%D0%BE%D0%B7%D0%BE%D0%B2,_%D0%98%D0%B2%D0%B0%D0%BD_%D0%91%D0%BE%D1%80%D0%B8%D1%81%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;redlink=1" class="new" title="Тучко-Морозов, Иван Борисович (страница отсутствует)">Иван Борисович Тучко-Морозов</a></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-top: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="2" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-bottom: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #bfc;"><a href="/w/index.php?title=%D0%A2%D1%83%D1%87%D0%BA%D0%BE%D0%B2%D0%B0,_%D0%98%D1%80%D0%B8%D0%BD%D0%B0_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Тучкова, Ирина Ивановна (страница отсутствует)">Ирина Ивановна Тучкова</a></td>
+<td rowspan="2" colspan="3">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="6" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-bottom: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #fb9;"><a href="/wiki/%D0%90%D0%BD%D0%B0%D1%81%D1%82%D0%B0%D1%81%D0%B8%D1%8F_%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0_%D0%97%D0%B0%D1%85%D0%B0%D1%80%D1%8C%D0%B8%D0%BD%D0%B0-%D0%AE%D1%80%D1%8C%D0%B5%D0%B2%D0%B0" class="mw-redirect" title="Анастасия Романовна Захарьина-Юрьева">Анастасия Романовна Захарьина-Юрьева</a></td>
+<td rowspan="2" colspan="9">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="30" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="30">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14" style="border-left: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td style="border-left: 1px solid black; border-bottom: 1px solid black;">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="2" colspan="4" style="border:1px solid black;padding:0 0.2em;padding-top: 0; padding-bottom: 0;;background-color: #ffc;"><a href="/wiki/%D0%97%D0%B0%D1%85%D0%B0%D1%80%D1%8C%D0%B8%D0%BD%D0%B0,_%D0%A3%D0%BB%D1%8C%D1%8F%D0%BD%D0%B0_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%BD%D0%B0" title="Захарьина, Ульяна Фёдоровна">Ульяна Фёдоровна</a></td>
+<td rowspan="2" colspan="6">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td>
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td rowspan="14" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14}">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14}">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14}">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14}" style="">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14}">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14}">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14}">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+<td rowspan="14}">
+<div style="width: 0.5em; height: 0.5em;"><span style="font: 1px/1px serif;">&#160;</span></div>
+</td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+<tr align="center">
+<td></td>
+</tr>
+</table>
+</center>
+</td>
+</tr>
+</table>
+<h2><span class="mw-headline" id=".D0.9F.D0.B0.D0.BC.D1.8F.D1.82.D1.8C">Память</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=6" class="mw-editsection-visualeditor" title="Редактировать раздел «Память»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=6" title="Редактировать раздел «Память»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<h3><span class="mw-headline" id=".D0.92_.D0.9F.D1.80.D0.B0.D0.B2.D0.BE.D1.81.D0.BB.D0.B0.D0.B2.D0.BD.D0.BE.D0.B9_.D0.A6.D0.B5.D1.80.D0.BA.D0.B2.D0.B8">В Православной Церкви</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=7" class="mw-editsection-visualeditor" title="Редактировать раздел «В Православной Церкви»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=7" title="Редактировать раздел «В Православной Церкви»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h3>
+<p>Почитание блаженного Царя началось вскоре после его кончины: святой <a href="/wiki/%D0%98%D0%BE%D0%B2_(%D0%9F%D0%B0%D1%82%D1%80%D0%B8%D0%B0%D1%80%D1%85_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" class="mw-redirect" title="Иов (Патриарх Московский)">Патриарх Иов</a> (†1607) составил «Повесть о честном житии царя Федора Иоанновича», уже с начала XVII века известны иконные изображения святого Феодора в нимбе. В «Книге глаголемой описание о Российских святых» (1-я половина XVII века) Царь Феодор поставлен в лике Московских чудотворцев. В некоторых рукописных святцах в числе Московских святых указана и его супруга, царица <a href="/wiki/%D0%93%D0%BE%D0%B4%D1%83%D0%BD%D0%BE%D0%B2%D0%B0,_%D0%98%D1%80%D0%B8%D0%BD%D0%B0_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%BD%D0%B0" title="Годунова, Ирина Фёдоровна">Ирина</a>, во иночестве Александра (†1603). Память святого Феодора совершается в день его преставления 7 (20) января и в Неделю перед 26 августа (8 сентября) в <a href="/wiki/%D0%A1%D0%BE%D0%B1%D0%BE%D1%80_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D1%85_%D1%81%D0%B2%D1%8F%D1%82%D1%8B%D1%85" title="Собор Московских святых">Соборе Московских святых</a><sup id="cite_ref-:0_1-4" class="reference"><a href="#cite_note-:0-1">[1]</a></sup>.</p>
+<h3><span class="mw-headline" id=".D0.A1.D0.BA.D1.83.D0.BB.D1.8C.D0.BF.D1.82.D1.83.D1.80.D0.B0">Скульптура</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=8" class="mw-editsection-visualeditor" title="Редактировать раздел «Скульптура»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=8" title="Редактировать раздел «Скульптура»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h3>
+<p><a href="/wiki/4_%D0%BD%D0%BE%D1%8F%D0%B1%D1%80%D1%8F" title="4 ноября">4 ноября</a> <a href="/wiki/2009_%D0%B3%D0%BE%D0%B4" title="2009 год">2009 года</a> в <a href="/wiki/%D0%99%D0%BE%D1%88%D0%BA%D0%B0%D1%80-%D0%9E%D0%BB%D0%B0" title="Йошкар-Ола">Йошкар-Оле</a> был открыт <a href="/wiki/%D0%9F%D0%B0%D0%BC%D1%8F%D1%82%D0%BD%D0%B8%D0%BA_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D1%83_I_%D0%98%D0%BE%D0%B0%D0%BD%D0%BD%D0%BE%D0%B2%D0%B8%D1%87%D1%83" title="Памятник Фёдору I Иоанновичу">памятник царю Фёдору I Иоанновичу</a>, в период царствования которого был основан город (скульптор&#160;— народный художник РФ <a href="/wiki/%D0%9A%D0%BE%D0%B2%D0%B0%D0%BB%D1%8C%D1%87%D1%83%D0%BA,_%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B5%D0%B2%D0%B8%D1%87" title="Ковальчук, Андрей Николаевич">Андрей Ковальчук</a>).</p>
+<h3><span class="mw-headline" id=".D0.97.D0.B0.D1.85.D0.BE.D1.80.D0.BE.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5">Захоронение</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=9" class="mw-editsection-visualeditor" title="Редактировать раздел «Захоронение»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=9" title="Редактировать раздел «Захоронение»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h3>
+<div class="thumb tleft">
+<div class="thumbinner" style="width:102px;"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Ivan_IV%27s_grave.jpg" class="image"><img alt="Ivan IV's grave.jpg" src="//upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Ivan_IV%27s_grave.jpg/100px-Ivan_IV%27s_grave.jpg" width="100" height="112" class="thumbimage" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Ivan_IV%27s_grave.jpg/150px-Ivan_IV%27s_grave.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Ivan_IV%27s_grave.jpg/200px-Ivan_IV%27s_grave.jpg 2x" data-file-width="450" data-file-height="504" /></a>
+<div class="thumbcaption">
+<div class="magnify"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Ivan_IV%27s_grave.jpg" class="internal" title="Увеличить"></a></div>
+</div>
+</div>
+</div>
+<p>Похоронен в Архангельском соборе вместе со своим отцом и братом Иваном, в правой части алтаря, за иконостасом собора.</p>
+<p>Иван Грозный «ещё при жизни приготовил себе место погребения в диаконнике Архангельского собора, превратив его в придельную церковь-капеллу. В ней впоследствии нашли упокоение сам царь и два его сына Иван Иванович и <strong class="selflink">Фёдор Иванович</strong>. Фрески усыпальницы&#160;— то немногое, что сохранилось от первоначальной живописи XVI&#160;в. Здесь в нижнем ярусе представлены композиции „Прощание князя с семьей“, „Аллегория Внезапной смерти“, „Отпевание“ и „Погребение“, составляющие единый цикл. Он был призван напоминать самодержцу о нелицемерном суде, о тщете мирской суеты, о непрестанном памятовании смерти, не разбирающей „есть ли нищ, или праведен, или господин, или раб“»<sup id="cite_ref-5" class="reference"><a href="#cite_note-5">[5]</a></sup>.</p>
+<h2><span class="mw-headline" id=".D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.87.D0.B0.D0.BD.D0.B8.D1.8F">Примечания</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=10" class="mw-editsection-visualeditor" title="Редактировать раздел «Примечания»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=10" title="Редактировать раздел «Примечания»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<div class="references-small" style="">
+<ol class="references">
+<li id="cite_note-:0-1"><span class="mw-cite-backlink">↑ <a href="#cite_ref-:0_1-0"><sup><i><b>1</b></i></sup></a> <a href="#cite_ref-:0_1-1"><sup><i><b>2</b></i></sup></a> <a href="#cite_ref-:0_1-2"><sup><i><b>3</b></i></sup></a> <a href="#cite_ref-:0_1-3"><sup><i><b>4</b></i></sup></a> <a href="#cite_ref-:0_1-4"><sup><i><b>5</b></i></sup></a></span> <span class="reference-text"><span class="citation"><a rel="nofollow" class="external text" href="http://www.eparhia-saratov.ru/Articles/article_old_2954">Святой благоверный Феодор I Иоаннович, царь Московский, память 7 (20) января</a>.</span></span></li>
+<li id="cite_note-2"><b><a href="#cite_ref-2">↑</a></b> <span class="reference-text"><span class="citation"><i>Соловьёв С. М..</i> <a rel="nofollow" class="external text" href="http://www.magister.msk.ru/library/history/solov/solv07p2.htm"></a><a href="/wiki/%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8F_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8_%D1%81_%D0%B4%D1%80%D0%B5%D0%B2%D0%BD%D0%B5%D0%B9%D1%88%D0%B8%D1%85_%D0%B2%D1%80%D0%B5%D0%BC%D1%91%D0%BD" title="История России с древнейших времён">История России с древнейших времён</a>.&#160;— Спб.: товарищество «Общественная польза», 1851—1879.&#160;— Т.&#160;7.</span></span></li>
+<li id="cite_note-:1-3"><span class="mw-cite-backlink">↑ <a href="#cite_ref-:1_3-0"><sup><i><b>1</b></i></sup></a> <a href="#cite_ref-:1_3-1"><sup><i><b>2</b></i></sup></a> <a href="#cite_ref-:1_3-2"><sup><i><b>3</b></i></sup></a> <a href="#cite_ref-:1_3-3"><sup><i><b>4</b></i></sup></a></span> <span class="reference-text"><span class="citation"><i>Дмитрий Володихин.</i> [<a rel="nofollow" class="external free" href="http://foma.ru/czar-fedor-ioannovich.html">http://foma.ru/czar-fedor-ioannovich.html</a> ЦАРЬ ФЕДОР ИОАННОВИЧ Когда на троне блаженный]. Журнал "Фома" (Сентябрь, 21 2009 08:11).</span></span></li>
+<li id="cite_note-4"><b><a href="#cite_ref-4">↑</a></b> <span class="reference-text"><span class="citation"><i>Архимандрит Тихон (Шевкунов).</i> <a rel="nofollow" class="external text" href="http://georgievka.cerkov.ru/2015/04/17/arximandrit-tixon-shevkunov-patriarxi-smutnyx-vremyon/">Патриархи смутных времён</a>.</span></span></li>
+<li id="cite_note-5"><b><a href="#cite_ref-5">↑</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.kreml.ru/ru/museums/archangel/burial-vault/Ivan_Grozniy/">Захоронения Ивана Грозного и его сыновей</a></span></li>
+</ol>
+</div>
+<h2><span class="mw-headline" id=".D0.9B.D0.B8.D1.82.D0.B5.D1.80.D0.B0.D1.82.D1.83.D1.80.D0.B0">Литература</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit&amp;section=11" class="mw-editsection-visualeditor" title="Редактировать раздел «Литература»">править</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;section=11" title="Редактировать раздел «Литература»">править вики-текст</a><span class="mw-editsection-bracket">]</span></span></h2>
+<table class="metadata plainlinks navigation-box ruwikiWikimediaNavigation" style="margin:0 0 1em 1em; clear:right; border:solid #aaa 1px; background:#f9f9f9; padding:1ex; font-size:90%; float:right;">
+<tr>
+<th><a href="https://ru.wikisource.org/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_I_%D0%98%D0%BE%D0%B0%D0%BD%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="s:Фёдор I Иоаннович"><img alt="s:" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/20px-Wikisource-logo.svg.png" width="20" height="21" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/30px-Wikisource-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/4c/Wikisource-logo.svg/40px-Wikisource-logo.svg.png 2x" data-file-width="410" data-file-height="430" /></a></th>
+<td><span class="wikisource-ref"><a href="https://ru.wikisource.org/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_I_%D0%98%D0%BE%D0%B0%D0%BD%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" class="extiw" title="s:Фёдор I Иоаннович">Фёдор I Иоаннович</a></span> в Викитеке</td>
+</tr>
+<tr>
+<th><a href="https://commons.wikimedia.org/wiki/Category:Feodor_I_of_Russia" title="commons:Category:Feodor I of Russia"><img alt="commons:" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/20px-Commons-logo.svg.png" width="20" height="27" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/40px-Commons-logo.svg.png 2x" data-file-width="1024" data-file-height="1376" /></a></th>
+<td><span class="wikicommons-ref"><a class="external text" href="https://commons.wikimedia.org/wiki/Category:Feodor_I_of_Russia?uselang=ru">Фёдор Иванович</a></span> на Викискладе</td>
+</tr>
+</table>
+<ul>
+<li><span class="citation"><i>Зимин А. А.</i> <a rel="nofollow" class="external text" href="http://annales.info/rus/zimin/zimin.htm#6">В канун грозных потрясений</a>.&#160;— <span style="border-bottom:1px dotted gray; cursor:default" title="Москва">М</span>., 1986.</span></li>
+<li><span class="citation"><i>Павлов А. П.</i> Государев двор и политическая борьба при Борисе Годунове (1584—1605).&#160;— <span style="border-bottom:1px dotted gray; cursor:default;" title="Санкт-Петербург">СПб.</span>, 1992.</span></li>
+<li><span class="citation"><i>Морозова Л. Е.</i> Два царя: Федор и Борис.&#160;— <span style="border-bottom:1px dotted gray; cursor:default" title="Москва">М</span>., 2001.</span></li>
+<li><span class="citation"><i>Володихин Д.</i> Царь Федор Иванович.&#160;— <span style="border-bottom:1px dotted gray; cursor:default" title="Москва">М</span>., 2011.</span></li>
+</ul>
+<table class="navbox" style="border-spacing:0">
+<tr>
+<td style="padding:2px">
+<table class="nowraplinks collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit">
+<tr>
+<th scope="col" class="navbox-title" colspan="2" style="background:#A3EEA3;"><span class="nomobile" style="float:left;text-align:left;width:5em;margin-right:0.5em"><a href="/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B5_%D1%86%D0%B0%D1%80%D0%B8" title="Просмотр этого шаблона"><img alt="⛭" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/14px-Wikipedia_interwiki_section_gear_icon.svg.png" width="14" height="14" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/21px-Wikipedia_interwiki_section_gear_icon.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/28px-Wikipedia_interwiki_section_gear_icon.svg.png 2x" data-file-width="14" data-file-height="14" /></a></span>
+<div style="font-size:114%"><a href="/wiki/%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%BE%D0%B5_%D1%86%D0%B0%D1%80%D1%81%D1%82%D0%B2%D0%BE" title="Русское царство">Русские цари</a></div>
+</th>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<td colspan="2" class="navbox-list navbox-odd hlist hlist-items-nowrap" style="width:100%;padding:0px;text-align: center;">
+<div style="padding:0em 0.25em">
+<div class="NavContent">
+<p><span class="nowrap"><a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_%D0%93%D1%80%D0%BE%D0%B7%D0%BD%D1%8B%D0%B9" title="Иван Грозный">Иван IV</a> —</span> <span class="nowrap"><i><a href="/wiki/%D0%A1%D0%B8%D0%BC%D0%B5%D0%BE%D0%BD_%D0%91%D0%B5%D0%BA%D0%B1%D1%83%D0%BB%D0%B0%D1%82%D0%BE%D0%B2%D0%B8%D1%87" title="Симеон Бекбулатович">Симеон Бекбулатович</a></i> —</span> <span class="nowrap"><a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_I_%D0%98%D0%BE%D0%B0%D0%BD%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" class="mw-redirect" title="Фёдор I Иоаннович">Фёдор I</a> —</span> <span class="nowrap"><a href="/wiki/%D0%93%D0%BE%D0%B4%D1%83%D0%BD%D0%BE%D0%B2%D0%B0,_%D0%98%D1%80%D0%B8%D0%BD%D0%B0_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%BD%D0%B0" title="Годунова, Ирина Фёдоровна">Ирина Годунова</a> —</span> <span class="nowrap"><a href="/wiki/%D0%91%D0%BE%D1%80%D0%B8%D1%81_%D0%93%D0%BE%D0%B4%D1%83%D0%BD%D0%BE%D0%B2" title="Борис Годунов">Борис Годунов</a> —</span> <span class="nowrap"><a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_II_%D0%93%D0%BE%D0%B4%D1%83%D0%BD%D0%BE%D0%B2" title="Фёдор II Годунов">Фёдор II Годунов</a> —</span> <span class="nowrap"><a href="/wiki/%D0%9B%D0%B6%D0%B5%D0%B4%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_I" title="Лжедмитрий I">Лжедмитрий I</a> —</span> <span class="nowrap"><a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_IV_%D0%A8%D1%83%D0%B9%D1%81%D0%BA%D0%B8%D0%B9" title="Василий IV Шуйский">Василий IV Шуйский</a> —</span> <span class="nowrap"><i><a href="/wiki/%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D1%81%D0%BB%D0%B0%D0%B2_IV" title="Владислав IV">Владислав</a></i> —</span> <span class="nowrap"><a href="/wiki/%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87" title="Михаил Фёдорович">Михаил Фёдорович</a> —</span> <span class="nowrap"><a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B9_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87" title="Алексей Михайлович">Алексей Михайлович</a> —</span> <span class="nowrap"><a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_III_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%B8%D1%87" title="Фёдор III Алексеевич">Фёдор III</a> —</span> <span class="nowrap"><a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_V" title="Иван V">Иван V</a> —</span> <span class="nowrap"><a href="/wiki/%D0%9F%D1%91%D1%82%D1%80_I" title="Пётр I">Пётр I</a></span></p>
+</div>
+</div>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table class="navbox" style="border-spacing:0">
+<tr>
+<td style="padding:2px">
+<table class="nowraplinks collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit">
+<tr>
+<th scope="col" class="navbox-title" colspan="4"><span class="nomobile" style="float:left;text-align:left;width:5em;margin-right:0.5em"><a href="/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%94%D0%B5%D1%82%D0%B8_%D0%98%D0%B2%D0%B0%D0%BD%D0%B0_%D0%93%D1%80%D0%BE%D0%B7%D0%BD%D0%BE%D0%B3%D0%BE" title="Просмотр этого шаблона"><img alt="⛭" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/14px-Wikipedia_interwiki_section_gear_icon.svg.png" width="14" height="14" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/21px-Wikipedia_interwiki_section_gear_icon.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/28px-Wikipedia_interwiki_section_gear_icon.svg.png 2x" data-file-width="14" data-file-height="14" /></a></span>
+<div style="font-size:114%"><small><a href="/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D1%85_%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%B8%D1%87%D0%B5%D0%B9" title="Список русских царевичей">Царевичи</a> и <a href="/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D1%85_%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%B5%D0%BD" title="Список русских царевен">царевны</a>:</small> <b><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%98%D0%B2%D0%B0%D0%BD%D0%B0_IV" title="Дети Ивана IV">Дети</a> <i><a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_%D0%93%D1%80%D0%BE%D0%B7%D0%BD%D1%8B%D0%B9" title="Иван Грозный">Ивана Грозного</a></i></b> <small>→ <a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB%D0%B0_%D0%A4%D1%91%D0%B4%D0%BE%D1%80%D0%BE%D0%B2%D0%B8%D1%87%D0%B0" title="Дети Михаила Фёдоровича">Михаила</a></small> → <small><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D1%8F_%D0%9C%D0%B8%D1%85%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87%D0%B0" title="Дети Алексея Михайловича">Алексея</a></small> → <small><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%98%D0%B2%D0%B0%D0%BD%D0%B0_V" title="Дети Ивана V">Ивана V</a></small> → <small><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%9F%D0%B5%D1%82%D1%80%D0%B0_I" title="Дети Петра I">Петра I</a></small></div>
+</th>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<td class="navbox-image" rowspan="1" style="width:1%;padding:0px 7px 0px 0px">
+<div><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Kremlinpic4.jpg" class="image"><img alt="Kremlinpic4.jpg" src="//upload.wikimedia.org/wikipedia/commons/thumb/6/62/Kremlinpic4.jpg/53px-Kremlinpic4.jpg" width="53" height="66" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/62/Kremlinpic4.jpg/80px-Kremlinpic4.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/62/Kremlinpic4.jpg/106px-Kremlinpic4.jpg 2x" data-file-width="530" data-file-height="655" /></a></div>
+</td>
+<td colspan="2" class="navbox-list navbox-odd hlist hlist-items-nowrap" style="width:100%;padding:0px;text-align: center;">
+<div style="padding:0em 0.25em">
+<div class="NavContent">
+<p><br />
+<a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Caravaca3.png" class="image"><img alt="Caravaca3.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/10px-Caravaca3.png" width="10" height="19" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/15px-Caravaca3.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/20px-Caravaca3.png 2x" data-file-width="49" data-file-height="92" /></a> <a href="/wiki/%D0%90%D0%BD%D0%BD%D0%B0_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0_(%D0%B4%D0%BE%D1%87%D1%8C_%D0%98%D0%B2%D0%B0%D0%BD%D0%B0_%D0%93%D1%80%D0%BE%D0%B7%D0%BD%D0%BE%D0%B3%D0%BE)" title="Анна Ивановна (дочь Ивана Грозного)">Анна</a> • <a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Caravaca3.png" class="image"><img alt="Caravaca3.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/10px-Caravaca3.png" width="10" height="19" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/15px-Caravaca3.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/20px-Caravaca3.png 2x" data-file-width="49" data-file-height="92" /></a> <i><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%98%D0%B2%D0%B0%D0%BD%D0%B0_IV#.D0.9C.D0.B0.D1.80.D0.B8.D1.8F" title="Дети Ивана IV">Мария</a></i> • <a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Caravaca3.png" class="image"><img alt="Caravaca3.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/10px-Caravaca3.png" width="10" height="19" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/15px-Caravaca3.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/20px-Caravaca3.png 2x" data-file-width="49" data-file-height="92" /></a> <a href="/wiki/%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87_(%D1%81%D1%82%D0%B0%D1%80%D1%88%D0%B8%D0%B9_%D1%81%D1%8B%D0%BD_%D0%98%D0%B2%D0%B0%D0%BD%D0%B0_IV)" title="Дмитрий Иванович (старший сын Ивана IV)">Дмитрий (Старший)</a> • <a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87_(%D1%86%D0%B0%D1%80%D0%B5%D0%B2%D0%B8%D1%87)" title="Иван Иванович (царевич)">Иван</a><br />
+<a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Caravaca3.png" class="image"><img alt="Caravaca3.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/10px-Caravaca3.png" width="10" height="19" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/15px-Caravaca3.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/20px-Caravaca3.png 2x" data-file-width="49" data-file-height="92" /></a> <i><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%98%D0%B2%D0%B0%D0%BD%D0%B0_IV#.D0.95.D0.B2.D0.B4.D0.BE.D0.BA.D0.B8.D1.8F" title="Дети Ивана IV">Евдокия</a></i> • <a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:H%C3%A9raldique_meuble_couronne.svg" class="image" title="Корона"><img alt="Корона" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/ce/H%C3%A9raldique_meuble_couronne.svg/22px-H%C3%A9raldique_meuble_couronne.svg.png" width="22" height="12" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/ce/H%C3%A9raldique_meuble_couronne.svg/33px-H%C3%A9raldique_meuble_couronne.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/ce/H%C3%A9raldique_meuble_couronne.svg/44px-H%C3%A9raldique_meuble_couronne.svg.png 2x" data-file-width="153" data-file-height="81" /></a> <a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_I_%D0%98%D0%BE%D0%B0%D0%BD%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" class="mw-redirect" title="Фёдор I Иоаннович">Фёдор</a> • <a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Caravaca3.png" class="image"><img alt="Caravaca3.png" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/10px-Caravaca3.png" width="10" height="19" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/15px-Caravaca3.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/39/Caravaca3.png/20px-Caravaca3.png 2x" data-file-width="49" data-file-height="92" /></a><i><a href="/wiki/%D0%94%D0%B5%D1%82%D0%B8_%D0%98%D0%B2%D0%B0%D0%BD%D0%B0_IV#.D0.92.D0.B0.D1.81.D0.B8.D0.BB.D0.B8.D0.B9" title="Дети Ивана IV">Василий</a></i> • <a href="/wiki/%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%A3%D0%B3%D0%BB%D0%B8%D1%86%D0%BA%D0%B8%D0%B9" title="Дмитрий Углицкий">Дмитрий Углицкий</a></p>
+</div>
+</div>
+</td>
+<td class="navbox-image" rowspan="1" style="width:1%;padding:0px 0px 0px 7px">
+<div><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Feodor_I_of_Russia_(parsuna,_1630s,_Moscow_History_museum).jpg" class="image"><img alt="Feodor I of Russia (parsuna, 1630s, Moscow History museum).jpg" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/44/Feodor_I_of_Russia_%28parsuna%2C_1630s%2C_Moscow_History_museum%29.jpg/53px-Feodor_I_of_Russia_%28parsuna%2C_1630s%2C_Moscow_History_museum%29.jpg" width="53" height="70" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/44/Feodor_I_of_Russia_%28parsuna%2C_1630s%2C_Moscow_History_museum%29.jpg/80px-Feodor_I_of_Russia_%28parsuna%2C_1630s%2C_Moscow_History_museum%29.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/44/Feodor_I_of_Russia_%28parsuna%2C_1630s%2C_Moscow_History_museum%29.jpg/106px-Feodor_I_of_Russia_%28parsuna%2C_1630s%2C_Moscow_History_museum%29.jpg 2x" data-file-width="727" data-file-height="960" /></a></div>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table class="navbox" style="border-spacing:0">
+<tr>
+<td style="padding:2px">
+<table class="nowraplinks hlist navbox-inner" style="border-spacing:0;background:transparent;color:inherit">
+<tr>
+<th scope="row" class="navbox-group" style="background: #CCF;">
+<div style="padding: 0px 18px 0px 0px; width: 100%;">
+<div style="float: left; margin-left: -0.25em;"><span class="noprint plainlinksneverexpand nowrap" style="font-size:x-small;">&#160;<a href="/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%92%D0%BD%D0%B5%D1%88%D0%BD%D0%B8%D0%B5_%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8" title="Просмотр этого шаблона"><img alt="⚙️" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/14px-Wikipedia_interwiki_section_gear_icon.svg.png" width="14" height="14" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/21px-Wikipedia_interwiki_section_gear_icon.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/28px-Wikipedia_interwiki_section_gear_icon.svg.png 2x" data-file-width="14" data-file-height="14" /></a>&#160;</span></div>
+&#160;&#160;Словари и энциклопедии</div>
+</th>
+<td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+<div style="padding:0em 0.25em"><a href="https://ru.wikisource.org/wiki/%D0%AD%D0%A1%D0%91%D0%95/%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80_%D0%98%D0%BE%D0%B0%D0%BD%D0%BD%D0%BE%D0%B2%D0%B8%D1%87,_%D1%86%D0%B0%D1%80%D1%8C_%D0%BC%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9" class="extiw" title="s:ЭСБЕ/Феодор Иоаннович, царь московский">Брокгауза и Ефрона</a> · <a href="https://ru.wikisource.org/wiki/%D0%9C%D0%AD%D0%A1%D0%91%D0%95/%D0%A4%D0%B5%D0%B4%D0%BE%D1%80_%D0%B8%D0%BB%D0%B8_%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80_(%D0%BC%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B5_%D1%86%D0%B0%D1%80%D0%B8)" class="extiw" title="s:МЭСБЕ/Федор или Феодор (московские цари)">Малый Брокгауза и Ефрона</a> · <a href="https://ru.wikisource.org/wiki/%D0%A0%D0%91%D0%A1/%D0%92%D0%A2/%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80_%D0%98%D0%BE%D0%B0%D0%BD%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" class="extiw" title="s:РБС/ВТ/Феодор Иоаннович">Русский биографический</a></div>
+</td>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background: #CCF;"><a href="/wiki/%D0%9D%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8C" title="Нормативный контроль">Нормативный контроль</a></th>
+<td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+<div style="padding:0em 0.25em"><a href="/wiki/Gemeinsame_Normdatei" title="Gemeinsame Normdatei">GND</a>:&#160;<a rel="nofollow" class="external text" href="http://d-nb.info/gnd/119455935">119455935</a> · <a href="/wiki/%D0%9C%D0%B5%D0%B6%D0%B4%D1%83%D0%BD%D0%B0%D1%80%D0%BE%D0%B4%D0%BD%D1%8B%D0%B9_%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80_%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D1%8B%D1%85_%D0%BD%D0%B0%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B9" title="Международный идентификатор стандартных наименований">ISNI</a>:&#160;<a rel="nofollow" class="external text" href="http://isni-url.oclc.nl/isni/0000000061287595">0000 0000 6128 7595</a> · <a href="/wiki/%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80_%D0%91%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8_%D0%9A%D0%BE%D0%BD%D0%B3%D1%80%D0%B5%D1%81%D1%81%D0%B0" title="Контрольный номер Библиотеки Конгресса">LCCN</a>:&#160;<a rel="nofollow" class="external text" href="http://id.loc.gov/authorities/n80158671">n80158671</a> · <a href="/wiki/%D0%9A%D0%BE%D1%80%D0%BE%D0%BB%D0%B5%D0%B2%D1%81%D0%BA%D0%B0%D1%8F_%D0%BD%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_%D0%9D%D0%B8%D0%B4%D0%B5%D1%80%D0%BB%D0%B0%D0%BD%D0%B4%D0%BE%D0%B2" title="Королевская национальная библиотека Нидерландов">NTA</a>:&#160;<a rel="nofollow" class="external text" href="http://opc4.kb.nl/PPN?PPN=242972756">242972756</a> · <a href="/wiki/VIAF" title="VIAF">VIAF</a>:&#160;<a rel="nofollow" class="external text" href="http://viaf.org/viaf/52499500">52499500</a></div>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+<table class="navbox" style="border-spacing:0">
+<tr>
+<td style="padding:2px">
+<table class="nowraplinks collapsible collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit">
+<tr>
+<th scope="col" class="navbox-title" colspan="3" style="background:#EDECD8;"><span class="nomobile" style="float:left;text-align:left;width:5em;margin-right:0.5em"><a href="/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%A1%D0%BE%D0%B1%D0%BE%D1%80_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D1%85_%D1%81%D0%B2%D1%8F%D1%82%D1%8B%D1%85" title="Просмотр этого шаблона"><img alt="⛭" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/14px-Wikipedia_interwiki_section_gear_icon.svg.png" width="14" height="14" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/21px-Wikipedia_interwiki_section_gear_icon.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/c9/Wikipedia_interwiki_section_gear_icon.svg/28px-Wikipedia_interwiki_section_gear_icon.svg.png 2x" data-file-width="14" data-file-height="14" /></a></span>
+<div style="font-size:114%"><a href="/wiki/%D0%A1%D0%BE%D0%B1%D0%BE%D1%80_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D1%85_%D1%81%D0%B2%D1%8F%D1%82%D1%8B%D1%85" title="Собор Московских святых">Собор Московских святых</a></div>
+</th>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background:#EDECD8;"><a href="/wiki/%D0%A1%D0%B2%D1%8F%D1%82%D0%B8%D1%82%D0%B5%D0%BB%D1%8C" title="Святитель">Святители</a></th>
+<td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+<div style="padding:0em 0.25em"><a href="/wiki/%D0%9F%D0%B5%D1%82%D1%80_(%D0%BC%D0%B8%D1%82%D1%80%D0%BE%D0%BF%D0%BE%D0%BB%D0%B8%D1%82_%D0%9A%D0%B8%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" class="mw-redirect" title="Петр (митрополит Киевский)">Петр</a>, <a href="/wiki/%D0%A4%D0%B5%D0%BE%D0%B3%D0%BD%D0%BE%D1%81%D1%82_(%D0%BC%D0%B8%D1%82%D1%80%D0%BE%D0%BF%D0%BE%D0%BB%D0%B8%D1%82_%D0%9A%D0%B8%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" title="Феогност (митрополит Киевский)">Феогност</a>, <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_(%D0%91%D1%8F%D0%BA%D0%BE%D0%BD%D1%82)" title="Алексий (Бяконт)">Алексий</a>, <a href="/wiki/%D0%9A%D0%B8%D0%BF%D1%80%D0%B8%D0%B0%D0%BD_(%D0%BC%D0%B8%D1%82%D1%80%D0%BE%D0%BF%D0%BE%D0%BB%D0%B8%D1%82_%D0%9A%D0%B8%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" title="Киприан (митрополит Киевский)">Киприан</a>, <a href="/wiki/%D0%A4%D0%BE%D1%82%D0%B8%D0%B9_(%D0%BC%D0%B8%D1%82%D1%80%D0%BE%D0%BF%D0%BE%D0%BB%D0%B8%D1%82_%D0%9A%D0%B8%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" title="Фотий (митрополит Киевский)">Фотий</a>, <a href="/wiki/%D0%98%D0%BE%D0%BD%D0%B0_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9" title="Иона Московский">Иона</a> Киевские и всея Руси • <a href="/wiki/%D0%A4%D0%B8%D0%BB%D0%B8%D0%BF%D0%BF_I_(%D0%BC%D0%B8%D1%82%D1%80%D0%BE%D0%BF%D0%BE%D0%BB%D0%B8%D1%82_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" title="Филипп I (митрополит Московский)">Филипп I</a>, <a href="/wiki/%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%81%D0%B8%D0%B9_(%D0%BC%D0%B8%D1%82%D1%80%D0%BE%D0%BF%D0%BE%D0%BB%D0%B8%D1%82_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" title="Феодосий (митрополит Московский)">Феодосий</a>, <a href="/wiki/%D0%93%D0%B5%D1%80%D0%BE%D0%BD%D1%82%D0%B8%D0%B9_(%D0%BC%D0%B8%D1%82%D1%80%D0%BE%D0%BF%D0%BE%D0%BB%D0%B8%D1%82_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" title="Геронтий (митрополит Московский)">Геронтий</a>, <a href="/wiki/%D0%A1%D0%B8%D0%BC%D0%BE%D0%BD_(%D0%BC%D0%B8%D1%82%D1%80%D0%BE%D0%BF%D0%BE%D0%BB%D0%B8%D1%82_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" title="Симон (митрополит Московский)">Симон</a>, <a href="/wiki/%D0%98%D0%BE%D0%B0%D1%81%D0%B0%D1%84_(%D0%BC%D0%B8%D1%82%D1%80%D0%BE%D0%BF%D0%BE%D0%BB%D0%B8%D1%82_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" title="Иоасаф (митрополит Московский)">Иоасаф</a>, <a href="/wiki/%D0%9C%D0%B0%D0%BA%D0%B0%D1%80%D0%B8%D0%B9_(%D0%BC%D0%B8%D1%82%D1%80%D0%BE%D0%BF%D0%BE%D0%BB%D0%B8%D1%82_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" title="Макарий (митрополит Московский)">Макарий I</a>, <a href="/wiki/%D0%A4%D0%B8%D0%BB%D0%B8%D0%BF%D0%BF_II_(%D0%BC%D0%B8%D1%82%D1%80%D0%BE%D0%BF%D0%BE%D0%BB%D0%B8%D1%82_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" title="Филипп II (митрополит Московский)">Филипп II</a>, <a href="/wiki/%D0%98%D0%BE%D0%B2_(%D0%9F%D0%B0%D1%82%D1%80%D0%B8%D0%B0%D1%80%D1%85_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" class="mw-redirect" title="Иов (Патриарх Московский)">Иов</a> Московские и всея Руси • <a href="/wiki/%D0%A4%D0%B8%D0%BB%D0%B0%D1%80%D0%B5%D1%82_(%D0%94%D1%80%D0%BE%D0%B7%D0%B4%D0%BE%D0%B2)" title="Филарет (Дроздов)">Филарет</a>, <a href="/wiki/%D0%98%D0%BD%D0%BD%D0%BE%D0%BA%D0%B5%D0%BD%D1%82%D0%B8%D0%B9_(%D0%92%D0%B5%D0%BD%D0%B8%D0%B0%D0%BC%D0%B8%D0%BD%D0%BE%D0%B2)" title="Иннокентий (Вениаминов)">Иннокентий</a>, <a href="/wiki/%D0%9C%D0%B0%D0%BA%D0%B0%D1%80%D0%B8%D0%B9_(%D0%9D%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" title="Макарий (Невский)">Макарий II</a> митр. Московские • <a href="/wiki/%D0%A2%D0%B8%D1%85%D0%BE%D0%BD_(%D0%91%D0%B5%D0%BB%D0%B0%D0%B2%D0%B8%D0%BD)" class="mw-redirect" title="Тихон (Белавин)">Тихон</a> патр. Московский и всея России • <a href="/wiki/%D0%93%D0%B5%D0%BD%D0%BD%D0%B0%D0%B4%D0%B8%D0%B9_(%D0%B0%D1%80%D1%85%D0%B8%D0%B5%D0%BF%D0%B8%D1%81%D0%BA%D0%BE%D0%BF_%D0%9D%D0%BE%D0%B2%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D1%81%D0%BA%D0%B8%D0%B9)" title="Геннадий (архиепископ Новгородский)">Геннадий</a> и <a href="/wiki/%D0%A1%D0%B5%D1%80%D0%B0%D0%BF%D0%B8%D0%BE%D0%BD_(%D0%B0%D1%80%D1%85%D0%B8%D0%B5%D0%BF%D0%B8%D1%81%D0%BA%D0%BE%D0%BF_%D0%9D%D0%BE%D0%B2%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D1%81%D0%BA%D0%B8%D0%B9)" title="Серапион (архиепископ Новгородский)">Серапион</a> Новгородские • <a href="/wiki/%D0%A1%D1%82%D0%B5%D1%84%D0%B0%D0%BD_%D0%9F%D0%B5%D1%80%D0%BC%D1%81%D0%BA%D0%B8%D0%B9" title="Стефан Пермский">Стефан Пермский</a> • <a href="/wiki/%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80_III_(%D0%B0%D1%80%D1%85%D0%B8%D0%B5%D0%BF%D0%B8%D1%81%D0%BA%D0%BE%D0%BF_%D0%A0%D0%BE%D1%81%D1%82%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" title="Феодор III (архиепископ Ростовский)">Феодор Ростовский</a></div>
+</td>
+<td class="navbox-image" rowspan="21" style="width:1%;padding:0px 0px 0px 7px">
+<div>
+<div class="floatright"><a href="/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Saints_of_Moscow_(early_20_c.).jpg" class="image"><img alt="Saints of Moscow (early 20 c.).jpg" src="//upload.wikimedia.org/wikipedia/commons/thumb/a/a8/Saints_of_Moscow_%28early_20_c.%29.jpg/120px-Saints_of_Moscow_%28early_20_c.%29.jpg" width="120" height="142" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/a/a8/Saints_of_Moscow_%28early_20_c.%29.jpg/180px-Saints_of_Moscow_%28early_20_c.%29.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/a/a8/Saints_of_Moscow_%28early_20_c.%29.jpg/240px-Saints_of_Moscow_%28early_20_c.%29.jpg 2x" data-file-width="339" data-file-height="400" /></a></div>
+</div>
+</td>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background:#EDECD8;"><a href="/wiki/%D0%A1%D0%B2%D1%8F%D1%89%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%BA" title="Священномученик">Священномученики</a></th>
+<td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;background:#f0f0f0;">
+<div style="padding:0em 0.25em"><a href="/wiki/%D0%93%D0%B5%D1%80%D0%BC%D0%BE%D0%B3%D0%B5%D0%BD_(%D0%9F%D0%B0%D1%82%D1%80%D0%B8%D0%B0%D1%80%D1%85_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" class="mw-redirect" title="Гермоген (Патриарх Московский)">Патриарх Гермоген</a> • Новомученики митр. <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80(%D0%9F%D0%BE%D0%BB%D1%8F%D0%BD%D1%81%D0%BA%D0%B8%D0%B9)&amp;action=edit&amp;redlink=1" class="new" title="Петр(Полянский) (страница отсутствует)">Петр Крутицкий</a>, Местоблюститель Патриаршего престола, <a href="/wiki/%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_(%D0%91%D0%BE%D0%B3%D0%BE%D1%8F%D0%B2%D0%BB%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9)" title="Владимир (Богоявленский)">Владимир Киевский и Галицкий</a>, <a href="/wiki/%D0%A1%D0%B5%D1%80%D0%B0%D1%84%D0%B8%D0%BC_(%D0%A7%D0%B8%D1%87%D0%B0%D0%B3%D0%BE%D0%B2)" title="Серафим (Чичагов)">Серафим</a> • архиеп. <a href="/wiki/%D0%9F%D0%B5%D1%82%D1%80_(%D0%97%D0%B2%D0%B5%D1%80%D0%B5%D0%B2)" class="mw-redirect" title="Петр (Зверев)">Петр Воронежский</a>, <a href="/wiki/%D0%98%D0%BB%D0%B0%D1%80%D0%B8%D0%BE%D0%BD_(%D0%A2%D1%80%D0%BE%D0%B8%D1%86%D0%BA%D0%B8%D0%B9)" title="Иларион (Троицкий)">Иларион Верейский</a>, <a href="/wiki/%D0%94%D0%B8%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_(%D0%94%D0%BE%D0%B1%D1%80%D0%BE%D1%81%D0%B5%D1%80%D0%B4%D0%BE%D0%B2)" title="Димитрий (Добросердов)">Димитрий Можайский</a>, <a href="/wiki/%D0%9F%D0%B0%D0%B2%D0%BB%D0%B8%D0%BD_(%D0%9A%D1%80%D0%BE%D1%88%D0%B5%D1%87%D0%BA%D0%B8%D0%BD)" title="Павлин (Крошечкин)">Павлин Могилевский</a>, <a href="/wiki/%D0%A1%D0%B5%D1%80%D0%B0%D1%84%D0%B8%D0%BC_(%D0%A1%D0%B0%D0%BC%D0%BE%D0%B9%D0%BB%D0%BE%D0%B2%D0%B8%D1%87)" title="Серафим (Самойлович)">Серафим Угличский</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_(%D0%94%D0%BE%D0%B1%D1%80%D0%BE%D0%BD%D1%80%D0%B0%D0%B2%D0%BE%D0%B2)" title="Николай (Добронравов)">Николай Владимирский</a> • еп. <a href="/wiki/%D0%95%D1%80%D0%BC%D0%BE%D0%B3%D0%B5%D0%BD_(%D0%94%D0%BE%D0%BB%D0%B3%D0%B0%D0%BD%D1%91%D0%B2)" class="mw-redirect" title="Ермоген (Долганёв)">Ермоген Тобольский</a>, <a href="/wiki/%D0%9C%D0%B0%D0%BA%D0%B0%D1%80%D0%B8%D0%B9_(%D0%93%D0%BD%D0%B5%D0%B2%D1%83%D1%88%D0%B5%D0%B2)" title="Макарий (Гневушев)">Макарий Вяземский</a>, <a href="/wiki/%D0%95%D1%84%D1%80%D0%B5%D0%BC_(%D0%9A%D1%83%D0%B7%D0%BD%D0%B5%D1%86%D0%BE%D0%B2)" title="Ефрем (Кузнецов)">Ефрем Селенгинский</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%B4%D0%B8%D0%BC_(%D0%9A%D0%BE%D0%BD%D0%BE%D0%BD%D0%BE%D0%B2)" title="Никодим (Кононов)">Никодим Белгородский</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_(%D0%97%D0%B5%D0%BB%D0%B5%D0%BD%D1%86%D0%BE%D0%B2)" title="Василий (Зеленцов)">Василий Прилукский</a>, <a href="/wiki/%D0%A1%D0%B5%D1%80%D0%B0%D1%84%D0%B8%D0%BC_(%D0%97%D0%B2%D0%B5%D0%B7%D0%B4%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9)" title="Серафим (Звездинский)">Серафим Дмитровский</a>, <a href="/wiki/%D0%94%D0%B0%D0%BC%D0%B0%D1%81%D0%BA%D0%B8%D0%BD_(%D0%A6%D0%B5%D0%B4%D1%80%D0%B8%D0%BA)" title="Дамаскин (Цедрик)">Дамаскин Стародубский</a>, <a href="/wiki/%D0%98%D0%BE%D0%BD%D0%B0_(%D0%9B%D0%B0%D0%B7%D0%B0%D1%80%D0%B5%D0%B2)" title="Иона (Лазарев)">Иона Велижский</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%B8%D1%82%D0%B0_(%D0%94%D0%B5%D0%BB%D0%B5%D0%BA%D1%82%D0%BE%D1%80%D1%81%D0%BA%D0%B8%D0%B9)" title="Никита (Делекторский)">Никита Орехово-Зуевский</a>, <a href="/wiki/%D0%90%D1%80%D0%BA%D0%B0%D0%B4%D0%B8%D0%B9_(%D0%9E%D1%81%D1%82%D0%B0%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9)" title="Аркадий (Остальский)">Аркадий Бежецкий</a> • протопресв. <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%A5%D0%BE%D1%82%D0%BE%D0%B2%D0%B8%D1%86%D0%BA%D0%B8%D0%B9" class="mw-redirect" title="Александр Хотовицкий">Александр Хотовицкий</a> • прот. <a href="/wiki/%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%92%D0%BE%D1%81%D1%82%D0%BE%D1%80%D0%B3%D0%BE%D0%B2" class="mw-redirect" title="Иоанн Восторгов">Иоанн Восторгов</a>, <a href="/w/index.php?title=%D0%9D%D0%B5%D0%BE%D1%84%D0%B8%D1%82_%D0%9B%D1%8E%D0%B1%D0%B8%D0%BC%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Неофит Любимов (страница отсутствует)">Неофит Любимов</a>, <a href="/wiki/%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D0%B8%D0%BD_%D0%93%D0%BE%D0%BB%D1%83%D0%B1%D0%B5%D0%B2" class="mw-redirect mw-disambig" title="Константин Голубев">Константин Голубев</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%97%D0%B0%D0%BE%D0%B7%D0%B5%D1%80%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Александр Заозерский (страница отсутствует)">Александр Заозерский</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%A1%D0%BE%D0%BA%D0%BE%D0%BB%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Василий Соколов">Василий Соколов</a>, <a href="/wiki/%D0%9F%D0%B5%D1%82%D1%80_%D0%A3%D1%81%D0%BF%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect" title="Петр Успенский">Петр Успенский</a>, <a href="/w/index.php?title=%D0%98%D0%BB%D0%B8%D1%8F_%D0%A7%D0%B5%D1%82%D0%B2%D0%B5%D1%80%D1%83%D1%85%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Илия Четверухин (страница отсутствует)">Илия Четверухин</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%9F%D0%BE%D1%80%D0%B5%D1%86%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Николай Порецкий (страница отсутствует)">Николай Порецкий</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%92%D0%BE%D1%80%D0%BE%D0%B1%D1%8C%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Алексий Воробьев (страница отсутствует)">Алексий Воробьев</a>, <a href="/w/index.php?title=%D0%94%D0%B8%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%9E%D1%81%D1%82%D1%80%D0%BE%D1%83%D0%BC%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Димитрий Остроумов (страница отсутствует)">Димитрий Остроумов</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%9B%D0%B5%D0%B1%D0%B5%D0%B4%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Лебедев (страница отсутствует)">Иоанн Лебедев</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%A1%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Смирнов (страница отсутствует)">Иоанн Смирнов</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Василий Максимов">Василий Максимов</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%96%D0%B8%D1%82%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Николай Житов (страница отсутствует)">Николай Житов</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%91%D0%BE%D1%80%D0%BE%D0%B7%D0%B4%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Бороздин (страница отсутствует)">Иоанн Бороздин</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%A1%D0%BA%D0%B2%D0%BE%D1%80%D1%86%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Николай Скворцов">Николай Скворцов</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%9B%D0%B5%D0%B2%D0%B8%D1%82%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Александр Левитский (страница отсутствует)">Александр Левитский</a>, <a href="/w/index.php?title=%D0%94%D0%B8%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%A0%D0%BE%D0%B7%D0%B0%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Димитрий Розанов (страница отсутствует)">Димитрий Розанов</a>, <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%9E%D1%80%D0%BB%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Александр Орлов">Александр Орлов</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%9F%D1%83%D1%88%D0%BA%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Петр Пушкинский (страница отсутствует)">Петр Пушкинский</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%A1%D0%BE%D0%BB%D0%BE%D0%B2%D1%8C%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Петр Соловьев (страница отсутствует)">Петр Соловьев</a>, <a href="/wiki/%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB_%D0%9F%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Павел Преображенский">Павел Преображенский</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%9D%D0%B8%D0%BA%D0%BE%D1%82%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Петр Никотин (страница отсутствует)">Петр Никотин</a>, <a href="/w/index.php?title=%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%92%D0%BE%D1%81%D0%BA%D1%80%D0%B5%D1%81%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Андрей Воскресенский (страница отсутствует)">Андрей Воскресенский</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%A1%D0%BE%D0%BA%D0%BE%D0%BB%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Николай Соколов">Николай Соколов</a>, <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B5%D0%B2" class="mw-redirect mw-disambig" title="Александр Андреев">Александр Андреев</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%90%D0%B3%D0%B0%D1%84%D0%BE%D0%BD%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Николай Агафонников (страница отсутствует)">Николай Агафонников</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%90%D1%80%D1%85%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Николай Архангельский">Николай Архангельский</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%90%D1%80%D1%85%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Василий Архангельский">Василий Архангельский</a>, <a href="/w/index.php?title=%D0%92%D1%81%D0%B5%D0%B2%D0%BE%D0%BB%D0%BE%D0%B4_%D0%A1%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Всеволод Смирнов (страница отсутствует)">Всеволод Смирнов</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%92%D0%BE%D1%81%D0%BA%D0%BE%D0%B1%D0%BE%D0%B9%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Петр Воскобойников (страница отсутствует)">Петр Воскобойников</a>, <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%97%D0%B2%D0%B5%D1%80%D0%B5%D0%B2" class="mw-redirect mw-disambig" title="Александр Зверев">Александр Зверев</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%9F%D0%B0%D1%80%D1%83%D1%81%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Александр Парусников (страница отсутствует)">Александр Парусников</a>, <a href="/w/index.php?title=%D0%92%D0%B8%D0%BA%D0%B5%D0%BD%D1%82%D0%B8%D0%B9_%D0%A1%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Викентий Смирнов (страница отсутствует)">Викентий Смирнов</a>, <a href="/w/index.php?title=%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%9F%D0%B8%D1%81%D0%B0%D1%80%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Владимир Писарев (страница отсутствует)">Владимир Писарев</a>, <a href="/wiki/%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB_%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B5%D0%B2" class="mw-redirect mw-disambig" title="Павел Андреев">Павел Андреев</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%9A%D0%B5%D0%B4%D1%80%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Кедров (страница отсутствует)">Сергий Кедров</a>, <a href="/w/index.php?title=%D0%90%D1%80%D1%81%D0%B5%D0%BD%D0%B8%D0%B9_%D0%A2%D1%80%D0%BE%D0%B8%D1%86%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Арсений Троицкий (страница отсутствует)">Арсений Троицкий</a>, <a href="/w/index.php?title=%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB_%D0%90%D0%BD%D1%81%D0%B8%D0%BC%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Павел Ансимов (страница отсутствует)">Павел Ансимов</a>, <a href="/w/index.php?title=%D0%94%D0%B8%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%A0%D1%83%D1%81%D0%B8%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Димитрий Русинов (страница отсутствует)">Димитрий Русинов</a>, <a href="/w/index.php?title=%D0%98%D0%BB%D0%B8%D1%8F_%D0%A0%D1%8B%D0%BB%D1%8C%D0%BA%D0%BE&amp;action=edit&amp;redlink=1" class="new" title="Илия Рылько (страница отсутствует)">Илия Рылько</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%A1%D0%BF%D0%B5%D1%80%D0%B0%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Сперанский (страница отсутствует)">Иоанн Сперанский</a>, <a href="/w/index.php?title=%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D0%B8%D0%BD_%D0%A3%D1%81%D0%BF%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Константин Успенский (страница отсутствует)">Константин Успенский</a>, <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%9F%D0%BE%D0%BA%D1%80%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Александр Покровский">Александр Покровский</a>, <a href="/w/index.php?title=%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9B%D0%B8%D1%85%D0%B0%D1%80%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Василий Лихарев (страница отсутствует)">Василий Лихарев</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Василий Никольский">Василий Никольский</a>, <a href="/w/index.php?title=%D0%94%D0%B8%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%9B%D0%B5%D0%B1%D0%B5%D0%B4%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Димитрий Лебедев (страница отсутствует)">Димитрий Лебедев</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%92%D0%B8%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D0%B4%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Николай Виноградов">Николай Виноградов</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%97%D0%BD%D0%B0%D0%BC%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Сергий Знаменский (страница отсутствует)">Сергий Знаменский</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%A0%D1%83%D1%84%D0%B8%D1%86%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Сергий Руфицкий (страница отсутствует)">Сергий Руфицкий</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%9C%D0%B0%D1%85%D0%B0%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Махаев (страница отсутствует)">Сергий Махаев</a>, <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%A1%D0%B0%D1%85%D0%B0%D1%80%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Александр Сахаров">Александр Сахаров</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%90%D0%BC%D0%B0%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Алексий Аманов (страница отсутствует)">Алексий Аманов</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%9D%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Алексий Никатов (страница отсутствует)">Алексий Никатов</a>, <a href="/w/index.php?title=%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%9C%D0%B5%D0%B4%D0%B2%D0%B5%D0%B4%D1%8E%D0%BA&amp;action=edit&amp;redlink=1" class="new" title="Владимир Медведюк (страница отсутствует)">Владимир Медведюк</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%92%D0%B5%D1%80%D1%88%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Александр Вершинский (страница отсутствует)">Александр Вершинский</a>, <a href="/wiki/%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80_%D0%A1%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Виктор Смирнов">Виктор Смирнов</a>, <a href="/w/index.php?title=%D0%93%D1%80%D0%B8%D0%B3%D0%BE%D1%80%D0%B8%D0%B9_%D0%92%D0%BE%D0%B8%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Григорий Воинов (страница отсутствует)">Григорий Воинов</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%A2%D0%B0%D1%80%D0%B0%D1%81%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Тарасов (страница отсутствует)">Иоанн Тарасов</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%AF%D0%BD%D1%83%D1%88%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Янушев (страница отсутствует)">Иоанн Янушев</a>, <a href="/w/index.php?title=%D0%AF%D1%80%D0%BE%D1%81%D0%BB%D0%B0%D0%B2_%D0%A1%D0%B0%D0%B2%D0%B8%D1%86%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Ярослав Савицкий (страница отсутствует)">Ярослав Савицкий</a>, <a href="/w/index.php?title=%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%90%D0%B3%D0%B0%D1%84%D0%BE%D0%BD%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Василий Агафонников (страница отсутствует)">Василий Агафонников</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9A%D0%BE%D0%BB%D0%BE%D1%81%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Василий Колосов">Василий Колосов</a>, <a href="/w/index.php?title=%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%A1%D1%82%D1%83%D0%B4%D0%BD%D0%B8%D1%86%D1%8B%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Василий Студницын (страница отсутствует)">Василий Студницын</a>, <a href="/wiki/%D0%93%D0%B5%D0%BE%D1%80%D0%B3%D0%B8%D0%B9_%D0%9A%D0%BE%D0%BB%D0%BE%D0%BA%D0%BE%D0%BB%D0%BE%D0%B2" class="mw-redirect" title="Георгий Колоколов">Георгий Колоколов</a>, <a href="/wiki/%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%92%D0%B8%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D0%B4%D0%BE%D0%B2" class="mw-redirect" title="Иоанн Виноградов">Иоанн Виноградов</a>, <a href="/w/index.php?title=%D0%9D%D0%B0%D0%B7%D0%B0%D1%80%D0%B8%D0%B9_%D0%93%D1%80%D0%B8%D0%B1%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Назарий Грибков (страница отсутствует)">Назарий Грибков</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%9F%D0%BE%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Николай Постников (страница отсутствует)">Николай Постников</a>, <a href="/wiki/%D0%91%D0%BE%D1%80%D0%B8%D1%81_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect" title="Борис Ивановский">Борис Ивановский</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%A1%D0%BE%D0%BA%D0%BE%D0%BB%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Василий Соколов">Василий Соколов</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%A1%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Смирнов (страница отсутствует)">Иоанн Смирнов</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B5%D0%B2" class="mw-redirect mw-disambig" title="Николай Андреев">Николай Андреев</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%9F%D0%BE%D0%BA%D1%80%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Николай Покровский">Николай Покровский</a>, <a href="/wiki/%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D0%B8%D0%BD_%D0%9D%D0%B5%D0%BA%D1%80%D0%B0%D1%81%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Константин Некрасов">Константин Некрасов</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%92%D0%B8%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D0%B4%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Николай Виноградский">Николай Виноградский</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%97%D0%B0%D0%B1%D0%BE%D0%BB%D0%BE%D1%82%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Николай Заболотский (страница отсутствует)">Николай Заболотский</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%9A%D1%83%D0%B4%D1%80%D1%8F%D0%B2%D1%86%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Кудрявцев (страница отсутствует)">Сергий Кудрявцев</a>, <a href="/wiki/%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%93%D0%BE%D0%BB%D0%BE%D1%89%D0%B0%D0%BF%D0%BE%D0%B2" class="mw-redirect" title="Сергий Голощапов">Сергий Голощапов</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%A3%D1%81%D0%BF%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Сергий Успенский (страница отсутствует)">Сергий Успенский</a>, <a href="/w/index.php?title=%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%AF%D0%B3%D0%BE%D0%B4%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Василий Ягодин (страница отсутствует)">Василий Ягодин</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%9A%D0%BE%D0%B1%D1%80%D0%B0%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Николай Кобранов (страница отсутствует)">Николай Кобранов</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%A0%D1%83%D1%81%D0%B8%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Александр Русинов (страница отсутствует)">Александр Русинов</a>, <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%A1%D0%BE%D0%BA%D0%BE%D0%BB%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Александр Соколов">Александр Соколов</a>, <a href="/w/index.php?title=%D0%91%D0%BE%D1%80%D0%B8%D1%81_%D0%9D%D0%B0%D0%B7%D0%B0%D1%80%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Борис Назаров (страница отсутствует)">Борис Назаров</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%90%D1%80%D1%82%D0%BE%D0%B1%D0%BE%D0%BB%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Артоболевский (страница отсутствует)">Иоанн Артоболевский</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%9A%D0%B0%D0%BD%D0%B4%D0%B0%D1%83%D1%80%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Николай Кандауров (страница отсутствует)">Николай Кандауров</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%9F%D0%BE%D1%81%D0%BF%D0%B5%D0%BB%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Николай Поспелов (страница отсутствует)">Николай Поспелов</a>, <a href="/wiki/%D0%9F%D0%B5%D1%82%D1%80_%D0%A1%D0%BE%D0%BA%D0%BE%D0%BB%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Петр Соколов">Петр Соколов</a>, <a href="/w/index.php?title=%D0%97%D0%BE%D1%81%D0%B8%D0%BC%D0%B0_%D0%A2%D1%80%D1%83%D0%B1%D0%B0%D1%87%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Зосима Трубачев (страница отсутствует)">Зосима Трубачев</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%9F%D0%BE%D0%BA%D1%80%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Покровский (страница отсутствует)">Иоанн Покровский</a>, <a href="/w/index.php?title=%D0%9B%D0%B5%D0%BE%D0%BD%D1%82%D0%B8%D0%B9_%D0%93%D1%80%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Леонтий Гримальский (страница отсутствует)">Леонтий Гримальский</a>, <a href="/wiki/%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB_%D0%A1%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Павел Смирнов">Павел Смирнов</a>, <a href="/w/index.php?title=%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB_%D0%9A%D0%BE%D1%81%D0%BC%D0%B8%D0%BD%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Павел Косминков (страница отсутствует)">Павел Косминков</a>, <a href="/w/index.php?title=%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D0%B8%D0%BD_%D0%9F%D1%8F%D1%82%D0%B8%D0%BA%D1%80%D0%B5%D1%81%D1%82%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Константин Пятикрестовский (страница отсутствует)">Константин Пятикрестовский</a>, <a href="/w/index.php?title=%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%AF%D1%81%D0%B5%D0%BD%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Андрей Ясенев (страница отсутствует)">Андрей Ясенев</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%9F%D0%B0%D1%80%D1%83%D1%81%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Парусников (страница отсутствует)">Иоанн Парусников</a>, <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%92%D0%B8%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D0%B4%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Александр Виноградов">Александр Виноградов</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%9B%D1%8E%D0%B1%D0%B8%D0%BC%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Петр Любимов (страница отсутствует)">Петр Любимов</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%9B%D0%B8%D1%85%D0%B0%D1%80%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Александр Лихарев (страница отсутствует)">Александр Лихарев</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%9B%D0%B5%D0%B1%D0%B5%D0%B4%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Лебедев (страница отсутствует)">Сергий Лебедев</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%A6%D0%B2%D0%B5%D1%82%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Цветков (страница отсутствует)">Сергий Цветков</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%9F%D0%B0%D1%80%D1%83%D1%81%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Александр Парусников (страница отсутствует)">Александр Парусников</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%92%D0%B8%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D0%B4%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Николай Виноградов">Николай Виноградов</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%A1%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Василий Смирнов">Василий Смирнов</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%9A%D1%80%D0%BE%D1%82%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Кротков (страница отсутствует)">Сергий Кротков</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%A0%D0%BE%D0%B7%D0%B0%D0%BD%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Николай Розанов">Николай Розанов</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%97%D0%BD%D0%B0%D0%BC%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Алексий Знаменский (страница отсутствует)">Алексий Знаменский</a>, <a href="/w/index.php?title=%D0%9B%D0%B5%D0%BE%D0%BD%D0%B8%D0%B4_%D0%9F%D1%80%D0%B5%D0%BD%D0%B4%D0%BA%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;redlink=1" class="new" title="Леонид Прендкович (страница отсутствует)">Леонид Прендкович</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%A6%D0%B8%D1%86%D0%B5%D1%80%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Александр Цицеров (страница отсутствует)">Александр Цицеров</a>, <a href="/wiki/%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%A1%D0%BE%D0%BA%D0%BE%D0%BB%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Владимир Соколов">Владимир Соколов</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%9A%D1%80%D1%8B%D0%BB%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Николай Крылов">Николай Крылов</a>, <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%92%D0%B8%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D0%B4%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Александр Виноградов">Александр Виноградов</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%9C%D0%B5%D1%87%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Мечев (страница отсутствует)">Сергий Мечев</a> • пресвитеры <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%A1%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Александр Смирнов">Александр Смирнов</a> и <a href="/w/index.php?title=%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80_%D0%A0%D0%B5%D0%BC%D0%B8%D0%B7%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Феодор Ремизов (страница отсутствует)">Феодор Ремизов</a> Вышегородские, <a href="/w/index.php?title=%D0%A5%D1%80%D0%B8%D1%81%D1%82%D0%BE%D1%84%D0%BE%D1%80_%D0%9D%D0%B0%D0%B4%D0%B5%D0%B6%D0%B4%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Христофор Надеждин (страница отсутствует)">Христофор Надеждин</a>, <a href="/w/index.php?title=%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9D%D0%B0%D0%B4%D0%B5%D0%B6%D0%B4%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Василий Надеждин (страница отсутствует)">Василий Надеждин</a>, <a href="/w/index.php?title=%D0%93%D0%B5%D0%BE%D1%80%D0%B3%D0%B8%D0%B9_%D0%A2%D1%80%D0%BE%D0%B8%D1%86%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Георгий Троицкий (страница отсутствует)">Георгий Троицкий</a>, <a href="/w/index.php?title=%D0%94%D0%B8%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%91%D0%BB%D0%B0%D0%B3%D0%BE%D0%B2%D0%B5%D1%89%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Димитрий Благовещенский (страница отсутствует)">Димитрий Благовещенский</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%92%D0%BE%D1%81%D0%BA%D1%80%D0%B5%D1%81%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Сергий Воскресенский (страница отсутствует)">Сергий Воскресенский</a>, <a href="/w/index.php?title=%D0%94%D0%B8%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%9C%D0%B8%D0%BB%D0%BE%D0%B2%D0%B8%D0%B4%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Димитрий Миловидов (страница отсутствует)">Димитрий Миловидов</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%97%D0%B8%D0%BD%D0%BE%D0%B2%D1%8C%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Алексий Зиновьев (страница отсутствует)">Алексий Зиновьев</a>, <a href="/w/index.php?title=%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%A1%D1%83%D0%BD%D0%B3%D1%83%D1%80%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Василий Сунгуров (страница отсутствует)">Василий Сунгуров</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%AE%D1%80%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Петр Юрков (страница отсутствует)">Петр Юрков</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%9F%D0%B5%D1%82%D1%80%D0%B8%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Петр Петриков (страница отсутствует)">Петр Петриков</a>, <a href="/w/index.php?title=%D0%92%D0%B5%D0%BD%D0%B8%D0%B0%D0%BC%D0%B8%D0%BD_%D0%91%D0%BB%D0%B0%D0%B3%D0%BE%D0%BD%D0%B0%D0%B4%D0%B5%D0%B6%D0%B4%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Вениамин Благонадеждин (страница отсутствует)">Вениамин Благонадеждин</a>, <a href="/w/index.php?title=%D0%90%D1%84%D0%B0%D0%BD%D0%B0%D1%81%D0%B8%D0%B9_%D0%94%D0%BE%D0%BA%D1%83%D0%BA%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Афанасий Докукин (страница отсутствует)">Афанасий Докукин</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%93%D1%83%D1%80%D1%8C%D0%B5%D0%B2" class="mw-redirect mw-disambig" title="Василий Гурьев">Василий Гурьев</a>, <a href="/w/index.php?title=%D0%92%D1%8F%D1%87%D0%B5%D1%81%D0%BB%D0%B0%D0%B2_%D0%97%D0%B0%D0%BD%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Вячеслав Занков (страница отсутствует)">Вячеслав Занков</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%90%D0%B3%D0%B0%D1%84%D0%BE%D0%BD%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Александр Агафонников (страница отсутствует)">Александр Агафонников</a>, <a href="/w/index.php?title=%D0%93%D0%B5%D0%BE%D1%80%D0%B3%D0%B8%D0%B9_%D0%90%D1%80%D1%85%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Георгий Архангельский (страница отсутствует)">Георгий Архангельский</a>, <a href="/w/index.php?title=%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9E%D0%B7%D0%B5%D1%80%D0%B5%D1%86%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Василий Озерецковский (страница отсутствует)">Василий Озерецковский</a>, <a href="/w/index.php?title=%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%A1%D0%BF%D0%B5%D1%80%D0%B0%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Владимир Сперанский (страница отсутствует)">Владимир Сперанский</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%9E%D0%B7%D0%B5%D1%80%D0%B5%D1%86%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Петр Озерецковский (страница отсутствует)">Петр Озерецковский</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%91%D0%B0%D0%B6%D0%B0%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Бажанов (страница отсутствует)">Сергий Бажанов</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%93%D1%83%D1%81%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Гусев (страница отсутствует)">Сергий Гусев</a>, <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%A1%D0%BE%D0%BB%D0%BE%D0%B2%D1%8C%D0%B5%D0%B2" class="mw-redirect mw-disambig" title="Александр Соловьев">Александр Соловьев</a>, <a href="/wiki/%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%90%D0%BC%D0%B1%D0%B0%D1%80%D1%86%D1%83%D0%BC%D0%BE%D0%B2" class="mw-redirect" title="Владимир Амбарцумов">Владимир Амбарцумов</a>, <a href="/w/index.php?title=%D0%95%D0%BC%D0%B8%D0%BB%D0%B8%D0%B0%D0%BD_%D0%93%D0%BE%D0%BD%D1%87%D0%B0%D1%80%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Емилиан Гончаров (страница отсутствует)">Емилиан Гончаров</a>, <a href="/w/index.php?title=%D0%A1%D0%BE%D0%B7%D0%BE%D0%BD%D1%82_%D0%A0%D0%B5%D1%88%D0%B5%D1%82%D0%B8%D0%BB%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Созонт Решетилов (страница отсутствует)">Созонт Решетилов</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%92%D0%BE%D0%B7%D0%B4%D0%B2%D0%B8%D0%B6%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Александр Воздвиженский (страница отсутствует)">Александр Воздвиженский</a>, <a href="/w/index.php?title=%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9A%D0%BE%D0%BB%D0%BE%D0%BA%D0%BE%D0%BB%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Василий Колоколов (страница отсутствует)">Василий Колоколов</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%A0%D0%BE%D0%B7%D0%B0%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Розанов (страница отсутствует)">Сергий Розанов</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%90%D1%80%D1%85%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Василий Архангельский">Василий Архангельский</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9F%D0%BE%D0%BA%D1%80%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Василий Покровский">Василий Покровский</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%9A%D0%B5%D1%81%D0%B0%D1%80%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Кесарийский (страница отсутствует)">Иоанн Кесарийский</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%9F%D1%8F%D1%82%D0%BD%D0%B8%D1%86%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Николай Пятницкий (страница отсутствует)">Николай Пятницкий</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%9A%D0%BE%D1%81%D0%BC%D0%B5%D0%BD%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Петр Косменков (страница отсутствует)">Петр Косменков</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%9E%D1%80%D0%BB%D0%B5%D0%BD%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Петр Орленков (страница отсутствует)">Петр Орленков</a>, <a href="/w/index.php?title=%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D0%B8%D0%BD_%D0%9B%D1%8E%D0%B1%D0%BE%D0%BC%D1%83%D0%B4%D1%80%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Константин Любомудров (страница отсутствует)">Константин Любомудров</a>, <a href="/w/index.php?title=%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D0%B8%D0%BD_%D0%9D%D0%B5%D0%BC%D0%B5%D1%88%D0%B0%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Константин Немешаев (страница отсутствует)">Константин Немешаев</a>, <a href="/wiki/%D0%95%D0%B2%D0%B3%D0%B5%D0%BD%D0%B8%D0%B9_%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D1%8C%D0%B5%D0%B2" class="mw-redirect mw-disambig" title="Евгений Васильев">Евгений Васильев</a>, <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%90%D1%80%D1%85%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Александр Архангельский">Александр Архангельский</a>, <a href="/wiki/%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect" title="Владимир Красновский">Владимир Красновский</a>, <a href="/w/index.php?title=%D0%94%D0%B8%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%A0%D0%BE%D0%B7%D0%B0%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Димитрий Розанов (страница отсутствует)">Димитрий Розанов</a>, <a href="/w/index.php?title=%D0%9C%D0%B0%D1%82%D1%84%D0%B5%D0%B9_%D0%90%D0%BB%D0%BE%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Матфей Алоин (страница отсутствует)">Матфей Алоин</a>, <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%91%D1%8B%D0%BA%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Александр Быков">Александр Быков</a>, <a href="/w/index.php?title=%D0%94%D0%B8%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%A0%D1%83%D0%B4%D0%B0%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Димитрий Рудаков (страница отсутствует)">Димитрий Рудаков</a>, <a href="/w/index.php?title=%D0%98%D0%B0%D0%BA%D0%BE%D0%B2_%D0%91%D1%80%D0%B8%D0%BB%D0%BB%D0%B8%D0%B0%D0%BD%D1%82%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иаков Бриллиантов (страница отсутствует)">Иаков Бриллиантов</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%97%D0%B0%D0%B1%D0%BE%D0%BB%D0%BE%D1%82%D0%BD%D1%8B%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Заболотный (страница отсутствует)">Иоанн Заболотный</a>, <a href="/w/index.php?title=%D0%98%D0%B0%D0%BA%D0%BE%D0%B2_%D0%A1%D0%BE%D0%BA%D0%BE%D0%BB%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иаков Соколов (страница отсутствует)">Иаков Соколов</a>, <a href="/w/index.php?title=%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80_%D0%93%D1%83%D1%81%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Феодор Гусев (страница отсутствует)">Феодор Гусев</a>, <a href="/w/index.php?title=%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%A8%D0%B5%D1%80%D1%88%D0%BD%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Андрей Шершнев (страница отсутствует)">Андрей Шершнев</a>, <a href="/w/index.php?title=%D0%9A%D0%BE%D1%81%D0%BC%D0%B0_%D0%9A%D0%BE%D1%80%D0%BE%D1%82%D0%BA%D0%B8%D1%85&amp;action=edit&amp;redlink=1" class="new" title="Косма Коротких (страница отсутствует)">Косма Коротких</a>, <a href="/w/index.php?title=%D0%94%D0%B0%D0%BD%D0%B8%D0%B8%D0%BB_%D0%9C%D0%B5%D1%89%D0%B0%D0%BD%D0%B8%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Даниил Мещанинов (страница отсутствует)">Даниил Мещанинов</a>, <a href="/w/index.php?title=%D0%98%D0%BB%D0%B8%D1%8F_%D0%97%D0%B0%D1%87%D0%B0%D1%82%D0%B5%D0%B9%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Илия Зачатейский (страница отсутствует)">Илия Зачатейский</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%A1%D0%BF%D0%B5%D1%80%D0%B0%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Алексий Сперанский (страница отсутствует)">Алексий Сперанский</a>, <a href="/w/index.php?title=%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80_%D0%94%D0%BE%D1%80%D0%BE%D1%84%D0%B5%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Феодор Дорофеев (страница отсутствует)">Феодор Дорофеев</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%92%D0%B5%D1%81%D0%B5%D0%BB%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Алексий Веселовский (страница отсутствует)">Алексий Веселовский</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%A1%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Алексий Смирнов (страница отсутствует)">Алексий Смирнов</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%92%D0%BE%D1%80%D0%BE%D0%BD%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Петр Ворона (страница отсутствует)">Петр Ворона</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%A7%D0%B5%D1%81%D1%82%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Честнов (страница отсутствует)">Иоанн Честнов</a>, <a href="/wiki/%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%9F%D1%80%D0%BE%D1%84%D0%B5%D1%80%D0%B0%D0%BD%D1%81%D0%BE%D0%B2" class="mw-redirect" title="Владимир Проферансов">Владимир Проферансов</a>, <a href="/wiki/%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%94%D0%B5%D1%80%D0%B6%D0%B0%D0%B2%D0%B8%D0%BD" class="mw-redirect mw-disambig" title="Иоанн Державин">Иоанн Державин</a>, <a href="/w/index.php?title=%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB_%D0%9F%D0%BE%D0%BD%D1%8F%D1%82%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Павел Понятский (страница отсутствует)">Павел Понятский</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%A4%D0%B5%D0%BB%D0%B8%D1%86%D1%8B%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Сергий Фелицын (страница отсутствует)">Сергий Фелицын</a>, <a href="/w/index.php?title=%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Феодор Алексинский (страница отсутствует)">Феодор Алексинский</a>, <a href="/wiki/%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%A3%D1%81%D0%BF%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Михаил Успенский">Михаил Успенский</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%9E%D1%80%D0%BB%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Орлов (страница отсутствует)">Сергий Орлов</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%91%D1%83%D1%80%D0%B0%D0%B2%D1%86%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Александр Буравцев (страница отсутствует)">Александр Буравцев</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%9A%D1%80%D0%B0%D1%81%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Николай Красовский">Николай Красовский</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%9B%D0%B5%D0%B1%D0%B5%D0%B4%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Лебедев (страница отсутствует)">Сергий Лебедев</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%9C%D0%B8%D0%BD%D0%B5%D1%80%D0%B2%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Александр Минервин (страница отсутствует)">Александр Минервин</a>, <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%9F%D0%BE%D0%BA%D1%80%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Александр Покровский">Александр Покровский</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%9A%D0%BD%D1%8F%D0%B6%D0%B5%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Алексий Княжеский (страница отсутствует)">Алексий Княжеский</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%9B%D0%B5%D0%B1%D0%B5%D0%B4%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Алексий Лебедев (страница отсутствует)">Алексий Лебедев</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%A8%D0%B0%D1%80%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Алексий Шаров (страница отсутствует)">Алексий Шаров</a>, <a href="/w/index.php?title=%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%91%D0%B5%D0%B4%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Андрей Беднов (страница отсутствует)">Андрей Беднов</a>, <a href="/w/index.php?title=%D0%90%D1%80%D0%BA%D0%B0%D0%B4%D0%B8%D0%B9_%D0%9B%D0%BE%D0%B1%D1%86%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Аркадий Лобцов (страница отсутствует)">Аркадий Лобцов</a>, <a href="/w/index.php?title=%D0%95%D0%B2%D1%81%D1%82%D0%B0%D1%84%D0%B8%D0%B9_%D0%A1%D0%BE%D0%BA%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Евстафий Сокольский (страница отсутствует)">Евстафий Сокольский</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%90%D0%BB%D0%B5%D1%88%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Алешковский (страница отсутствует)">Иоанн Алешковский</a>, <a href="/w/index.php?title=%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%A0%D1%8B%D0%B1%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Михаил Рыбин (страница отсутствует)">Михаил Рыбин</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%93%D0%BE%D0%BB%D1%8B%D1%88%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Николай Голышев (страница отсутствует)">Николай Голышев</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%A1%D0%BE%D0%BB%D0%BE%D0%B2%D1%8C%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Соловьев (страница отсутствует)">Сергий Соловьев</a>, <a href="/w/index.php?title=%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80_%D0%91%D0%BE%D0%B1%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Феодор Бобков (страница отсутствует)">Феодор Бобков</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%9B%D1%8E%D0%B1%D0%BE%D0%BC%D1%83%D0%B4%D1%80%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Любомудров (страница отсутствует)">Сергий Любомудров</a>, <a href="/w/index.php?title=%D0%A1%D0%B8%D0%BC%D0%B5%D0%BE%D0%BD_%D0%9A%D1%83%D0%BB%D1%8C%D0%B3%D0%B0%D0%B2%D0%B5%D1%86&amp;action=edit&amp;redlink=1" class="new" title="Симеон Кульгавец (страница отсутствует)">Симеон Кульгавец</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%A4%D1%80%D1%8F%D0%B7%D0%B8%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Фрязинов (страница отсутствует)">Иоанн Фрязинов</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%93%D0%BE%D1%80%D0%B1%D0%B0%D1%87%D0%B5%D0%B2" class="mw-redirect" title="Василий Горбачев">Василий Горбачев</a>, <a href="/wiki/%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%9F%D0%BE%D0%BA%D1%80%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Владимир Покровский">Владимир Покровский</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%9A%D0%B0%D0%BB%D0%B0%D0%B1%D1%83%D1%85%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Калабухов (страница отсутствует)">Иоанн Калабухов</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%9A%D0%BE%D1%81%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Косинский (страница отсутствует)">Иоанн Косинский</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%94%D0%BE%D0%B1%D1%80%D0%BE%D0%BB%D1%8E%D0%B1%D0%BE%D0%B2" class="mw-redirect" title="Николай Добролюбов">Николай Добролюбов</a>, <a href="/w/index.php?title=%D0%9F%D0%B0%D1%80%D1%84%D0%B5%D0%BD%D0%B8%D0%B9_%D0%93%D1%80%D1%83%D0%B7%D0%B8%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Парфений Грузинов (страница отсутствует)">Парфений Грузинов</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%9D%D0%B8%D0%BA%D0%B8%D1%82%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Алексий Никитский (страница отсутствует)">Алексий Никитский</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%A1%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Алексий Смирнов (страница отсутствует)">Алексий Смирнов</a>, <a href="/w/index.php?title=%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%BE%D0%B3%D0%BE%D1%80%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Михаил Никологорский (страница отсутствует)">Михаил Никологорский</a>, <a href="/w/index.php?title=%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80_%D0%9C%D0%BE%D1%80%D0%B8%D0%B3%D0%B5%D1%80%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Виктор Моригеровский (страница отсутствует)">Виктор Моригеровский</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%9E%D1%80%D0%BB%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Орлов (страница отсутствует)">Иоанн Орлов</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%91%D0%B5%D0%BB%D0%BE%D0%BA%D1%83%D1%80%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Белокуров (страница отсутствует)">Сергий Белокуров</a>, <a href="/wiki/%D0%9F%D0%B5%D1%82%D1%80_%D0%A3%D1%81%D0%BF%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect" title="Петр Успенский">Петр Успенский</a>, <a href="/w/index.php?title=%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9D%D0%B8%D0%BA%D0%B8%D1%82%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Василий Никитский (страница отсутствует)">Василий Никитский</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%A1%D1%82%D1%80%D0%B5%D0%BB%D1%8C%D1%86%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Стрельцов (страница отсутствует)">Иоанн Стрельцов</a>, <a href="/w/index.php?title=%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%91%D1%83%D0%BA%D1%80%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Михаил Букринский (страница отсутствует)">Михаил Букринский</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%A1%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Алексий Смирнов (страница отсутствует)">Алексий Смирнов</a>, <a href="/w/index.php?title=%D0%94%D0%B8%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%93%D0%BB%D0%B8%D0%B2%D0%B5%D0%BD%D0%BA%D0%BE&amp;action=edit&amp;redlink=1" class="new" title="Димитрий Гливенко (страница отсутствует)">Димитрий Гливенко</a>, <a href="/wiki/%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%9C%D0%B0%D1%81%D0%BB%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Михаил Маслов">Михаил Маслов</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%9A%D0%BE%D1%81%D0%BC%D0%BE%D0%B4%D0%B0%D0%BC%D0%B8%D0%B0%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Петр Космодамианский (страница отсутствует)">Петр Космодамианский</a>, <a href="/wiki/%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D0%B8%D0%BD_%D0%A1%D0%BE%D0%BA%D0%BE%D0%BB%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Константин Соколов">Константин Соколов</a>, <a href="/w/index.php?title=%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9A%D0%BE%D0%BA%D0%BB%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Василий Коклин (страница отсутствует)">Василий Коклин</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BF%D0%BE%D0%BF%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Алексий Протопопов (страница отсутствует)">Алексий Протопопов</a>, <a href="/w/index.php?title=%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%9C%D0%B0%D1%80%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Михаил Марков (страница отсутствует)">Михаил Марков</a>, <a href="/wiki/%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Павел Иванов">Павел Иванов</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%9A%D1%80%D1%83%D1%82%D0%B8%D1%86%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Александр Крутицкий (страница отсутствует)">Александр Крутицкий</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9A%D1%80%D1%8B%D0%BB%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Василий Крылов">Василий Крылов</a>, <a href="/w/index.php?title=%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB_%D0%A3%D1%81%D0%BF%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Павел Успенский (страница отсутствует)">Павел Успенский</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%93%D0%BE%D0%BB%D1%83%D0%B1%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Петр Голубев (страница отсутствует)">Петр Голубев</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%9A%D1%80%D0%B0%D1%81%D0%BD%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Алексий Красновский (страница отсутствует)">Алексий Красновский</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%9F%D0%BE%D0%BC%D0%B5%D1%80%D0%B0%D0%BD%D1%86%D0%B5%D0%B2" class="mw-redirect" title="Николай Померанцев">Николай Померанцев</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%9D%D0%B8%D0%BA%D0%BE%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Алексий Никонов (страница отсутствует)">Алексий Никонов</a>, <a href="/w/index.php?title=%D0%90%D1%80%D0%B5%D1%84%D0%B0_%D0%9D%D0%B0%D1%81%D0%BE%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Арефа Насонов (страница отсутствует)">Арефа Насонов</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%90%D1%80%D1%85%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Василий Архангельский">Василий Архангельский</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9A%D0%BE%D0%BB%D0%BE%D1%81%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Василий Колосов">Василий Колосов</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%9E%D1%81%D1%82%D1%80%D0%BE%D1%83%D0%BC%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Петр Остроумов (страница отсутствует)">Петр Остроумов</a>, <a href="/w/index.php?title=%D0%A2%D0%B8%D0%BC%D0%BE%D1%84%D0%B5%D0%B9_%D0%A3%D0%BB%D1%8C%D1%8F%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Тимофей Ульянов (страница отсутствует)">Тимофей Ульянов</a>, <a href="/w/index.php?title=%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BF%D0%BE%D0%BF%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Василий Протопопов (страница отсутствует)">Василий Протопопов</a>, <a href="/w/index.php?title=%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80_%D0%93%D1%80%D1%83%D0%B4%D0%B0%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Феодор Грудаков (страница отсутствует)">Феодор Грудаков</a>, <a href="/w/index.php?title=%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB_%D0%A4%D0%B8%D0%BB%D0%B8%D1%86%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Павел Филицин (страница отсутствует)">Павел Филицин</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%91%D0%B5%D0%BD%D0%B5%D0%B2%D0%BE%D0%BB%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Николай Беневоленский (страница отсутствует)">Николай Беневоленский</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%A1%D0%BE%D0%BB%D0%BE%D0%B2%D1%8C%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Соловьев (страница отсутствует)">Иоанн Соловьев</a>, <a href="/w/index.php?title=%D0%9B%D0%B5%D0%BE%D0%BD%D0%B8%D0%B4_%D0%9C%D1%83%D1%80%D0%B0%D0%B2%D1%8C%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Леонид Муравьев (страница отсутствует)">Леонид Муравьев</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%A2%D1%80%D0%BE%D0%B8%D1%86%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Алексий Троицкий (страница отсутствует)">Алексий Троицкий</a>, <a href="/w/index.php?title=%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80_%D0%9D%D0%B5%D0%B4%D0%BE%D1%81%D0%B5%D0%BA%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Феодор Недосекин (страница отсутствует)">Феодор Недосекин</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D1%8C%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Васильев (страница отсутствует)">Иоанн Васильев</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9A%D1%80%D1%8B%D0%BB%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Василий Крылов">Василий Крылов</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%9B%D0%BE%D1%81%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Лосев (страница отсутствует)">Сергий Лосев</a>, <a href="/w/index.php?title=%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9A%D1%80%D1%8B%D0%BC%D0%BA%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Василий Крымкин (страница отсутствует)">Василий Крымкин</a>, <a href="/w/index.php?title=%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB_%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Павел Никольский (страница отсутствует)">Павел Никольский</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%A1%D0%BA%D0%B2%D0%BE%D1%80%D1%86%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Скворцов (страница отсутствует)">Сергий Скворцов</a> • архидиакон <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B0%D1%84%D0%B8%D0%BC_(%D0%92%D0%B0%D0%B2%D0%B8%D0%BB%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Серафим (Вавилов) (страница отсутствует)">Серафим</a> • протодиаконы <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%A6%D0%B2%D0%B5%D1%82%D0%BA%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Николай Цветков">Николай Цветков</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%93%D0%BE%D1%80%D1%8E%D0%BD%D0%BE%D0%B2" class="mw-redirect" title="Николай Горюнов">Николай Горюнов</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%94%D1%80%D0%BE%D0%B7%D0%B4%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Алексий Дроздов (страница отсутствует)">Алексий Дроздов</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%A2%D0%BE%D1%85%D1%82%D1%83%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Николай Тохтуев (страница отсутствует)">Николай Тохтуев</a> • диаконы <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%90%D1%80%D0%B8%D1%81%D1%82%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Николай Аристов">Николай Аристов</a>, <a href="/w/index.php?title=%D0%95%D0%BB%D0%B8%D1%81%D0%B5%D0%B9_%D0%A8%D1%82%D0%BE%D0%BB%D1%8C%D0%B4%D0%B5%D1%80&amp;action=edit&amp;redlink=1" class="new" title="Елисей Штольдер (страница отсутствует)">Елисей Штольдер</a>, <a href="/w/index.php?title=%D0%94%D0%B8%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%A2%D1%80%D0%BE%D0%B8%D1%86%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Димитрий Троицкий (страница отсутствует)">Димитрий Троицкий</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%A5%D1%80%D0%B5%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Хренов (страница отсутствует)">Иоанн Хренов</a>, <a href="/w/index.php?title=%D0%A1%D0%B8%D0%BC%D0%B5%D0%BE%D0%BD_%D0%9A%D1%80%D0%B5%D1%87%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Симеон Кречков (страница отсутствует)">Симеон Кречков</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D1%81%D0%B8%D1%84_%D0%A1%D1%87%D0%B5%D0%BD%D1%81%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit&amp;redlink=1" class="new" title="Иосиф Сченснович (страница отсутствует)">Иосиф Сченснович</a>, <a href="/w/index.php?title=%D0%A1%D0%B8%D0%BC%D0%B5%D0%BE%D0%BD_%D0%9A%D1%83%D0%BB%D1%8F%D0%BC%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Симеон Кулямин (страница отсутствует)">Симеон Кулямин</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%97%D0%B0%D0%BF%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect" title="Николай Запольский">Николай Запольский</a>, <a href="/w/index.php?title=%D0%93%D0%B0%D0%B2%D1%80%D0%B8%D0%B8%D0%BB_%D0%90%D1%80%D1%85%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Гавриил Архангельский (страница отсутствует)">Гавриил Архангельский</a>, <a href="/w/index.php?title=%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80_%D0%A1%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Феодор Смирнов (страница отсутствует)">Феодор Смирнов</a>, <a href="/wiki/%D0%9F%D0%B5%D1%82%D1%80_%D0%A2%D1%80%D0%BE%D0%B8%D1%86%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Петр Троицкий">Петр Троицкий</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%A6%D0%B2%D0%B5%D1%82%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Цветков (страница отсутствует)">Сергий Цветков</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%A1%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Смирнов (страница отсутствует)">Иоанн Смирнов</a>, <a href="/w/index.php?title=%D0%93%D1%80%D0%B8%D0%B3%D0%BE%D1%80%D0%B8%D0%B9_%D0%A1%D0%B0%D0%BC%D0%B0%D1%80%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Григорий Самарин (страница отсутствует)">Григорий Самарин</a>, <a href="/w/index.php?title=%D0%9B%D0%B5%D0%BE%D0%BD%D1%82%D0%B8%D0%B9_%D0%A1%D1%82%D1%80%D0%BE%D1%86%D1%8E%D0%BA&amp;action=edit&amp;redlink=1" class="new" title="Леонтий Строцюк (страница отсутствует)">Леонтий Строцюк</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%A8%D0%B8%D1%80%D0%BE%D0%B3%D0%BE%D1%80%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Николай Широгоров (страница отсутствует)">Николай Широгоров</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%90%D1%81%D1%82%D0%B0%D1%85%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Астахов (страница отсутствует)">Сергий Астахов</a></div>
+</td>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background:#EDECD8;"><a href="/wiki/%D0%9F%D1%80%D0%B5%D0%BF%D0%BE%D0%B4%D0%BE%D0%B1%D0%BD%D0%BE%D0%BC%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%BA" title="Преподобномученик">Преподобномученики</a></th>
+<td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+<div style="padding:0em 0.25em">Новомученики <a href="/w/index.php?title=%D0%92%D0%B5%D0%BB._%D0%BA%D0%BD._%D0%95%D0%BB%D0%B8%D1%81%D0%B0%D0%B2%D0%B5%D1%82%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Вел. кн. Елисавета (страница отсутствует)">вел. кн. Елисавета</a> и <a href="/wiki/%D0%98%D0%BD%D0%BE%D0%BA%D0%B8%D0%BD%D1%8F_%D0%92%D0%B0%D1%80%D0%B2%D0%B0%D1%80%D0%B0" class="mw-redirect" title="Инокиня Варвара">инокиня Варвара</a> • схиархим. <a href="/wiki/%D0%98%D0%B3%D0%BD%D0%B0%D1%82%D0%B8%D0%B9_(%D0%9B%D0%B5%D0%B1%D0%B5%D0%B4%D0%B5%D0%B2)" title="Игнатий (Лебедев)">Игнатий (Лебедев)</a> • архим. <a href="/w/index.php?title=%D0%93%D0%B0%D0%B2%D1%80%D0%B8%D0%B8%D0%BB_(%D0%AF%D1%86%D0%B8%D0%BA)&amp;action=edit&amp;redlink=1" class="new" title="Гавриил (Яцик) (страница отсутствует)">Гавриил (Яцик)</a>, <a href="/wiki/%D0%90%D0%BC%D0%B2%D1%80%D0%BE%D1%81%D0%B8%D0%B9_(%D0%90%D1%81%D1%82%D0%B0%D1%85%D0%BE%D0%B2)" title="Амвросий (Астахов)">Амвросий (Астахов)</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B0%D1%84%D0%B8%D0%BC_(%D0%A9%D0%B5%D0%BB%D0%BE%D0%BA%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Серафим (Щелоков) (страница отсутствует)">Серафим (Щелоков)</a>, <a href="/w/index.php?title=%D0%93%D0%B5%D1%80%D0%BC%D0%B0%D0%BD_(%D0%9F%D0%BE%D0%BB%D1%8F%D0%BD%D1%81%D0%BA%D0%B8%D0%B9)&amp;action=edit&amp;redlink=1" class="new" title="Герман (Полянский) (страница отсутствует)">Герман (Полянский)</a>, <a href="/wiki/%D0%9C%D0%B8%D0%BD%D0%B0_(%D0%A8%D0%B5%D0%BB%D0%B0%D0%B5%D0%B2)" title="Мина (Шелаев)">Мина (Шелаев)</a>, <a href="/wiki/%D0%98%D0%BE%D0%B0%D1%81%D0%B0%D1%84_(%D0%91%D0%BE%D0%B5%D0%B2)" title="Иоасаф (Боев)">Иоасаф (Боев)</a>, <a href="/wiki/%D0%9A%D1%80%D0%BE%D0%BD%D0%B8%D0%B4_(%D0%9B%D1%8E%D0%B1%D0%B8%D0%BC%D0%BE%D0%B2)" title="Кронид (Любимов)">Кронид (Любимов)</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BD_(%D0%91%D0%B5%D0%BB%D1%8F%D0%B5%D0%B2)" class="mw-redirect" title="Никон (Беляев)">Никон (Беляев)</a>, <a href="/w/index.php?title=%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_(%D0%92%D0%BE%D0%BB%D0%BA%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Владимир (Волков) (страница отсутствует)">Владимир (Волков)</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%B0%D0%BD%D0%BE%D1%80_(%D0%9C%D0%BE%D1%80%D0%BE%D0%B7%D0%BA%D0%B8%D0%BD)&amp;action=edit&amp;redlink=1" class="new" title="Никанор (Морозкин) (страница отсутствует)">Никанор (Морозкин)</a> • игумены <a href="/wiki/%D0%90%D1%84%D0%B0%D0%BD%D0%B0%D1%81%D0%B8%D0%B9_(%D0%95%D0%B3%D0%BE%D1%80%D0%BE%D0%B2)" title="Афанасий (Егоров)">Афанасий (Егоров)</a>, <a href="/w/index.php?title=%D0%9C%D0%B5%D1%84%D0%BE%D0%B4%D0%B8%D0%B9_(%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Мефодий (Иванов) (страница отсутствует)">Мефодий (Иванов)</a>, <a href="/w/index.php?title=%D0%9F%D0%B0%D1%85%D0%BE%D0%BC%D0%B8%D0%B9_(%D0%A2%D1%83%D1%80%D0%BA%D0%B5%D0%B2%D0%B8%D1%87)&amp;action=edit&amp;redlink=1" class="new" title="Пахомий (Туркевич) (страница отсутствует)">Пахомий (Туркевич)</a>, <a href="/wiki/%D0%92%D0%B0%D1%80%D0%BB%D0%B0%D0%B0%D0%BC_(%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9)" title="Варлаам (Никольский)">Варлаам (Никольский)</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D1%81%D0%B0%D1%84_(%D0%9A%D1%80%D1%8B%D0%BC%D0%B7%D0%B8%D0%BD)&amp;action=edit&amp;redlink=1" class="new" title="Иоасаф (Крымзин) (страница отсутствует)">Иоасаф (Крымзин)</a>, <a href="/w/index.php?title=%D0%95%D0%B2%D1%82%D0%B8%D1%85%D0%B8%D0%B9_(%D0%9A%D0%B0%D1%87%D1%83%D1%80)&amp;action=edit&amp;redlink=1" class="new" title="Евтихий (Качур) (страница отсутствует)">Евтихий (Качур)</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_(%D0%A1%D0%B0%D0%BB%D1%82%D1%8B%D0%BA%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Николай (Салтыков) (страница отсутствует)">Николай (Салтыков)</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D1%81%D0%B0%D1%84_(%D0%A8%D0%B0%D1%85%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Иоасаф (Шахов) (страница отсутствует)">Иоасаф (Шахов)</a> • игумения <a href="/w/index.php?title=%D0%90%D1%84%D0%B0%D0%BD%D0%B0%D1%81%D0%B8%D1%8F_(%D0%9B%D0%B5%D0%BF%D0%B5%D1%88%D0%BA%D0%B8%D0%BD%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Афанасия (Лепешкина) (страница отсутствует)">Афанасия (Лепешкина)</a> • иеросхим. <a href="/w/index.php?title=%D0%94%D0%B8%D0%BE%D0%BD%D0%B8%D1%81%D0%B8%D0%B9_(%D0%9F%D0%B5%D1%82%D1%83%D1%88%D0%BA%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Дионисий (Петушков) (страница отсутствует)">Дионисий (Петушков)</a> • иером. <a href="/w/index.php?title=%D0%9C%D0%B0%D0%BA%D0%B0%D1%80%D0%B8%D0%B9_(%D0%A2%D0%B5%D0%BB%D0%B5%D0%B3%D0%B8%D0%BD)&amp;action=edit&amp;redlink=1" class="new" title="Макарий (Телегин) (страница отсутствует)">Макарий (Телегин)</a>, <a href="/w/index.php?title=%D0%9C%D0%B0%D0%BA%D0%B0%D1%80%D0%B8%D0%B9_(%D0%9C%D0%BE%D1%80%D0%B6%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Макарий (Моржов) (страница отсутствует)">Макарий (Моржов)</a>, <a href="/w/index.php?title=%D0%9A%D0%B8%D0%BF%D1%80%D0%B8%D0%B0%D0%BD_(%D0%9D%D0%B5%D0%BB%D0%B8%D0%B4%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Киприан (Нелидов) (страница отсутствует)">Киприан (Нелидов)</a>, <a href="/w/index.php?title=%D0%98%D0%BB%D0%B0%D1%80%D0%B8%D0%BE%D0%BD_(%D0%93%D1%80%D0%BE%D0%BC%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Иларион (Громов) (страница отсутствует)">Иларион (Громов)</a>, <a href="/w/index.php?title=%D0%93%D0%B0%D0%B2%D1%80%D0%B8%D0%B8%D0%BB_(%D0%93%D1%83%D1%80)&amp;action=edit&amp;redlink=1" class="new" title="Гавриил (Гур) (страница отсутствует)">Гавриил (Гур)</a>, <a href="/wiki/%D0%90%D1%80%D0%B8%D1%81%D1%82%D0%B0%D1%80%D1%85_(%D0%97%D0%B0%D0%B3%D0%BB%D0%BE%D0%B4%D0%B8%D0%BD-%D0%9A%D0%BE%D0%BA%D0%BE%D1%80%D0%B5%D0%B2)" title="Аристарх (Заглодин-Кокорев)">Аристарх (Заглодин-Кокорев)</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_(%D0%9C%D0%B0%D0%BC%D0%BE%D0%BD%D1%82%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Петр (Мамонтов) (страница отсутствует)">Петр (Мамонтов)</a>, <a href="/w/index.php?title=%D0%98%D0%BB%D0%B0%D1%80%D0%B8%D0%BE%D0%BD_(%D0%9F%D0%B8%D1%81%D0%B0%D1%80%D0%B5%D1%86)&amp;action=edit&amp;redlink=1" class="new" title="Иларион (Писарец) (страница отсутствует)">Иларион (Писарец)</a>, <a href="/w/index.php?title=%D0%95%D0%B2%D1%84%D1%80%D0%BE%D1%81%D0%B8%D0%BD_(%D0%90%D0%BD%D1%82%D0%BE%D0%BD%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Евфросин (Антонов) (страница отсутствует)">Евфросин (Антонов)</a>, <a href="/w/index.php?title=%D0%93%D0%B5%D1%80%D0%B0%D1%81%D0%B8%D0%BC_(%D0%9C%D0%BE%D1%87%D0%B0%D0%BB%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Герасим (Мочалов) (страница отсутствует)">Герасим (Мочалов)</a>, <a href="/w/index.php?title=%D0%90%D0%BF%D0%BE%D0%BB%D0%BB%D0%BE%D1%81_(%D0%A4%D0%B5%D0%B4%D0%BE%D1%81%D0%B5%D0%B5%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Аполлос (Федосеев) (страница отсутствует)">Аполлос (Федосеев)</a>, <a href="/w/index.php?title=%D0%9A%D1%81%D0%B5%D0%BD%D0%BE%D1%84%D0%BE%D0%BD%D1%82_(%D0%91%D0%BE%D0%BD%D0%B4%D0%B0%D1%80%D0%B5%D0%BD%D0%BA%D0%BE)&amp;action=edit&amp;redlink=1" class="new" title="Ксенофонт (Бондаренко) (страница отсутствует)">Ксенофонт (Бондаренко)</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B0%D1%84%D0%B8%D0%BC_(%D0%9A%D1%80%D0%B5%D1%81%D1%82%D1%8C%D1%8F%D0%BD%D0%B8%D0%BD%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Серафим (Крестьянинов) (страница отсутствует)">Серафим (Крестьянинов)</a>, <a href="/w/index.php?title=%D0%94%D0%B0%D0%BD%D0%B0%D0%BA%D1%82_(%D0%9A%D0%B0%D0%BB%D0%B0%D1%88%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Данакт (Калашников) (страница отсутствует)">Данакт (Калашников)</a>, <a href="/w/index.php?title=%D0%9A%D0%BE%D1%81%D0%BC%D0%B0_(%D0%9C%D0%B0%D0%B3%D0%B4%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Косма (Магда) (страница отсутствует)">Косма (Магда)</a>, <a href="/w/index.php?title=%D0%90%D0%BD%D1%82%D0%B8%D0%BF%D0%B0_(%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Антипа (Кириллов) (страница отсутствует)">Антипа (Кириллов)</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_(%D0%91%D1%83%D0%BA%D0%B0%D1%88%D0%BA%D0%B8%D0%BD)&amp;action=edit&amp;redlink=1" class="new" title="Сергий (Букашкин) (страница отсутствует)">Сергий (Букашкин)</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BB_(%D0%A2%D1%8E%D1%82%D1%8E%D0%BA%D0%B8%D0%BD)&amp;action=edit&amp;redlink=1" class="new" title="Нил (Тютюкин) (страница отсутствует)">Нил (Тютюкин)</a>, <a href="/w/index.php?title=%D0%98%D0%BB%D0%B8%D1%8F_(%D0%92%D1%8F%D1%82%D0%BB%D0%B8%D0%BD)&amp;action=edit&amp;redlink=1" class="new" title="Илия (Вятлин) (страница отсутствует)">Илия (Вятлин)</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%BD%D0%B0_(%D0%A1%D0%B0%D0%BD%D0%BA%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Иона (Санков) (страница отсутствует)">Иона (Санков)</a>, <a href="/w/index.php?title=%D0%90%D0%BD%D0%B4%D1%80%D0%BE%D0%BD%D0%B8%D0%BA_(%D0%A1%D1%83%D1%80%D0%B8%D0%BA%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Андроник (Суриков) (страница отсутствует)">Андроник (Суриков)</a>, <a href="/w/index.php?title=%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80_(%D0%91%D0%BE%D0%B3%D0%BE%D1%8F%D0%B2%D0%BB%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9)&amp;action=edit&amp;redlink=1" class="new" title="Феодор (Богоявленский) (страница отсутствует)">Феодор (Богоявленский)</a> • иеродиаконы <a href="/w/index.php?title=%D0%A4%D0%B5%D0%BE%D1%84%D0%B0%D0%BD_(%D0%93%D1%80%D0%B0%D1%84%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Феофан (Графов) (страница отсутствует)">Феофан (Графов)</a>, <a href="/wiki/%D0%98%D0%BD%D0%BD%D0%BE%D0%BA%D0%B5%D0%BD%D1%82%D0%B8%D0%B9_(%D0%9C%D0%B0%D0%B7%D1%83%D1%80%D0%B8%D0%BD)" title="Иннокентий (Мазурин)">Иннокентий (Мазурин)</a> • схимонахини <a href="/w/index.php?title=%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB%D0%B0_(%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Михаила (Иванова) (страница отсутствует)">Михаила (Иванова)</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80%D0%B0_(%D0%A7%D0%B5%D1%80%D0%B2%D1%8F%D0%BA%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Александра (Червякова) (страница отсутствует)">Александра (Червякова)</a>, <a href="/w/index.php?title=%D0%A0%D0%B0%D1%84%D0%B0%D0%B8%D0%BB%D0%B0_(%D0%92%D0%B8%D1%88%D0%BD%D1%8F%D0%BA%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Рафаила (Вишнякова) (страница отсутствует)">Рафаила (Вишнякова)</a> • иноки <a href="/w/index.php?title=%D0%98%D0%B5%D1%80%D0%B5%D0%BC%D0%B8%D1%8F_(%D0%9B%D0%B5%D0%BE%D0%BD%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Иеремия (Леонов) (страница отсутствует)">Иеремия (Леонов)</a>, <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_(%D0%93%D0%B0%D0%B2%D1%80%D0%B8%D0%BD)" title="Алексий (Гаврин)">Алексий (Гаврин)</a>, <a href="/w/index.php?title=%D0%A2%D0%B0%D0%B2%D1%80%D0%B8%D0%BE%D0%BD_(%D0%A2%D0%BE%D0%BB%D0%BE%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Таврион (Толоконцев) (страница отсутствует)">Таврион (Толоконцев)</a>, <a href="/w/index.php?title=%D0%92%D0%B0%D1%80%D0%BB%D0%B0%D0%B0%D0%BC_(%D0%95%D1%84%D0%B8%D0%BC%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Варлаам (Ефимов) (страница отсутствует)">Варлаам (Ефимов)</a> • инокини <a href="/w/index.php?title=%D0%95%D0%B2%D0%B4%D0%BE%D0%BA%D0%B8%D1%8F_(%D0%91%D1%83%D1%87%D0%B8%D0%BD%D0%B5%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Евдокия (Бучинева) (страница отсутствует)">Евдокия (Бучинева)</a>, <a href="/w/index.php?title=%D0%A2%D0%B0%D1%82%D0%B8%D0%B0%D0%BD%D0%B0_(%D0%91%D0%B5%D1%81%D1%84%D0%B0%D0%BC%D0%B8%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F)&amp;action=edit&amp;redlink=1" class="new" title="Татиана (Бесфамильная) (страница отсутствует)">Татиана (Бесфамильная)</a>, <a href="/w/index.php?title=%D0%90%D0%BD%D1%82%D0%BE%D0%BD%D0%B8%D0%BD%D0%B0_(%D0%A1%D1%82%D0%B5%D0%BF%D0%B0%D0%BD%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Антонина (Степанова) (страница отсутствует)">Антонина (Степанова)</a>, <a href="/w/index.php?title=%D0%9C%D0%B0%D1%80%D0%B8%D1%8F_(%D0%93%D1%80%D0%BE%D1%88%D0%B5%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Мария (Грошева) (страница отсутствует)">Мария (Грошева)</a>, <a href="/w/index.php?title=%D0%9C%D0%B0%D1%82%D1%80%D0%BE%D0%BD%D0%B0_(%D0%93%D1%80%D0%BE%D1%88%D0%B5%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Матрона (Грошева) (страница отсутствует)">Матрона (Грошева)</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80%D0%B0_(%D0%A1%D0%B0%D0%BC%D0%BE%D0%B9%D0%BB%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Александра (Самойлова) (страница отсутствует)">Александра (Самойлова)</a>, <a href="/w/index.php?title=%D0%9C%D0%B0%D1%82%D1%80%D0%BE%D0%BD%D0%B0_(%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B5%D0%B5%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Матрона (Алексеева) (страница отсутствует)">Матрона (Алексеева)</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D0%B2%D0%B0%D1%81%D1%82%D0%B8%D0%B0%D0%BD%D0%B0_(%D0%90%D0%B3%D0%B5%D0%B5%D0%B2%D0%B0-%D0%97%D1%83%D0%B5%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Севастиана (Агеева-Зуева) (страница отсутствует)">Севастиана (Агеева-Зуева)</a>, <a href="/w/index.php?title=%D0%9C%D0%B0%D1%80%D0%B8%D1%8F_(%D0%A6%D0%B5%D0%B9%D1%82%D0%BB%D0%B8%D0%BD)&amp;action=edit&amp;redlink=1" class="new" title="Мария (Цейтлин) (страница отсутствует)">Мария (Цейтлин)</a>, <a href="/w/index.php?title=%D0%93%D0%B5%D1%80%D0%BC%D0%BE%D0%B3%D0%B5%D0%BD%D0%B0_(%D0%9A%D0%B0%D0%B4%D0%BE%D0%BC%D1%86%D0%B5%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Гермогена (Кадомцева) (страница отсутствует)">Гермогена (Кадомцева)</a> • послушник <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_(%D0%9A%D1%80%D0%B5%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Сергий (Крестников) (страница отсутствует)">Сергий (Крестников)</a> • послушницы <a href="/w/index.php?title=%D0%98%D1%80%D0%B8%D0%BD%D0%B0_(%D0%A4%D1%80%D0%BE%D0%BB%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Ирина (Фролова) (страница отсутствует)">Ирина (Фролова)</a>, <a href="/wiki/%D0%A2%D0%B0%D1%82%D0%B8%D0%B0%D0%BD%D0%B0_(%D0%93%D1%80%D0%B8%D0%B1%D0%BA%D0%BE%D0%B2%D0%B0)" class="mw-redirect" title="Татиана (Грибкова)">Татиана (Грибкова)</a>, <a href="/w/index.php?title=%D0%A2%D0%B0%D1%82%D0%B8%D0%B0%D0%BD%D0%B0_(%D0%A4%D0%BE%D0%BC%D0%B8%D1%87%D0%B5%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Татиана (Фомичева) (страница отсутствует)">Татиана (Фомичева)</a>, <a href="/w/index.php?title=%D0%9C%D0%B0%D1%80%D0%B8%D1%8F_(%D0%96%D1%83%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Мария (Журавлева) (страница отсутствует)">Мария (Журавлева)</a>, <a href="/w/index.php?title=%D0%90%D0%BD%D0%B0%D1%81%D1%82%D0%B0%D1%81%D0%B8%D1%8F_%D0%A2%D0%B8%D1%82%D0%BE%D0%B2%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Анастасия Титова (страница отсутствует)">Анастасия Титова</a>, <a href="/w/index.php?title=%D0%95%D0%B2%D0%B4%D0%BE%D0%BA%D0%B8%D1%8F_(%D0%9A%D1%83%D0%B7%D1%8C%D0%BC%D0%B8%D0%BD%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Евдокия (Кузьминова) (страница отсутствует)">Евдокия (Кузьминова)</a>, <a href="/wiki/%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0_(%D0%A7%D0%B5%D1%80%D0%BA%D0%B0%D1%81%D0%BE%D0%B2%D0%B0)" class="mw-redirect" title="Екатерина (Черкасова)">Екатерина (Черкасова)</a>, <a href="/w/index.php?title=%D0%90%D0%BD%D0%BD%D0%B0_(%D0%95%D1%84%D1%80%D0%B5%D0%BC%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Анна (Ефремова) (страница отсутствует)">Анна (Ефремова)</a>, <a href="/w/index.php?title=%D0%90%D0%BD%D0%BD%D0%B0_(%D0%9A%D0%BE%D1%80%D0%BD%D0%B5%D0%B5%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Анна (Корнеева) (страница отсутствует)">Анна (Корнеева)</a>, <a href="/w/index.php?title=%D0%92%D0%B5%D1%80%D0%B0_(%D0%9C%D0%BE%D1%80%D0%BE%D0%B7%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Вера (Морозова) (страница отсутствует)">Вера (Морозова)</a>, <a href="/w/index.php?title=%D0%98%D1%80%D0%B8%D0%BD%D0%B0_(%D0%A5%D0%B2%D0%BE%D1%81%D1%82%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Ирина (Хвостова) (страница отсутствует)">Ирина (Хвостова)</a>, <a href="/w/index.php?title=%D0%A1%D0%BE%D1%84%D0%B8%D1%8F_(%D0%A1%D0%B5%D0%BB%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D1%82%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="София (Селиверстова) (страница отсутствует)">София (Селиверстова)</a>, <a href="/w/index.php?title=%D0%9F%D0%B0%D1%80%D0%B0%D1%81%D0%BA%D0%B5%D0%B2%D0%B0_(%D0%9C%D0%B0%D0%BA%D0%B0%D1%80%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Параскева (Макарова) (страница отсутствует)">Параскева (Макарова)</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80%D0%B0_(%D0%94%D1%8C%D1%8F%D1%87%D0%BA%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Александра (Дьячкова) (страница отсутствует)">Александра (Дьячкова)</a>, <a href="/wiki/%D0%90%D0%BD%D0%BD%D0%B0_(%D0%9C%D0%B0%D0%BA%D0%B0%D0%BD%D0%B4%D0%B8%D0%BD%D0%B0)" title="Анна (Макандина)">Анна (Макандина)</a>, <a href="/wiki/%D0%94%D0%B0%D1%80%D0%B8%D1%8F_(%D0%97%D0%B0%D0%B9%D1%86%D0%B5%D0%B2%D0%B0)" title="Дария (Зайцева)">Дария (Зайцева)</a>, <a href="/w/index.php?title=%D0%9C%D0%B0%D1%82%D1%80%D0%BE%D0%BD%D0%B0_(%D0%9C%D0%B0%D0%BA%D0%B0%D0%BD%D0%B4%D0%B8%D0%BD%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Матрона (Макандина) (страница отсутствует)">Матрона (Макандина)</a>, <a href="/w/index.php?title=%D0%90%D0%BD%D0%BD%D0%B0_(%D0%93%D0%BE%D1%80%D0%BE%D1%85%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Анна (Горохова) (страница отсутствует)">Анна (Горохова)</a>, <a href="/w/index.php?title=%D0%95%D0%B2%D0%B4%D0%BE%D0%BA%D0%B8%D1%8F_(%D0%A1%D0%B8%D0%BD%D0%B8%D1%86%D1%8B%D0%BD%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Евдокия (Синицына) (страница отсутствует)">Евдокия (Синицына)</a>, <a href="/wiki/%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B0_(%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D0%B8%D0%BD%D0%BE%D0%B2%D0%B0)" title="Екатерина (Константинова)">Екатерина (Константинова)</a>, <a href="/w/index.php?title=%D0%9A%D1%81%D0%B5%D0%BD%D0%B8%D1%8F_(%D0%9F%D0%B5%D1%82%D1%80%D1%83%D1%85%D0%B8%D0%BD%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Ксения (Петрухина) (страница отсутствует)">Ксения (Петрухина)</a>, <a href="/w/index.php?title=%D0%9D%D0%B0%D1%82%D0%B0%D0%BB%D0%B8%D1%8F_%D0%A3%D0%BB%D1%8C%D1%8F%D0%BD%D0%BE%D0%B2%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Наталия Ульянова (страница отсутствует)">Наталия Ульянова</a>, <a href="/w/index.php?title=%D0%90%D0%BD%D0%B0%D1%81%D1%82%D0%B0%D1%81%D0%B8%D1%8F_(%D0%91%D0%BE%D0%B1%D0%BA%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Анастасия (Бобкова) (страница отсутствует)">Анастасия (Бобкова)</a>, <a href="/w/index.php?title=%D0%9C%D0%B0%D1%80%D0%B8%D1%8F_(%D0%9C%D0%B0%D0%BC%D0%BE%D0%BD%D1%82%D0%BE%D0%B2%D0%B0-%D0%A8%D0%B0%D1%88%D0%B8%D0%BD%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Мария (Мамонтова-Шашина (страница отсутствует)">Мария (Мамонтова-Шашина</a>), <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80%D0%B0_%D0%A5%D0%B2%D0%BE%D1%80%D0%BE%D1%81%D1%82%D1%8F%D0%BD%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Александра Хворостянникова (страница отсутствует)">Александра Хворостянникова</a></div>
+</td>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background:#EDECD8;"><a href="/wiki/%D0%9C%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%BA" title="Мученик">Мученики</a></th>
+<td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;background:#f0f0f0;">
+<div style="padding:0em 0.25em"><a href="/wiki/%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%92%D1%81%D0%B5%D0%B2%D0%BE%D0%BB%D0%BE%D0%B4%D0%BE%D0%B2%D0%B8%D1%87" title="Михаил Всеволодович">Князь Михаил Всеволодович Чёрный</a> и <a href="/w/index.php?title=%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80_%D0%A7%D0%B5%D1%80%D0%BD%D0%B8%D0%B3%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Феодор Черниговский (страница отсутствует)">боярин Феодор Черниговские</a> • Новомученики мчч. <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%92%D0%B0%D1%80%D0%B6%D0%B0%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Николай Варжанский (страница отсутствует)">Николай Варжанский</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%A2%D0%B8%D1%85%D0%BE%D0%BC%D0%B8%D1%80%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Сергий Тихомиров (страница отсутствует)">Сергий Тихомиров</a>, <a href="/w/index.php?title=%D0%98%D0%B3%D0%BD%D0%B0%D1%82%D0%B8%D0%B9_%D0%9C%D0%B0%D1%80%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Игнатий Марков (страница отсутствует)">Игнатий Марков</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%AE%D0%B4%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Петр Юдин (страница отсутствует)">Петр Юдин</a>, <a href="/w/index.php?title=%D0%A1%D0%B8%D0%BC%D0%B5%D0%BE%D0%BD_%D0%A2%D1%83%D1%80%D0%BA%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Симеон Туркин (страница отсутствует)">Симеон Туркин</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%97%D0%BE%D0%BB%D0%BE%D1%82%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Золотов (страница отсутствует)">Иоанн Золотов</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%93%D1%83%D1%81%D0%B5%D0%B2" class="mw-redirect mw-disambig" title="Николай Гусев">Николай Гусев</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%A1%D0%B5%D1%80%D0%B5%D0%B1%D1%80%D0%B5%D0%BD%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Алексий Серебренников (страница отсутствует)">Алексий Серебренников</a>, <a href="/w/index.php?title=%D0%9C%D0%B0%D1%82%D1%84%D0%B5%D0%B9_%D0%A1%D0%BE%D0%BB%D0%BE%D0%B2%D1%8C%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Матфей Соловьев (страница отсутствует)">Матфей Соловьев</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%90%D1%80%D1%82%D0%B5%D0%BC%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Артемов (страница отсутствует)">Иоанн Артемов</a>, <a href="/w/index.php?title=%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80_%D0%A4%D1%80%D0%BE%D0%BB%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Виктор Фролов (страница отсутствует)">Виктор Фролов</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%A0%D1%8B%D0%B1%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Рыбин (страница отсутствует)">Иоанн Рыбин</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%9A%D1%83%D0%B7%D1%8C%D0%BC%D0%B8%D0%BD" class="mw-redirect mw-disambig" title="Николай Кузьмин">Николай Кузьмин</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%A0%D0%B5%D0%B9%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Николай Рейн (страница отсутствует)">Николай Рейн</a>, <a href="/w/index.php?title=%D0%98%D0%B0%D0%BA%D0%BE%D0%B2_%D0%91%D0%BB%D0%B0%D1%82%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иаков Блатов (страница отсутствует)">Иаков Блатов</a>, <a href="/w/index.php?title=%D0%93%D0%B0%D0%B2%D1%80%D0%B8%D0%B8%D0%BB_%D0%91%D0%B5%D0%B7%D1%84%D0%B0%D0%BC%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Гавриил Безфамильный (страница отсутствует)">Гавриил Безфамильный</a>, <a href="/w/index.php?title=%D0%A2%D0%B8%D0%BC%D0%BE%D1%84%D0%B5%D0%B9_%D0%9A%D1%83%D1%87%D0%B5%D1%80%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Тимофей Кучеров (страница отсутствует)">Тимофей Кучеров</a>, <a href="/w/index.php?title=%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB_%D0%9A%D1%83%D0%B7%D0%BE%D0%B2%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Павел Кузовков (страница отсутствует)">Павел Кузовков</a>, <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%A6%D0%B0%D1%80%D0%B0%D0%BF%D0%BA%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Петр Царапкин (страница отсутствует)">Петр Царапкин</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%95%D0%BC%D0%B5%D0%BB%D1%8C%D1%8F%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Емельянов (страница отсутствует)">Иоанн Емельянов</a>, <a href="/wiki/%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%9D%D0%BE%D0%B2%D0%BE%D1%81%D0%B5%D0%BB%D0%BE%D0%B2" class="mw-redirect" title="Михаил Новоселов">Михаил Новоселов</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Василий Иванов">Василий Иванов</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%A8%D1%83%D0%B2%D0%B0%D0%BB%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Шувалов (страница отсутствует)">Иоанн Шувалов</a>, <a href="/wiki/%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB_%D0%A1%D0%BE%D0%BA%D0%BE%D0%BB%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Павел Соколов">Павел Соколов</a>, <a href="/w/index.php?title=%D0%A1%D1%82%D0%B5%D1%84%D0%B0%D0%BD_%D0%A4%D1%80%D0%B0%D0%BD%D1%82%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Стефан Франтов (страница отсутствует)">Стефан Франтов</a>, <a href="/w/index.php?title=%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%A1%D1%82%D1%80%D0%BE%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Михаил Строев (страница отсутствует)">Михаил Строев</a>, <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%A1%D0%BA%D0%BE%D1%80%D0%BE%D0%B1%D0%BE%D0%B3%D0%B0%D1%82%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Алексий Скоробогатов (страница отсутствует)">Алексий Скоробогатов</a>, <a href="/w/index.php?title=%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%90%D1%80%D1%85%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Сергий Архангельский (страница отсутствует)">Сергий Архангельский</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%9A%D0%BE%D0%BF%D0%BD%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Николай Копнинский (страница отсутствует)">Николай Копнинский</a>, <a href="/wiki/%D0%9F%D0%B5%D1%82%D1%80_%D0%A2%D1%80%D0%BE%D0%B8%D1%86%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Петр Троицкий">Петр Троицкий</a>, <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%9C%D0%B0%D0%BB%D1%8B%D1%88%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Малышев (страница отсутствует)">Иоанн Малышев</a>, <a href="/w/index.php?title=%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%80_%D0%93%D1%83%D1%81%D0%B5%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Феодор Гусев (страница отсутствует)">Феодор Гусев</a>, <a href="/wiki/%D0%9F%D0%B5%D1%82%D1%80_%D0%98%D0%B3%D0%BD%D0%B0%D1%82%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Петр Игнатов">Петр Игнатов</a>, <a href="/w/index.php?title=%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%90%D0%BC%D0%B5%D0%BB%D1%8E%D1%88%D0%BA%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Михаил Амелюшкин (страница отсутствует)">Михаил Амелюшкин</a>, <a href="/w/index.php?title=%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%92%D0%B4%D0%BE%D0%B2%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Дмитрий Вдовин (страница отсутствует)">Дмитрий Вдовин</a>, <a href="/wiki/%D0%91%D0%BE%D1%80%D0%B8%D1%81_%D0%A3%D1%81%D0%BF%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9" class="mw-redirect mw-disambig" title="Борис Успенский">Борис Успенский</a> • мцц. <a href="/w/index.php?title=%D0%A2%D0%B0%D1%82%D0%B8%D0%B0%D0%BD%D0%B0_%D0%93%D1%80%D0%B8%D0%BC%D0%B1%D0%BB%D0%B8%D1%82&amp;action=edit&amp;redlink=1" class="new" title="Татиана Гримблит (страница отсутствует)">Татиана Гримблит</a>, <a href="/w/index.php?title=%D0%90%D0%BF%D0%BE%D0%BB%D0%BB%D0%B8%D0%BD%D0%B0%D1%80%D0%B8%D1%8F_%D0%A2%D1%83%D0%BF%D0%B8%D1%86%D1%8B%D0%BD%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Аполлинария Тупицына (страница отсутствует)">Аполлинария Тупицына</a>, <a href="/w/index.php?title=%D0%95%D0%BB%D0%B8%D1%81%D0%B0%D0%B2%D0%B5%D1%82%D0%B0_%D0%9A%D1%83%D1%80%D0%B0%D0%BD%D0%BE%D0%B2%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Елисавета Куранова (страница отсутствует)">Елисавета Куранова</a>, <a href="/w/index.php?title=%D0%9C%D0%B0%D1%80%D0%B8%D1%8F_%D0%92%D0%BE%D0%BB%D0%BD%D1%83%D1%85%D0%B8%D0%BD%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Мария Волнухина (страница отсутствует)">Мария Волнухина</a>, <a href="/w/index.php?title=%D0%9D%D0%B0%D0%B4%D0%B5%D0%B6%D0%B4%D0%B0_%D0%90%D0%B6%D0%B3%D0%B5%D1%80%D0%B5%D0%B2%D0%B8%D1%87&amp;action=edit&amp;redlink=1" class="new" title="Надежда Ажгеревич (страница отсутствует)">Надежда Ажгеревич</a>, <a href="/w/index.php?title=%D0%95%D0%BB%D0%B8%D1%81%D0%B0%D0%B2%D0%B5%D1%82%D0%B0_%D0%9A%D1%80%D1%8B%D0%BC%D0%BE%D0%B2%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Елисавета Крымова (страница отсутствует)">Елисавета Крымова</a>, <a href="/w/index.php?title=%D0%90%D0%BD%D0%BD%D0%B0_%D0%97%D0%B5%D1%80%D1%86%D0%B0%D0%BB%D0%BE%D0%B2%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Анна Зерцалова (страница отсутствует)">Анна Зерцалова</a>, <a href="/w/index.php?title=%D0%9C%D0%B0%D1%82%D1%80%D0%BE%D0%BD%D0%B0_%D0%9A%D0%BE%D0%BD%D1%8E%D1%85%D0%BE%D0%B2%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Матрона Конюхова (страница отсутствует)">Матрона Конюхова</a>, <a href="/w/index.php?title=%D0%9C%D0%B8%D0%BB%D0%B8%D1%86%D0%B0_%D0%9A%D1%83%D0%B2%D1%88%D0%B8%D0%BD%D0%BE%D0%B2%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Милица Кувшинова (страница отсутствует)">Милица Кувшинова</a>, <a href="/w/index.php?title=%D0%9E%D0%BB%D1%8C%D0%B3%D0%B0_%D0%95%D0%B2%D0%B4%D0%BE%D0%BA%D0%B8%D0%BC%D0%BE%D0%B2%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Ольга Евдокимова (страница отсутствует)">Ольга Евдокимова</a>, <a href="/w/index.php?title=%D0%92%D0%B0%D1%80%D0%B2%D0%B0%D1%80%D0%B0_%D0%9B%D0%BE%D1%81%D0%B5%D0%B2%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Варвара Лосева (страница отсутствует)">Варвара Лосева</a>, <a href="/w/index.php?title=%D0%95%D0%BB%D0%B8%D1%81%D0%B0%D0%B2%D0%B5%D1%82%D0%B0_%D0%A2%D0%B8%D0%BC%D0%BE%D1%85%D0%B8%D0%BD%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Елисавета Тимохина (страница отсутствует)">Елисавета Тимохина</a>, <a href="/w/index.php?title=%D0%98%D1%80%D0%B8%D0%BD%D0%B0_%D0%A1%D0%BC%D0%B8%D1%80%D0%BD%D0%BE%D0%B2%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Ирина Смирнова (страница отсутствует)">Ирина Смирнова</a>, <a href="/w/index.php?title=%D0%9D%D0%B0%D0%B4%D0%B5%D0%B6%D0%B4%D0%B0_%D0%90%D0%B1%D0%B1%D0%B0%D0%BA%D1%83%D0%BC%D0%BE%D0%B2%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Надежда Аббакумова (страница отсутствует)">Надежда Аббакумова</a>, <a href="/w/index.php?title=%D0%95%D0%B2%D0%B4%D0%BE%D0%BA%D0%B8%D1%8F_%D0%A1%D0%B0%D1%84%D1%80%D0%BE%D0%BD%D0%BE%D0%B2%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Евдокия Сафронова (страница отсутствует)">Евдокия Сафронова</a></div>
+</td>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background:#EDECD8;"><a href="/wiki/%D0%A1%D0%B2%D1%8F%D1%89%D0%B5%D0%BD%D0%BD%D0%BE%D0%B8%D1%81%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA" class="mw-redirect" title="Священноисповедник">Священноисповедники</a></th>
+<td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+<div style="padding:0em 0.25em">еп. <a href="/wiki/%D0%90%D0%BC%D0%B2%D1%80%D0%BE%D1%81%D0%B8%D0%B9_(%D0%9F%D0%BE%D0%BB%D1%8F%D0%BD%D1%81%D0%BA%D0%B8%D0%B9)" title="Амвросий (Полянский)">Амвросий Каменец-Подольский</a>, <a href="/wiki/%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80_(%D0%9E%D1%81%D1%82%D1%80%D0%BE%D0%B2%D0%B8%D0%B4%D0%BE%D0%B2)" title="Виктор (Островидов)">Виктор Глазовский</a>, <a href="/wiki/%D0%A4%D0%B5%D0%BE%D0%B4%D0%BE%D1%81%D0%B8%D0%B9_(%D0%93%D0%B0%D0%BD%D0%B8%D1%86%D0%BA%D0%B8%D0%B9)" title="Феодосий (Ганицкий)">Феодосий Коломенский</a>, <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_(%D0%9F%D1%80%D0%B5%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9)" class="mw-disambig" title="Василий (Преображенский)">Василий Кинешемский</a>, <a href="/wiki/%D0%90%D1%84%D0%B0%D0%BD%D0%B0%D1%81%D0%B8%D0%B9_(%D0%A1%D0%B0%D1%85%D0%B0%D1%80%D0%BE%D0%B2)" title="Афанасий (Сахаров)">Афанасий Ковровский</a> • прот. <a href="/w/index.php?title=%D0%9F%D0%B5%D1%82%D1%80_%D0%A0%D0%BE%D0%B7%D0%B0%D0%BD%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Петр Розанов (страница отсутствует)">Петр Розанов</a>, <a href="/w/index.php?title=%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B9_%D0%9F%D0%BE%D1%81%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Николай Постников (страница отсутствует)">Николай Постников</a>, <a href="/w/index.php?title=%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD_%D0%9C%D0%B5%D0%B4%D0%B2%D0%B5%D0%B4%D1%8C_(%D0%B2_%D0%BC%D0%BE%D0%BD%D0%B0%D1%88%D0%B5%D1%81%D1%82%D0%B2%D0%B5_%D0%98%D0%BE%D1%81%D0%B8%D1%84)&amp;action=edit&amp;redlink=1" class="new" title="Роман Медведь (в монашестве Иосиф) (страница отсутствует)">Роман Медведь (в монашестве Иосиф)</a> • пресвитеры <a href="/w/index.php?title=%D0%9C%D0%B8%D1%85%D0%B0%D0%B8%D0%BB_%D0%9C%D0%B0%D1%80%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Михаил Марков (страница отсутствует)">Михаил Марков</a>, <a href="/w/index.php?title=%D0%94%D0%B8%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%9A%D1%80%D1%8E%D1%87%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Димитрий Крючков (страница отсутствует)">Димитрий Крючков</a></div>
+</td>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background:#EDECD8;"><a href="/wiki/%D0%9F%D1%80%D0%B5%D0%BF%D0%BE%D0%B4%D0%BE%D0%B1%D0%BD%D0%BE%D0%B8%D1%81%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA" class="mw-redirect" title="Преподобноисповедник">Преподобноисповедники</a></th>
+<td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;background:#f0f0f0;">
+<div style="padding:0em 0.25em">архим.<a href="/w/index.php?title=%D0%93%D0%B5%D0%BE%D1%80%D0%B3%D0%B8%D0%B9_(%D0%9B%D0%B0%D0%B2%D1%80%D0%BE%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Георгий (Лавров) (страница отсутствует)">Георгий (Лавров)</a>, <a href="/wiki/%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_(%D0%A1%D1%80%D0%B5%D0%B1%D1%80%D1%8F%D0%BD%D1%81%D0%BA%D0%B8%D0%B9)" title="Сергий (Сребрянский)">Сергий (Сребрянский)</a>, <a href="/w/index.php?title=%D0%93%D0%B0%D0%B2%D1%80%D0%B8%D0%B8%D0%BB_(%D0%98%D0%B3%D0%BE%D1%88%D0%BA%D0%B8%D0%BD)&amp;action=edit&amp;redlink=1" class="new" title="Гавриил (Игошкин) (страница отсутствует)">Гавриил (Игошкин)</a> • иером. <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BD_%D0%9E%D0%BF%D1%82%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9" title="Никон Оптинский">Никон Оптинский</a> • инокиня <a href="/w/index.php?title=%D0%9F%D0%B0%D1%80%D0%B0%D1%81%D0%BA%D0%B5%D0%B2%D0%B0_(%D0%9C%D0%B0%D1%82%D0%B8%D0%B5%D1%88%D0%B8%D0%BD%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Параскева (Матиешина) (страница отсутствует)">Параскева (Матиешина)</a></div>
+</td>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background:#EDECD8;"><a href="/wiki/%D0%98%D1%81%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%BD%D0%B8%D0%BA" title="Исповедник">Исповедники</a></th>
+<td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+<div style="padding:0em 0.25em">игумен <a href="/w/index.php?title=%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_(%D0%A2%D0%B5%D1%80%D0%B5%D0%BD%D1%82%D1%8C%D0%B5%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Владимир (Терентьев) (страница отсутствует)">Владимир (Терентьев)</a> • иером.<a href="/w/index.php?title=%D0%90%D1%80%D0%B5%D1%84%D0%B0_(%D0%9C%D0%B8%D1%82%D1%80%D0%B5%D0%BD%D0%B8%D0%BD)&amp;action=edit&amp;redlink=1" class="new" title="Арефа (Митренин) (страница отсутствует)">Арефа (Митренин)</a> • иерей <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%94%D0%B5%D1%80%D0%B6%D0%B0%D0%B2%D0%B8%D0%BD&amp;action=edit&amp;redlink=1" class="new" title="Александр Державин (страница отсутствует)">Александр Державин</a> • диакон <a href="/wiki/%D0%9F%D0%B0%D0%B2%D0%B5%D0%BB_%D0%9B%D1%8E%D0%B1%D0%B8%D0%BC%D0%BE%D0%B2" class="mw-redirect mw-disambig" title="Павел Любимов">Павел Любимов</a> • послушница <a href="/w/index.php?title=%D0%92%D0%B5%D1%80%D0%B0_(%D0%93%D1%80%D0%B0%D1%84%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Вера (Графова) (страница отсутствует)">Вера (Графова)</a> • <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%9B%D0%B5%D1%82%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Летников (страница отсутствует)">Иоанн Летников</a></div>
+</td>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background:#EDECD8;"><a href="/wiki/%D0%9F%D1%80%D0%B5%D0%BF%D0%BE%D0%B4%D0%BE%D0%B1%D0%BD%D1%8B%D0%B9" title="Преподобный">Преподобные</a></th>
+<td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;background:#f0f0f0;">
+<div style="padding:0em 0.25em"><a href="/wiki/%D0%90%D0%BD%D0%B4%D1%80%D0%BE%D0%BD%D0%B8%D0%BA_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9" title="Андроник Московский">Андроник</a>, <a href="/wiki/%D0%A1%D0%B0%D0%B2%D0%B2%D0%B0_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9" title="Савва Московский">Савва</a>, <a href="/w/index.php?title=%D0%92%D0%B0%D1%80%D1%81%D0%BE%D0%BD%D0%BE%D1%84%D0%B8%D1%8F_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F&amp;action=edit&amp;redlink=1" class="new" title="Варсонофия Московская (страница отсутствует)">Варсонофия</a>, <a href="/w/index.php?title=%D0%9A%D0%B0%D1%80%D0%BF_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Карп Московский (страница отсутствует)">Карп</a>, <a href="/w/index.php?title=%D0%A1%D1%82%D0%B5%D1%84%D0%B0%D0%BD_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Стефан Московский (страница отсутствует)">Стефан</a>, <a href="/wiki/%D0%95%D0%BB%D0%B5%D0%BD%D0%B0_(%D0%94%D0%B5%D0%B2%D0%BE%D1%87%D0%BA%D0%B8%D0%BD%D0%B0)" title="Елена (Девочкина)">Елена</a> и <a href="/wiki/%D0%95%D0%B2%D0%B4%D0%BE%D0%BA%D0%B8%D1%8F_%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B5%D0%B2%D0%BD%D0%B0" title="Евдокия Дмитриевна">Евфросиния</a> Московские • <a href="/wiki/%D0%90%D0%BD%D0%B4%D1%80%D0%B5%D0%B9_%D0%A0%D1%83%D0%B1%D0%BB%D1%91%D0%B2" title="Андрей Рублёв">Андрей Рублёв</a> • <a href="/wiki/%D0%94%D0%B0%D0%BD%D0%B8%D0%B8%D0%BB_%D0%A7%D1%91%D1%80%D0%BD%D1%8B%D0%B9" title="Даниил Чёрный">Даниил Чёрный</a> • <a href="/w/index.php?title=%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%A1%D0%BF%D0%B0%D1%81%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Александр Спасский (страница отсутствует)">Александр Спасский</a> • <a href="/w/index.php?title=%D0%92%D0%B0%D1%80%D1%84%D0%BE%D0%BB%D0%BE%D0%BC%D0%B5%D0%B9_%D0%A1%D0%B8%D0%BC%D0%BE%D0%BD%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Варфоломей Симоновский (страница отсутствует)">Варфоломей</a> и <a href="/w/index.php?title=%D0%98%D0%B3%D0%BD%D0%B0%D1%82%D0%B8%D0%B9_%D0%A1%D0%B8%D0%BC%D0%BE%D0%BD%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Игнатий Симоновский (страница отсутствует)">Игнатий</a> Симоновские • <a href="/wiki/%D0%A1%D0%B5%D1%80%D0%B3%D0%B8%D0%B9_%D0%A0%D0%B0%D0%B4%D0%BE%D0%BD%D0%B5%D0%B6%D1%81%D0%BA%D0%B8%D0%B9" title="Сергий Радонежский">Сергий</a>, <a href="/wiki/%D0%9D%D0%B8%D0%BA%D0%BE%D0%BD_%D0%A0%D0%B0%D0%B4%D0%BE%D0%BD%D0%B5%D0%B6%D1%81%D0%BA%D0%B8%D0%B9" title="Никон Радонежский">Никон</a>, <a href="/wiki/%D0%94%D0%B8%D0%BE%D0%BD%D0%B8%D1%81%D0%B8%D0%B9_%D0%A0%D0%B0%D0%B4%D0%BE%D0%BD%D0%B5%D0%B6%D1%81%D0%BA%D0%B8%D0%B9" title="Дионисий Радонежский">Дионисий</a> и <a href="/w/index.php?title=%D0%9C%D0%B8%D1%85%D0%B5%D0%B9_%D0%A0%D0%B0%D0%B4%D0%BE%D0%BD%D0%B5%D0%B6%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Михей Радонежский (страница отсутствует)">Михей</a> Радонежские • <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80_%D0%9F%D0%B5%D1%80%D0%B5%D1%81%D0%B2%D0%B5%D1%82" title="Александр Пересвет">Александр Пересвет</a> и <a href="/wiki/%D0%A0%D0%BE%D0%B4%D0%B8%D0%BE%D0%BD_%D0%9E%D1%81%D0%BB%D1%8F%D0%B1%D1%8F" title="Родион Ослябя">Андрей Ослябя</a> • <a href="/wiki/%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC_%D0%93%D1%80%D0%B5%D0%BA" title="Максим Грек">Максим Грек</a> • <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%97%D0%BB%D0%B0%D1%82%D0%BE%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Златой (страница отсутствует)">Иоанн Златой</a> • <a href="/w/index.php?title=%D0%90%D0%BD%D1%82%D0%BE%D0%BD%D0%B8%D0%B9_%D0%A7%D1%83%D0%B4%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Антоний Чудовский (страница отсутствует)">Антоний Чудовский</a> • <a href="/w/index.php?title=%D0%92%D0%B0%D1%80%D0%BB%D0%B0%D0%B0%D0%BC_%D0%A1%D0%B5%D1%80%D0%BF%D1%83%D1%85%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Варлаам Серпуховской (страница отсутствует)">Варлаам</a>, <a href="/w/index.php?title=%D0%93%D0%B5%D0%B4%D0%B5%D0%BE%D0%BD_%D0%A1%D0%B5%D1%80%D0%BF%D1%83%D1%85%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Гедеон Серпуховской (страница отсутствует)">Гедеон</a>, <a href="/w/index.php?title=%D0%94%D0%B0%D0%B2%D0%B8%D0%B4_%D0%A1%D0%B5%D1%80%D0%BF%D1%83%D1%85%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Давид Серпуховской (страница отсутствует)">Давид</a> и <a href="/w/index.php?title=%D0%92%D0%BB%D0%B0%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%91%D0%B5%D0%BB%D0%BE%D0%BF%D0%B5%D1%81%D0%BE%D1%86%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Владимир Белопесоцкий (страница отсутствует)">Владимир Белопесоцкий</a> Серпуховские • <a href="/wiki/%D0%A1%D0%B0%D0%B2%D0%B2%D0%B0_%D0%A1%D1%82%D0%BE%D1%80%D0%BE%D0%B6%D0%B5%D0%B2%D1%81%D0%BA%D0%B8%D0%B9" title="Савва Сторожевский">Савва Сторожевский</a> • <a href="/wiki/%D0%9C%D0%B5%D1%84%D0%BE%D0%B4%D0%B8%D0%B9_%D0%9F%D0%B5%D1%88%D0%BD%D0%BE%D1%88%D1%81%D0%BA%D0%B8%D0%B9" title="Мефодий Пешношский">Мефодий Пешношский</a> • <a href="/w/index.php?title=%D0%A1%D0%B0%D0%B2%D0%B2%D0%B0_%D0%A1%D1%82%D1%80%D0%BE%D0%BC%D1%8B%D0%BD%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Савва Стромынский (страница отсутствует)">Савва Стромынский</a> • <a href="/w/index.php?title=%D0%A0%D0%BE%D0%BC%D0%B0%D0%BD_%D0%9A%D0%B8%D1%80%D0%B6%D0%B0%D1%87%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Роман Киржачский (страница отсутствует)">Роман Киржачский</a> • <a href="/w/index.php?title=%D0%98%D1%83%D0%BB%D0%B8%D0%B0%D0%BD%D0%B8%D1%8F_%D0%B8_%D0%95%D0%B2%D0%BF%D1%80%D0%B0%D0%BA%D1%81%D0%B8%D1%8F&amp;action=edit&amp;redlink=1" class="new" title="Иулиания и Евпраксия (страница отсутствует)">Иулиания и Евпраксия</a> • <a href="/wiki/%D0%90%D1%84%D0%B0%D0%BD%D0%B0%D1%81%D0%B8%D0%B9_%D0%92%D1%8B%D1%81%D0%BE%D1%86%D0%BA%D0%B8%D0%B9_%D0%9C%D0%BB%D0%B0%D0%B4%D1%88%D0%B8%D0%B9" title="Афанасий Высоцкий Младший">Афанасий мл</a> и <a href="/wiki/%D0%90%D1%84%D0%B0%D0%BD%D0%B0%D1%81%D0%B8%D0%B9_%D0%92%D1%8B%D1%81%D0%BE%D1%86%D0%BA%D0%B8%D0%B9_%D0%A1%D1%82%D0%B0%D1%80%D1%88%D0%B8%D0%B9" title="Афанасий Высоцкий Старший">Афанасий ст</a> Высоцкие • <a href="/wiki/%D0%93%D1%80%D0%B8%D0%B3%D0%BE%D1%80%D0%B8%D0%B9_(%D0%B5%D0%BF%D0%B8%D1%81%D0%BA%D0%BE%D0%BF_%D0%9A%D0%BE%D0%BB%D0%BE%D0%BC%D0%B5%D0%BD%D1%81%D0%BA%D0%B8%D0%B9)" title="Григорий (епископ Коломенский)">Григорий Голутвинский</a> • <a href="/wiki/%D0%A1%D1%82%D0%B5%D1%84%D0%B0%D0%BD_%D0%9C%D0%B0%D1%85%D1%80%D0%B8%D1%89%D1%81%D0%BA%D0%B8%D0%B9" title="Стефан Махрищский">Стефан Махрищский</a> • <a href="/wiki/%D0%A4%D0%B5%D1%80%D0%B0%D0%BF%D0%BE%D0%BD%D1%82_%D0%91%D0%B5%D0%BB%D0%BE%D0%B7%D0%B5%D1%80%D1%81%D0%BA%D0%B8%D0%B9" title="Ферапонт Белозерский">Ферапонт</a> и <a href="/wiki/%D0%9A%D0%B8%D1%80%D0%B8%D0%BB%D0%BB_%D0%91%D0%B5%D0%BB%D0%BE%D0%B7%D0%B5%D1%80%D1%81%D0%BA%D0%B8%D0%B9" title="Кирилл Белозерский">Кирилл</a> Белозерские • <a href="/wiki/%D0%98%D0%BE%D1%81%D0%B8%D1%84_%D0%92%D0%BE%D0%BB%D0%BE%D1%86%D0%BA%D0%B8%D0%B9" title="Иосиф Волоцкий">Иосиф</a>, <a href="/wiki/%D0%A4%D0%BE%D1%82%D0%B8%D0%B9_%D0%92%D0%BE%D0%BB%D0%BE%D0%BA%D0%BE%D0%BB%D0%B0%D0%BC%D1%81%D0%BA%D0%B8%D0%B9" title="Фотий Волоколамский">Фотий</a>, <a href="/w/index.php?title=%D0%90%D0%B4%D1%80%D0%B8%D0%B0%D0%BD_%D0%92%D0%BE%D0%BB%D0%BE%D0%BA%D0%BE%D0%BB%D0%B0%D0%BC%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Адриан Волоколамский (страница отсутствует)">Адриан</a>, <a href="/w/index.php?title=%D0%97%D0%BE%D1%81%D0%B8%D0%BC%D0%B0_%D0%92%D0%BE%D0%BB%D0%BE%D0%BA%D0%BE%D0%BB%D0%B0%D0%BC%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Зосима Волоколамский (страница отсутствует)">Зосима</a> <a href="/w/index.php?title=%D0%9B%D0%B5%D0%B2%D0%BA%D0%B8%D0%B9_%D0%92%D0%BE%D0%BB%D0%BE%D0%BA%D0%BE%D0%BB%D0%B0%D0%BC%D1%81%D0%BA%D0%B8%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Левкий Волоколамский (страница отсутствует)">Левкий</a>, <a href="/w/index.php?title=%D0%93%D0%B5%D1%80%D0%B0%D1%81%D0%B8%D0%BC_%D0%A7%D1%91%D1%80%D0%BD%D1%8B%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Герасим Чёрный (страница отсутствует)">Герасим Чёрный</a> и <a href="/w/index.php?title=%D0%9A%D0%B0%D1%81%D1%81%D0%B8%D0%B0%D0%BD_%D0%91%D0%BE%D1%81%D0%BE%D0%B9&amp;action=edit&amp;redlink=1" class="new" title="Кассиан Босой (страница отсутствует)">Кассиан Босой</a> Волоколамские • <a href="/w/index.php?title=%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%A1%D0%BE%D0%BA%D0%BE%D0%BB%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9_(%D1%81%D0%B2%D1%8F%D1%82%D0%BE%D0%B9)&amp;action=edit&amp;redlink=1" class="new" title="Василий Соколовский (святой) (страница отсутствует)">Василий Соколовский</a> • <a href="/wiki/%D0%97%D0%BE%D1%81%D0%B8%D0%BC%D0%B0_(%D0%92%D0%B5%D1%80%D1%85%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9)" title="Зосима (Верховский)">Зосима</a> • <a href="/wiki/%D0%90%D0%BD%D1%82%D0%BE%D0%BD%D0%B8%D0%B9_%D0%9E%D0%BF%D1%82%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9" title="Антоний Оптинский">Антоний</a> и <a href="/w/index.php?title=%D0%98%D0%BE%D1%81%D0%B8%D1%84_%D0%9E%D0%BF%D1%82%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9_(%D0%9B%D0%B8%D1%82%D0%BE%D0%B2%D0%BA%D0%B8%D0%BD)&amp;action=edit&amp;redlink=1" class="new" title="Иосиф Оптинский (Литовкин) (страница отсутствует)">Иосиф</a> <a href="/wiki/%D0%90%D0%BD%D0%B0%D1%82%D0%BE%D0%BB%D0%B8%D0%B9_%D0%9E%D0%BF%D1%82%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9_(%D0%9F%D0%BE%D1%82%D0%B0%D0%BF%D0%BE%D0%B2)" class="mw-redirect" title="Анатолий Оптинский (Потапов)">Анатолий</a> Оптинские • <a href="/wiki/%D0%9F%D0%B8%D0%BC%D0%B5%D0%BD_%D0%A3%D0%B3%D1%80%D0%B5%D1%88%D1%81%D0%BA%D0%B8%D0%B9" title="Пимен Угрешский">Пимен Угрешский</a> • <a href="/w/index.php?title=%D0%90%D1%80%D0%B8%D1%81%D1%82%D0%BE%D0%BA%D0%BB%D0%B8%D0%B9_(%D0%90%D0%BC%D0%B2%D1%80%D0%BE%D1%81%D0%B8%D0%B5%D0%B2)&amp;action=edit&amp;redlink=1" class="new" title="Аристоклий (Амвросиев) (страница отсутствует)">Аристоклий Афонский</a> • <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_(%D0%A1%D0%BE%D0%BB%D0%BE%D0%B2%D1%8C%D0%B5%D0%B2)" class="mw-redirect" title="Алексий (Соловьев)">Алексий Зосимовский</a> • <a href="/w/index.php?title=%D0%A0%D0%B0%D1%85%D0%B8%D0%BB%D1%8C_%D0%91%D0%BE%D1%80%D0%BE%D0%B4%D0%B8%D0%BD%D1%81%D0%BA%D0%B0%D1%8F_(%D0%9A%D0%BE%D1%80%D0%BE%D1%82%D0%BA%D0%BE%D0%B2%D0%B0)&amp;action=edit&amp;redlink=1" class="new" title="Рахиль Бородинская (Короткова) (страница отсутствует)">Рахиль Бородинская</a></div>
+</td>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background:#EDECD8;"><a href="/wiki/%D0%91%D0%BB%D0%B0%D0%B6%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9" title="Блаженный">Блаженные</a></th>
+<td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+<div style="padding:0em 0.25em"><a href="/wiki/%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9" title="Максим Московский">Максим Московский</a> • <a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%91%D0%BB%D0%B0%D0%B6%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9" title="Василий Блаженный">Василий Блаженный</a> • <a href="/wiki/%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B8%D0%B9" title="Иоанн Московский">Иоанн Московский</a> • <a href="/w/index.php?title=%D0%98%D0%BE%D0%B0%D0%BD%D0%BD_%D0%9C%D0%BE%D0%B6%D0%B0%D0%B9%D1%81%D0%BA%D0%B8%D0%B9_(%D1%81%D0%B2%D1%8F%D1%82%D0%BE%D0%B9)&amp;action=edit&amp;redlink=1" class="new" title="Иоанн Можайский (святой) (страница отсутствует)">Иоанн Можайский</a> • <a href="/w/index.php?title=%D0%9C%D0%B0%D1%80%D1%84%D0%B0_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F&amp;action=edit&amp;redlink=1" class="new" title="Марфа Московская (страница отсутствует)">Марфа Московская</a> • <a href="/wiki/%D0%9C%D0%B0%D1%82%D1%80%D0%BE%D0%BD%D0%B0_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F" title="Матрона Московская">Матрона Московская</a></div>
+</td>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background:#EDECD8;"><a href="/wiki/%D0%91%D0%BB%D0%B0%D0%B3%D0%BE%D0%B2%D0%B5%D1%80%D0%BD%D1%8B%D0%B9" title="Благоверный">Благоверные</a></th>
+<td class="navbox-list navbox-even" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px;background:#f0f0f0;">
+<div style="padding:0em 0.25em"><a href="/wiki/%D0%94%D0%B0%D0%BD%D0%B8%D0%B8%D0%BB_%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80%D0%BE%D0%B2%D0%B8%D1%87" title="Даниил Александрович">Даниил Московский</a> • <a href="/wiki/%D0%98%D0%B2%D0%B0%D0%BD_I_%D0%94%D0%B0%D0%BD%D0%B8%D0%BB%D0%BE%D0%B2%D0%B8%D1%87_%D0%9A%D0%B0%D0%BB%D0%B8%D1%82%D0%B0" title="Иван I Данилович Калита">Иван Калита</a> • <a href="/wiki/%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87_%D0%94%D0%BE%D0%BD%D1%81%D0%BA%D0%BE%D0%B9" title="Дмитрий Иванович Донской">Дмитрий Донской</a> • <a href="/wiki/%D0%94%D0%BC%D0%B8%D1%82%D1%80%D0%B8%D0%B9_%D0%A3%D0%B3%D0%BB%D0%B8%D1%86%D0%BA%D0%B8%D0%B9" title="Дмитрий Углицкий">царевич Дмитрий</a> • <a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_I_%D0%98%D0%BE%D0%B0%D0%BD%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" class="mw-redirect" title="Фёдор I Иоаннович">Фёдор Иоаннович</a></div>
+</td>
+</tr>
+<tr style="height:2px">
+<td colspan="2"></td>
+</tr>
+<tr>
+<th scope="row" class="navbox-group" style="background:#EDECD8;"><a href="/wiki/%D0%9F%D1%80%D0%B0%D0%B2%D0%B5%D0%B4%D0%BD%D1%8B%D0%B9" class="mw-redirect" title="Праведный">Праведные</a></th>
+<td class="navbox-list navbox-odd" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px">
+<div style="padding:0em 0.25em"><a href="/wiki/%D0%92%D0%B0%D1%81%D0%B8%D0%BB%D0%B8%D0%B9_%D0%9F%D0%B0%D0%B2%D0%BB%D0%BE%D0%B2%D0%BE-%D0%9F%D0%BE%D1%81%D0%B0%D0%B4%D1%81%D0%BA%D0%B8%D0%B9" title="Василий Павлово-Посадский">Василий Павлово-Посадский</a> • <a href="/wiki/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B8%D0%B9_%D0%9C%D0%B5%D1%87%D1%91%D0%B2" class="mw-redirect" title="Алексий Мечёв">Алексий Мечёв</a></div>
+</td>
+</tr>
+</table>
+</td>
+</tr>
+</table>
+
+
+<!--
+NewPP limit report
+Parsed by mw1216
+Cached time: 20170130031231
+Cache expiry: 2592000
+Dynamic content: false
+CPU time usage: 0.764 seconds
+Real time usage: 0.996 seconds
+Preprocessor visited node count: 8497/1000000
+Preprocessor generated node count: 0/1500000
+Post‐expand include size: 240930/2097152 bytes
+Template argument size: 35242/2097152 bytes
+Highest expansion depth: 17/40
+Expensive parser function count: 28/500
+Lua time usage: 0.309/10.000 seconds
+Lua memory usage: 6.08 MB/50 MB
+-->
+<!--
+Transclusion expansion time report (%,ms,calls,template)
+100.00% 703.520 1 -total
+ 47.33% 332.961 1 Шаблон:Государственный_деятель2
+ 37.09% 260.955 35 Шаблон:Wikidata
+ 25.89% 182.109 1 Шаблон:Библиоинформация
+ 22.46% 157.994 16 Шаблон:If-wikidata
+ 17.38% 122.255 1 Шаблон:Государственный_деятель/Личные_данные
+ 5.51% 38.782 1 Шаблон:Примечания
+ 5.29% 37.184 5 Шаблон:Книга
+ 4.92% 34.639 3 Шаблон:Навигационная_таблица
+ 4.06% 28.528 1 Шаблон:Навигация
+-->
+
+<!-- Saved in parser cache with key ruwiki:pcache:idhash:54693-0!*!0!!ru!4!* and timestamp 20170130031230 and revision id 83139961
+ -->
+<noscript><img src="//ru.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;" /></noscript></div> <div class="printfooter">
+ Источник — «<a dir="ltr" href="https://ru.wikipedia.org/w/index.php?title=Фёдор_Иванович&amp;oldid=83139961">https://ru.wikipedia.org/w/index.php?title=Фёдор_Иванович&amp;oldid=83139961</a>» </div>
+ <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B8" title="Служебная:Категории">Категории</a>: <ul><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A0%D0%BE%D0%B4%D0%B8%D0%B2%D1%88%D0%B8%D0%B5%D1%81%D1%8F_31_%D0%BC%D0%B0%D1%8F" title="Категория:Родившиеся 31 мая">Родившиеся 31 мая</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A0%D0%BE%D0%B4%D0%B8%D0%B2%D1%88%D0%B8%D0%B5%D1%81%D1%8F_%D0%B2_1557_%D0%B3%D0%BE%D0%B4%D1%83" title="Категория:Родившиеся в 1557 году">Родившиеся в 1557 году</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D0%B5%D1%80%D1%81%D0%BE%D0%BD%D0%B0%D0%BB%D0%B8%D0%B8_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83" title="Категория:Персоналии по алфавиту">Персоналии по алфавиту</a></li><li><a href="/w/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A0%D0%BE%D0%B4%D0%B8%D0%B2%D1%88%D0%B8%D0%B5%D1%81%D1%8F_%D0%B2_%D1%83%D1%80%D0%BE%D1%87%D0%B8%D1%89%D0%B5_%D0%A1%D0%BE%D0%B1%D0%B8%D0%BB%D0%BA%D0%B0&amp;action=edit&amp;redlink=1" class="new" title="Категория:Родившиеся в урочище Собилка (страница отсутствует)">Родившиеся в урочище Собилка</a></li><li><a href="/w/index.php?title=%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A0%D0%BE%D0%B4%D0%B8%D0%B2%D1%88%D0%B8%D0%B5%D1%81%D1%8F_%D0%B2_%D0%9F%D0%B5%D1%80%D0%B5%D1%81%D0%BB%D0%B0%D0%B2%D0%BB%D0%B5-%D0%97%D0%B0%D1%81%D0%B5%D1%81%D1%81%D0%BA%D0%BE%D0%BC&amp;action=edit&amp;redlink=1" class="new" title="Категория:Родившиеся в Переславле-Засесском (страница отсутствует)">Родившиеся в Переславле-Засесском</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A3%D0%BC%D0%B5%D1%80%D1%88%D0%B8%D0%B5_17_%D1%8F%D0%BD%D0%B2%D0%B0%D1%80%D1%8F" title="Категория:Умершие 17 января">Умершие 17 января</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A3%D0%BC%D0%B5%D1%80%D1%88%D0%B8%D0%B5_%D0%B2_1598_%D0%B3%D0%BE%D0%B4%D1%83" title="Категория:Умершие в 1598 году">Умершие в 1598 году</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A3%D0%BC%D0%B5%D1%80%D1%88%D0%B8%D0%B5_%D0%B2_%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B5" title="Категория:Умершие в Москве">Умершие в Москве</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A0%D0%BE%D0%B4%D0%B8%D0%B2%D1%88%D0%B8%D0%B5%D1%81%D1%8F_%D0%B2_%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B5" title="Категория:Родившиеся в Москве">Родившиеся в Москве</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B5_%D1%86%D0%B0%D1%80%D0%B8" title="Категория:Русские цари">Русские цари</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A0%D1%8E%D1%80%D0%B8%D0%BA%D0%BE%D0%B2%D0%B8%D1%87%D0%B8_%D0%BF%D0%BE_%D0%B0%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D1%83" title="Категория:Рюриковичи по алфавиту">Рюриковичи по алфавиту</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D0%BE%D1%85%D0%BE%D1%80%D0%BE%D0%BD%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B2_%D0%90%D1%80%D1%85%D0%B0%D0%BD%D0%B3%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%BE%D0%BC_%D1%81%D0%BE%D0%B1%D0%BE%D1%80%D0%B5_%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D0%9A%D1%80%D0%B5%D0%BC%D0%BB%D1%8F" title="Категория:Похороненные в Архангельском соборе Московского Кремля">Похороненные в Архангельском соборе Московского Кремля</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%9A%D0%B0%D0%BD%D0%BE%D0%BD%D0%B8%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BA%D0%BD%D1%8F%D0%B7%D1%8C%D1%8F" title="Категория:Канонизированные князья">Канонизированные князья</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%94%D0%B0%D0%BD%D0%B8%D0%BB%D0%BE%D0%B2%D0%B8%D1%87%D0%B8_(%D0%A0%D1%8E%D1%80%D0%B8%D0%BA%D0%BE%D0%B2%D0%B8%D1%87%D0%B8)" title="Категория:Даниловичи (Рюриковичи)">Даниловичи (Рюриковичи)</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Скрытые категории: <ul><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D0%B8_%D1%81_%D0%BF%D0%B5%D1%80%D0%B5%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC_%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B8%D0%B7_%D0%92%D0%B8%D0%BA%D0%B8%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85" title="Категория:Википедия:Статьи с переопределением значения из Викиданных">Википедия:Статьи с переопределением значения из Викиданных</a></li><li><a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A1%D1%81%D1%8B%D0%BB%D0%BA%D0%B0_%D0%BD%D0%B0_%D0%92%D0%B8%D0%BA%D0%B8%D1%82%D0%B5%D0%BA%D1%83_%D0%BD%D0%B5%D0%BF%D0%BE%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE_%D0%B2_%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B5" title="Категория:Википедия:Ссылка на Викитеку непосредственно в статье">Википедия:Ссылка на Викитеку непосредственно в статье</a></li></ul></div></div> <div class="visualClear"></div>
+ </div>
+ </div>
+ <div id="mw-navigation">
+ <h2>Навигация</h2>
+
+ <div id="mw-head">
+ <div id="p-personal" role="navigation" class="" aria-labelledby="p-personal-label">
+ <h3 id="p-personal-label">Персональные инструменты</h3>
+ <ul>
+ <li id="pt-anonuserpage">Вы не представились системе</li><li id="pt-anontalk"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%9C%D0%BE%D1%91_%D0%BE%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5" title="Страница обсуждений для моего IP [n]" accesskey="n">Обсуждение</a></li><li id="pt-anoncontribs"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%9C%D0%BE%D0%B9_%D0%B2%D0%BA%D0%BB%D0%B0%D0%B4" title="Список правок, сделанных с этого IP-адреса [y]" accesskey="y">Вклад</a></li><li id="pt-createaccount"><a href="/w/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C_%D1%83%D1%87%D1%91%D1%82%D0%BD%D1%83%D1%8E_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C&amp;returnto=%D0%A4%D1%91%D0%B4%D0%BE%D1%80+%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Мы предлагаем вам создать учётную запись и войти в систему, хотя это и не обязательно.">Создать учётную запись</a></li><li id="pt-login"><a href="/w/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D1%85%D0%BE%D0%B4&amp;returnto=%D0%A4%D1%91%D0%B4%D0%BE%D1%80+%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Здесь можно зарегистрироваться в системе, но это необязательно. [o]" accesskey="o">Войти</a></li> </ul>
+ </div>
+ <div id="left-navigation">
+ <div id="p-namespaces" role="navigation" class="vectorTabs" aria-labelledby="p-namespaces-label">
+ <h3 id="p-namespaces-label">Пространства имён</h3>
+ <ul>
+ <li id="ca-nstab-main" class="selected"><span><a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Просмотр основной страницы [c]" accesskey="c">Статья</a></span></li>
+ <li id="ca-talk"><span><a href="/wiki/%D0%9E%D0%B1%D1%81%D1%83%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5:%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Обсуждение основной страницы [t]" accesskey="t" rel="discussion">Обсуждение</a></span></li>
+ </ul>
+ </div>
+ <div id="p-variants" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-variants-label">
+ <h3 id="p-variants-label">
+ <span>Варианты</span><a href="#"></a>
+ </h3>
+
+ <div class="menu">
+ <ul>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div id="right-navigation">
+ <div id="p-views" role="navigation" class="vectorTabs" aria-labelledby="p-views-label">
+ <h3 id="p-views-label">Просмотры</h3>
+ <ul>
+ <li id="ca-view" class="selected"><span><a href="/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" >Читать</a></span></li>
+ <li id="ca-ve-edit"><span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;veaction=edit" title="Редактировать данную страницу [v]" accesskey="v">Править</a></span></li>
+ <li id="ca-edit" class=" collapsible"><span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=edit" title="Эту статью можно изменять. Перед сохранением изменений, пожалуйста, нажмите кнопку предварительного просмотра для визуальной проверки результата [e]" accesskey="e">Править вики-текст</a></span></li>
+ <li id="ca-history" class="collapsible"><span><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=history" title="Журнал изменений страницы [h]" accesskey="h">История</a></span></li>
+ </ul>
+ </div>
+ <div id="p-cactions" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-cactions-label">
+ <h3 id="p-cactions-label"><span>Ещё</span><a href="#"></a></h3>
+
+ <div class="menu">
+ <ul>
+ </ul>
+ </div>
+ </div>
+ <div id="p-search" role="search">
+ <h3>
+ <label for="searchInput">Поиск</label>
+ </h3>
+
+ <form action="/w/index.php" id="searchform">
+ <div id="simpleSearch">
+ <input type="search" name="search" placeholder="Искать в Википедии" title="Искать в Википедии [f]" accesskey="f" id="searchInput"/><input type="hidden" value="Служебная:Поиск" name="title"/><input type="submit" name="fulltext" value="Найти" title="Найти страницы, содержащие указанный текст" id="mw-searchButton" class="searchButton mw-fallbackSearchButton"/><input type="submit" name="go" value="Перейти" title="Перейти к странице, имеющей в точности такое название" id="searchButton" class="searchButton"/> </div>
+ </form>
+ </div>
+ </div>
+ </div>
+ <div id="mw-panel">
+ <div id="p-logo" role="banner"><a class="mw-wiki-logo" href="/wiki/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0" title="Перейти на заглавную страницу"></a></div>
+ <div class="portal" role="navigation" id='p-navigation' aria-labelledby='p-navigation-label'>
+ <h3 id='p-navigation-label'>Навигация</h3>
+
+ <div class="body">
+ <ul>
+ <li id="n-mainpage"><a href="/wiki/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0" title="Перейти на заглавную страницу [z]" accesskey="z">Заглавная страница</a></li><li id="n-browse"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9F%D0%BE%D0%B8%D1%81%D0%BA_%D0%BF%D0%BE_%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F%D0%BC" title="Поиск по категориям">Рубрикация</a></li><li id="n-index"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%90%D0%BB%D1%84%D0%B0%D0%B2%D0%B8%D1%82%D0%BD%D1%8B%D0%B9_%D1%83%D0%BA%D0%B0%D0%B7%D0%B0%D1%82%D0%B5%D0%BB%D1%8C" title="Поиск по двум первым буквам">Указатель А — Я</a></li><li id="n-featured"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%98%D0%B7%D0%B1%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8" title="Статьи, считающиеся лучшими статьями проекта">Избранные статьи</a></li><li id="n-randompage"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%A1%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0" title="Посмотреть случайно выбранную страницу [x]" accesskey="x">Случайная статья</a></li><li id="n-currentevents"><a href="/wiki/%D0%9F%D0%BE%D1%80%D1%82%D0%B0%D0%BB:%D0%A2%D0%B5%D0%BA%D1%83%D1%89%D0%B8%D0%B5_%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F" title="Статьи о текущих событиях в мире">Текущие события</a></li> </ul>
+ </div>
+ </div>
+ <div class="portal" role="navigation" id='p-participation' aria-labelledby='p-participation-label'>
+ <h3 id='p-participation-label'>Участие</h3>
+
+ <div class="body">
+ <ul>
+ <li id="n-bug_in_article"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A1%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BE%D0%B1_%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0%D1%85" title="Сообщить об ошибке в этой статье">Сообщить об ошибке</a></li><li id="n-portal"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9F%D0%BE%D1%80%D1%82%D0%B0%D0%BB_%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B0" title="О проекте, о том, чем здесь можно заниматься, а также — где что находится">Портал сообщества</a></li><li id="n-forum"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A4%D0%BE%D1%80%D1%83%D0%BC" title="Форум участников Википедии">Форум</a></li><li id="n-recentchanges"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%A1%D0%B2%D0%B5%D0%B6%D0%B8%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B8" title="Список последних изменений [r]" accesskey="r">Свежие правки</a></li><li id="n-newpages"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%9D%D0%BE%D0%B2%D1%8B%D0%B5_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B" title="Список недавно созданных страниц">Новые страницы</a></li><li id="n-help"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B0" title="Место, где можно получить справку">Справка</a></li><li id="n-sitesupport"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_ru.wikipedia.org&amp;uselang=ru" title="Поддержите нас">Пожертвовать</a></li> </ul>
+ </div>
+ </div>
+ <div class="portal" role="navigation" id='p-tb' aria-labelledby='p-tb-label'>
+ <h3 id='p-tb-label'>Инструменты</h3>
+
+ <div class="body">
+ <ul>
+ <li id="t-whatlinkshere"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%A1%D1%81%D1%8B%D0%BB%D0%BA%D0%B8_%D1%81%D1%8E%D0%B4%D0%B0/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Список всех страниц, ссылающихся на данную [j]" accesskey="j">Ссылки сюда</a></li><li id="t-recentchangeslinked"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%A1%D0%B2%D1%8F%D0%B7%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5_%D0%BF%D1%80%D0%B0%D0%B2%D0%BA%D0%B8/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" rel="nofollow" title="Последние изменения в страницах, на которые ссылается эта страница [k]" accesskey="k">Связанные правки</a></li><li id="t-specialpages"><a href="/wiki/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%A1%D0%BF%D0%B5%D1%86%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D1%8B" title="Список служебных страниц [q]" accesskey="q">Спецстраницы</a></li><li id="t-permalink"><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;oldid=83139961" title="Постоянная ссылка на эту версию страницы">Постоянная ссылка</a></li><li id="t-info"><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;action=info" title="Подробнее об этой странице">Сведения о странице</a></li><li id="t-wikibase"><a href="https://www.wikidata.org/wiki/Q186321" title="Ссылка на связанный элемент репозитория данных [g]" accesskey="g">Элемент Викиданных</a></li><li id="t-cite"><a href="/w/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%A6%D0%B8%D1%82%D0%B0%D1%82%D0%B0&amp;page=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;id=83139961" title="Информация о том, как цитировать эту страницу">Цитировать страницу</a></li> </ul>
+ </div>
+ </div>
+ <div class="portal" role="navigation" id='p-coll-print_export' aria-labelledby='p-coll-print_export-label'>
+ <h3 id='p-coll-print_export-label'>Печать/экспорт</h3>
+
+ <div class="body">
+ <ul>
+ <li id="coll-create_a_book"><a href="/w/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%D0%BA%D0%BD%D0%B8%D0%B3&amp;bookcmd=book_creator&amp;referer=%D0%A4%D1%91%D0%B4%D0%BE%D1%80+%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87">Создать книгу</a></li><li id="coll-download-as-rdf2latex"><a href="/w/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%9A%D0%BE%D0%BB%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D1%8F_%D0%BA%D0%BD%D0%B8%D0%B3&amp;bookcmd=render_article&amp;arttitle=%D0%A4%D1%91%D0%B4%D0%BE%D1%80+%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;returnto=%D0%A4%D1%91%D0%B4%D0%BE%D1%80+%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;oldid=83139961&amp;writer=rdf2latex">Скачать как PDF</a></li><li id="t-print"><a href="/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;printable=yes" title="Версия этой страницы для печати [p]" accesskey="p">Версия для печати</a></li> </ul>
+ </div>
+ </div>
+ <div class="portal" role="navigation" id='p-wikibase-otherprojects' aria-labelledby='p-wikibase-otherprojects-label'>
+ <h3 id='p-wikibase-otherprojects-label'>В других проектах</h3>
+
+ <div class="body">
+ <ul>
+ <li class="wb-otherproject-link wb-otherproject-commons"><a href="https://commons.wikimedia.org/wiki/Category:Feodor_I_of_Russia" hreflang="en">Викисклад</a></li><li class="wb-otherproject-link wb-otherproject-wikisource"><a href="https://ru.wikisource.org/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_I_%D0%98%D0%BE%D0%B0%D0%BD%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" hreflang="ru">Викитека</a></li> </ul>
+ </div>
+ </div>
+ <div class="portal" role="navigation" id='p-lang' aria-labelledby='p-lang-label'>
+ <h3 id='p-lang-label'>На других языках</h3>
+
+ <div class="body">
+ <ul>
+ <li class="interlanguage-link interwiki-af"><a href="https://af.wikipedia.org/wiki/Fjodor_I_van_Rusland" title="Fjodor I van Rusland — африкаанс" lang="af" hreflang="af" class="interlanguage-link-target">Afrikaans</a></li><li class="interlanguage-link interwiki-ar"><a href="https://ar.wikipedia.org/wiki/%D9%81%D9%8A%D9%88%D8%AF%D9%88%D8%B1_%D8%A7%D9%84%D8%A3%D9%88%D9%84" title="فيودور الأول — арабский" lang="ar" hreflang="ar" class="interlanguage-link-target">العربية</a></li><li class="interlanguage-link interwiki-be"><a href="https://be.wikipedia.org/wiki/%D0%A4%D1%91%D0%B4%D0%B0%D1%80_I,_%D1%86%D0%B0%D1%80_%D1%96_%D0%B2%D1%8F%D0%BB%D1%96%D0%BA%D1%96_%D0%BA%D0%BD%D1%8F%D0%B7%D1%8C_%D1%83%D1%81%D1%8F%D0%B5_%D0%A0%D1%83%D1%81%D1%96" title="Фёдар I, цар і вялікі князь усяе Русі — белорусский" lang="be" hreflang="be" class="interlanguage-link-target">Беларуская</a></li><li class="interlanguage-link interwiki-be-x-old"><a href="https://be-x-old.wikipedia.org/wiki/%D0%A4%D1%91%D0%B4%D0%B0%D1%80_I_%D0%86%D0%B2%D0%B0%D0%BD%D0%B0%D0%B2%D1%96%D1%87" title="Фёдар I Іванавіч — беларуская (тарашкевіца)‎" lang="be-x-old" hreflang="be-x-old" class="interlanguage-link-target">Беларуская (тарашкевіца)‎</a></li><li class="interlanguage-link interwiki-bg"><a href="https://bg.wikipedia.org/wiki/%D0%A4%D1%8C%D0%BE%D0%B4%D0%BE%D1%80_I" title="Фьодор I — болгарский" lang="bg" hreflang="bg" class="interlanguage-link-target">Български</a></li><li class="interlanguage-link interwiki-bs"><a href="https://bs.wikipedia.org/wiki/Fjodor_I,_car_Rusije" title="Fjodor I, car Rusije — боснийский" lang="bs" hreflang="bs" class="interlanguage-link-target">Bosanski</a></li><li class="interlanguage-link interwiki-ca"><a href="https://ca.wikipedia.org/wiki/Teodor_I_de_R%C3%BAssia" title="Teodor I de Rússia — каталанский" lang="ca" hreflang="ca" class="interlanguage-link-target">Català</a></li><li class="interlanguage-link interwiki-cs"><a href="https://cs.wikipedia.org/wiki/Fjodor_I." title="Fjodor I. — чешский" lang="cs" hreflang="cs" class="interlanguage-link-target">Čeština</a></li><li class="interlanguage-link interwiki-cy"><a href="https://cy.wikipedia.org/wiki/Fyodor_I,_tsar_Rwsia" title="Fyodor I, tsar Rwsia — валлийский" lang="cy" hreflang="cy" class="interlanguage-link-target">Cymraeg</a></li><li class="interlanguage-link interwiki-da"><a href="https://da.wikipedia.org/wiki/Fjodor_1._af_Rusland" title="Fjodor 1. af Rusland — датский" lang="da" hreflang="da" class="interlanguage-link-target">Dansk</a></li><li class="interlanguage-link interwiki-de"><a href="https://de.wikipedia.org/wiki/Fjodor_I._(Russland)" title="Fjodor I. (Russland) — немецкий" lang="de" hreflang="de" class="interlanguage-link-target">Deutsch</a></li><li class="interlanguage-link interwiki-el"><a href="https://el.wikipedia.org/wiki/%CE%A6%CE%B9%CE%BF%CE%BD%CF%84%CF%8C%CF%81_%CE%91%CE%84_%CF%84%CE%B7%CF%82_%CE%A1%CF%89%CF%83%CE%AF%CE%B1%CF%82" title="Φιοντόρ Α΄ της Ρωσίας — греческий" lang="el" hreflang="el" class="interlanguage-link-target">Ελληνικά</a></li><li class="interlanguage-link interwiki-en"><a href="https://en.wikipedia.org/wiki/Feodor_I_of_Russia" title="Feodor I of Russia — английский" lang="en" hreflang="en" class="interlanguage-link-target">English</a></li><li class="interlanguage-link interwiki-eo"><a href="https://eo.wikipedia.org/wiki/Fjodor_la_1-a_Ivanovi%C4%89_(Rusio)" title="Fjodor la 1-a Ivanoviĉ (Rusio) — эсперанто" lang="eo" hreflang="eo" class="interlanguage-link-target">Esperanto</a></li><li class="interlanguage-link interwiki-es"><a href="https://es.wikipedia.org/wiki/Teodoro_I_de_Rusia" title="Teodoro I de Rusia — испанский" lang="es" hreflang="es" class="interlanguage-link-target">Español</a></li><li class="interlanguage-link interwiki-et"><a href="https://et.wikipedia.org/wiki/Fjodor_I" title="Fjodor I — эстонский" lang="et" hreflang="et" class="interlanguage-link-target">Eesti</a></li><li class="interlanguage-link interwiki-eu"><a href="https://eu.wikipedia.org/wiki/Teodoro_I.a_Errusiakoa" title="Teodoro I.a Errusiakoa — баскский" lang="eu" hreflang="eu" class="interlanguage-link-target">Euskara</a></li><li class="interlanguage-link interwiki-fa"><a href="https://fa.wikipedia.org/wiki/%D9%81%DB%8C%D9%88%D8%AF%D9%88%D8%B1_%DB%8C%DA%A9%D9%85_(%D8%B1%D9%88%D8%B3%DB%8C%D9%87)" title="فیودور یکم (روسیه) — персидский" lang="fa" hreflang="fa" class="interlanguage-link-target">فارسی</a></li><li class="interlanguage-link interwiki-fi"><a href="https://fi.wikipedia.org/wiki/Fjodor_I" title="Fjodor I — финский" lang="fi" hreflang="fi" class="interlanguage-link-target">Suomi</a></li><li class="interlanguage-link interwiki-fr"><a href="https://fr.wikipedia.org/wiki/F%C3%A9dor_Ier" title="Fédor Ier — французский" lang="fr" hreflang="fr" class="interlanguage-link-target">Français</a></li><li class="interlanguage-link interwiki-gl"><a href="https://gl.wikipedia.org/wiki/Teodoro_I_de_Rusia" title="Teodoro I de Rusia — галисийский" lang="gl" hreflang="gl" class="interlanguage-link-target">Galego</a></li><li class="interlanguage-link interwiki-he"><a href="https://he.wikipedia.org/wiki/%D7%A4%D7%99%D7%95%D7%93%D7%95%D7%A8_%D7%94%D7%A8%D7%90%D7%A9%D7%95%D7%9F" title="פיודור הראשון — иврит" lang="he" hreflang="he" class="interlanguage-link-target">עברית</a></li><li class="interlanguage-link interwiki-hr"><a href="https://hr.wikipedia.org/wiki/Fjodor_I.,_ruski_car" title="Fjodor I., ruski car — хорватский" lang="hr" hreflang="hr" class="interlanguage-link-target">Hrvatski</a></li><li class="interlanguage-link interwiki-hu"><a href="https://hu.wikipedia.org/wiki/I._Fjodor_orosz_c%C3%A1r" title="I. Fjodor orosz cár — венгерский" lang="hu" hreflang="hu" class="interlanguage-link-target">Magyar</a></li><li class="interlanguage-link interwiki-it"><a href="https://it.wikipedia.org/wiki/F%C3%ABdor_I_di_Russia" title="Fëdor I di Russia — итальянский" lang="it" hreflang="it" class="interlanguage-link-target">Italiano</a></li><li class="interlanguage-link interwiki-ja"><a href="https://ja.wikipedia.org/wiki/%E3%83%95%E3%83%A7%E3%83%BC%E3%83%89%E3%83%AB1%E4%B8%96" title="フョードル1世 — японский" lang="ja" hreflang="ja" class="interlanguage-link-target">日本語</a></li><li class="interlanguage-link interwiki-ka"><a href="https://ka.wikipedia.org/wiki/%E1%83%97%E1%83%94%E1%83%93%E1%83%9D%E1%83%A0%E1%83%94_I" title="თედორე I — грузинский" lang="ka" hreflang="ka" class="interlanguage-link-target">ქართული</a></li><li class="interlanguage-link interwiki-ko"><a href="https://ko.wikipedia.org/wiki/%ED%91%9C%EB%8F%84%EB%A5%B4_1%EC%84%B8" title="표도르 1세 — корейский" lang="ko" hreflang="ko" class="interlanguage-link-target">한국어</a></li><li class="interlanguage-link interwiki-la"><a href="https://la.wikipedia.org/wiki/Theodorus_I_(tzar_Russiae)" title="Theodorus I (tzar Russiae) — латинский" lang="la" hreflang="la" class="interlanguage-link-target">Latina</a></li><li class="interlanguage-link interwiki-lt"><a href="https://lt.wikipedia.org/wiki/Fiodoras_I" title="Fiodoras I — литовский" lang="lt" hreflang="lt" class="interlanguage-link-target">Lietuvių</a></li><li class="interlanguage-link interwiki-lv"><a href="https://lv.wikipedia.org/wiki/Fjodors_I" title="Fjodors I — латышский" lang="lv" hreflang="lv" class="interlanguage-link-target">Latviešu</a></li><li class="interlanguage-link interwiki-mk"><a href="https://mk.wikipedia.org/wiki/%D0%A4%D1%98%D0%BE%D0%B4%D0%BE%D1%80_I_(%D0%A0%D1%83%D1%81%D0%B8%D1%98%D0%B0)" title="Фјодор I (Русија) — македонский" lang="mk" hreflang="mk" class="interlanguage-link-target">Македонски</a></li><li class="interlanguage-link interwiki-mr"><a href="https://mr.wikipedia.org/wiki/%E0%A4%AA%E0%A4%B9%E0%A4%BF%E0%A4%B2%E0%A4%BE_%E0%A4%AB%E0%A4%BF%E0%A4%AF%E0%A5%8B%E0%A4%A6%E0%A5%8B%E0%A4%B0,_%E0%A4%B0%E0%A4%B6%E0%A4%BF%E0%A4%AF%E0%A4%BE" title="पहिला फियोदोर, रशिया — маратхи" lang="mr" hreflang="mr" class="interlanguage-link-target">मराठी</a></li><li class="interlanguage-link interwiki-nl"><a href="https://nl.wikipedia.org/wiki/Fjodor_I_van_Rusland" title="Fjodor I van Rusland — нидерландский" lang="nl" hreflang="nl" class="interlanguage-link-target">Nederlands</a></li><li class="interlanguage-link interwiki-no"><a href="https://no.wikipedia.org/wiki/Fjodor_I_av_Russland" title="Fjodor I av Russland — норвежский" lang="no" hreflang="no" class="interlanguage-link-target">Norsk bokmål</a></li><li class="interlanguage-link interwiki-pl"><a href="https://pl.wikipedia.org/wiki/Fiodor_I" title="Fiodor I — польский" lang="pl" hreflang="pl" class="interlanguage-link-target">Polski</a></li><li class="interlanguage-link interwiki-pt"><a href="https://pt.wikipedia.org/wiki/Teodoro_I_da_R%C3%BAssia" title="Teodoro I da Rússia — португальский" lang="pt" hreflang="pt" class="interlanguage-link-target">Português</a></li><li class="interlanguage-link interwiki-ro"><a href="https://ro.wikipedia.org/wiki/Feodor_I_al_Rusiei" title="Feodor I al Rusiei — румынский" lang="ro" hreflang="ro" class="interlanguage-link-target">Română</a></li><li class="interlanguage-link interwiki-sco"><a href="https://sco.wikipedia.org/wiki/Feodor_I_o_Roushie" title="Feodor I o Roushie — шотландский" lang="sco" hreflang="sco" class="interlanguage-link-target">Scots</a></li><li class="interlanguage-link interwiki-sh"><a href="https://sh.wikipedia.org/wiki/Fjodor_I.,_car_Rusije" title="Fjodor I., car Rusije — сербскохорватский" lang="sh" hreflang="sh" class="interlanguage-link-target">Srpskohrvatski / српскохрватски</a></li><li class="interlanguage-link interwiki-sk"><a href="https://sk.wikipedia.org/wiki/Fiodor_I._(Rusko)" title="Fiodor I. (Rusko) — словацкий" lang="sk" hreflang="sk" class="interlanguage-link-target">Slovenčina</a></li><li class="interlanguage-link interwiki-sl"><a href="https://sl.wikipedia.org/wiki/Fjodor_I._Ruski" title="Fjodor I. Ruski — словенский" lang="sl" hreflang="sl" class="interlanguage-link-target">Slovenščina</a></li><li class="interlanguage-link interwiki-sr"><a href="https://sr.wikipedia.org/wiki/%D0%A4%D1%98%D0%BE%D0%B4%D0%BE%D1%80_I_%D0%97%D0%B2%D0%BE%D0%BD%D0%B0%D1%80" title="Фјодор I Звонар — сербский" lang="sr" hreflang="sr" class="interlanguage-link-target">Српски / srpski</a></li><li class="interlanguage-link interwiki-sv"><a href="https://sv.wikipedia.org/wiki/Fjodor_I_av_Ryssland" title="Fjodor I av Ryssland — шведский" lang="sv" hreflang="sv" class="interlanguage-link-target">Svenska</a></li><li class="interlanguage-link interwiki-th"><a href="https://th.wikipedia.org/wiki/%E0%B8%8B%E0%B8%B2%E0%B8%A3%E0%B9%8C%E0%B9%80%E0%B8%9F%E0%B9%82%E0%B8%AD%E0%B8%94%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%97%E0%B8%B5%E0%B9%88_1_%E0%B9%81%E0%B8%AB%E0%B9%88%E0%B8%87%E0%B8%A3%E0%B8%B1%E0%B8%AA%E0%B9%80%E0%B8%8B%E0%B8%B5%E0%B8%A2" title="ซาร์เฟโอดอร์ที่ 1 แห่งรัสเซีย — тайский" lang="th" hreflang="th" class="interlanguage-link-target">ไทย</a></li><li class="interlanguage-link interwiki-tr"><a href="https://tr.wikipedia.org/wiki/I._Fyodor" title="I. Fyodor — турецкий" lang="tr" hreflang="tr" class="interlanguage-link-target">Türkçe</a></li><li class="interlanguage-link interwiki-tt"><a href="https://tt.wikipedia.org/wiki/%D0%A4%D1%91%D0%B4%D0%BE%D1%80_I" title="Фёдор I — татарский" lang="tt" hreflang="tt" class="interlanguage-link-target">Татарча/tatarça</a></li><li class="interlanguage-link interwiki-uk"><a href="https://uk.wikipedia.org/wiki/%D0%A4%D0%B5%D0%B4%D1%96%D1%80_I_%D0%86%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87" title="Федір I Іванович — украинский" lang="uk" hreflang="uk" class="interlanguage-link-target">Українська</a></li><li class="interlanguage-link interwiki-uz"><a href="https://uz.wikipedia.org/wiki/Fyodor_Ivanovich" title="Fyodor Ivanovich — узбекский" lang="uz" hreflang="uz" class="interlanguage-link-target">Oʻzbekcha/ўзбекча</a></li><li class="interlanguage-link interwiki-vi"><a href="https://vi.wikipedia.org/wiki/Fyodor_I_c%E1%BB%A7a_Nga" title="Fyodor I của Nga — вьетнамский" lang="vi" hreflang="vi" class="interlanguage-link-target">Tiếng Việt</a></li><li class="interlanguage-link interwiki-zh"><a href="https://zh.wikipedia.org/wiki/%E8%B4%B9%E5%A5%A5%E5%A4%9A%E5%B0%94%E4%B8%80%E4%B8%96%C2%B7%E4%BC%8A%E4%B8%87%E8%AF%BA%E7%BB%B4%E5%A5%87" title="费奥多尔一世·伊万诺维奇 — китайский" lang="zh" hreflang="zh" class="interlanguage-link-target">中文</a></li> </ul>
+ <div class='after-portlet after-portlet-lang'><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Q186321#sitelinks-wikipedia" title="Править межъязыковые ссылки" class="wbc-editpage">Править ссылки</a></span></div> </div>
+ </div>
+ </div>
+ </div>
+ <div id="footer" role="contentinfo">
+ <ul id="footer-info">
+ <li id="footer-info-lastmod"> Последнее изменение этой страницы: 12:18, 18 января 2017.</li>
+ <li id="footer-info-copyright">Текст доступен по <a rel="license" href="//ru.wikipedia.org/wiki/Википедия:Текст_лицензии_Creative_Commons_Attribution-ShareAlike_3.0_Unported">лицензии Creative Commons Attribution-ShareAlike</a><a rel="license" href="//creativecommons.org/licenses/by-sa/3.0/" style="display:none;"></a>; в отдельных случаях могут действовать дополнительные условия.
+<span class="noprint">Подробнее см. <a href="//wikimediafoundation.org/wiki/Terms_of_Use/ru">Условия использования</a>.</span><br/>
+Wikipedia&reg; — зарегистрированный товарный знак некоммерческой организации <a href="//wikimediafoundation.org/wiki/Приёмная">Wikimedia Foundation, Inc.</a><br /></li><li class="noprint"><a class='internal' href="//ru.wikipedia.org/wiki/Википедия:Контакты">Свяжитесь с нами</a></li>
+ </ul>
+ <ul id="footer-places">
+ <li id="footer-places-privacy"><a href="https://meta.wikimedia.org/wiki/Privacy_policy/ru" class="extiw" title="m:Privacy policy/ru">Политика конфиденциальности</a></li>
+ <li id="footer-places-about"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5" title="Википедия:Описание">Описание Википедии</a></li>
+ <li id="footer-places-disclaimer"><a href="/wiki/%D0%92%D0%B8%D0%BA%D0%B8%D0%BF%D0%B5%D0%B4%D0%B8%D1%8F:%D0%9E%D1%82%D0%BA%D0%B0%D0%B7_%D0%BE%D1%82_%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D0%B8" title="Википедия:Отказ от ответственности">Отказ от ответственности</a></li>
+ <li id="footer-places-developers"><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/How_to_contribute">Разработчики</a></li>
+ <li id="footer-places-cookiestatement"><a href="https://wikimediafoundation.org/wiki/Cookie_statement">Соглашение о cookie</a></li>
+ <li id="footer-places-mobileview"><a href="//ru.m.wikipedia.org/w/index.php?title=%D0%A4%D1%91%D0%B4%D0%BE%D1%80_%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Мобильная версия</a></li>
+ </ul>
+ <ul id="footer-icons" class="noprint">
+ <li id="footer-copyrightico">
+ <a href="https://wikimediafoundation.org/"><img src="/static/images/wikimedia-button.png" srcset="/static/images/wikimedia-button-1.5x.png 1.5x, /static/images/wikimedia-button-2x.png 2x" width="88" height="31" alt="Wikimedia Foundation"/></a> </li>
+ <li id="footer-poweredbyico">
+ <a href="//www.mediawiki.org/"><img src="/static/images/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" srcset="/static/images/poweredby_mediawiki_132x47.png 1.5x, /static/images/poweredby_mediawiki_176x62.png 2x" width="88" height="31"/></a> </li>
+ </ul>
+ <div style="clear:both"></div>
+ </div>
+ <script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgPageParseReport":{"limitreport":{"cputime":"0.764","walltime":"0.996","ppvisitednodes":{"value":8497,"limit":1000000},"ppgeneratednodes":{"value":0,"limit":1500000},"postexpandincludesize":{"value":240930,"limit":2097152},"templateargumentsize":{"value":35242,"limit":2097152},"expansiondepth":{"value":17,"limit":40},"expensivefunctioncount":{"value":28,"limit":500},"entityaccesscount":{"value":24,"limit":400},"timingprofile":["100.00% 703.520 1 -total"," 47.33% 332.961 1 Шаблон:Государственный_деятель2"," 37.09% 260.955 35 Шаблон:Wikidata"," 25.89% 182.109 1 Шаблон:Библиоинформация"," 22.46% 157.994 16 Шаблон:If-wikidata"," 17.38% 122.255 1 Шаблон:Государственный_деятель/Личные_данные"," 5.51% 38.782 1 Шаблон:Примечания"," 5.29% 37.184 5 Шаблон:Книга"," 4.92% 34.639 3 Шаблон:Навигационная_таблица"," 4.06% 28.528 1 Шаблон:Навигация"]},"scribunto":{"limitreport-timeusage":{"value":"0.309","limit":"10.000"},"limitreport-memusage":{"value":6372251,"limit":52428800}},"cachereport":{"origin":"mw1216","timestamp":"20170130031231","ttl":2592000,"transientcontent":false}}});});</script><script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgBackendResponseTime":1108,"wgHostname":"mw1216"});});</script>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/table/integrity/vertical-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/table/integrity/vertical-novalid.html
new file mode 100644
index 0000000000..4228b583e0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/table/integrity/vertical-novalid.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>VerticalCellComparator.compare bug</title>
+<table>
+<tr>
+ <td></td>
+ <td rowspan="3"></td>
+ <td rowspan="3">cell1</td>
+</tr>
+<tr>
+ <td colspan="2"></td>
+ <td rowspan="2">cell0</td>
+</tr>
+</table> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/table/model-input-child-hidden-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/table/model-input-child-hidden-novalid.html
new file mode 100644
index 0000000000..e7aa64dbc2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/table/model-input-child-hidden-novalid.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>The "in table" insertion mode - A start tag whose tag name is "input" (type=hidden)</title>
+<table><input type="hidden"></table> <!-- not a streaming violation; doesn't get foster-parented -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/table/model-input-child-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/table/model-input-child-novalid.html
new file mode 100644
index 0000000000..08b168707d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/table/model-input-child-novalid.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>The "in table" insertion mode - A start tag whose tag name is "input"</title>
+<table><input></table>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/table/model-input-type-child-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/table/model-input-type-child-novalid.html
new file mode 100644
index 0000000000..39553d02f1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/table/model-input-type-child-novalid.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>The "in table" insertion mode - A start tag whose tag name is "input"</title>
+<table><input type=submit></table>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/time/datetime-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/time/datetime-isvalid.html
new file mode 100644
index 0000000000..644608b15b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/time/datetime-isvalid.html
@@ -0,0 +1,57 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;t&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><time datetime='2006-11-20'>text</time></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><time datetime='2006-11-20'>text</time></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <time datetime='2006-11-20'></time></p>
+ <p>text <dfn><time datetime='2006-11-20'></time></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><time datetime='2006-11-20'><a>text</a></time></p>
+ <p><dfn><time datetime='2006-11-20'><a>text</a></time></dfn></p>
+
+ <!-- vague moment of time in attribute -->
+ <p><time datetime='2006-11-20T16:24'>text</time></p>
+ <p><time datetime='2006-11-20T16:24:33'>text</time></p>
+ <p><time datetime='2006-11-20T16:24:33.89'>text</time></p>
+
+ <p><time datetime='2006-11-20T16:24Z'>text</time></p>
+ <p><time datetime='2006-11-20T16:24:33Z'>text</time></p>
+ <p><time datetime='2006-11-20T16:24:33.89Z'>text</time></p>
+
+ <p><time datetime='2006-11-20T16:24+02:00'>text</time></p>
+ <p><time datetime='2006-11-20T16:24:33+02:00'>text</time></p>
+ <p><time datetime='2006-11-20T16:24:33.89+02:00'>text</time></p>
+
+ <p><time datetime='16:24'>text</time></p>
+ <p><time datetime='16:24:33'>text</time></p>
+ <p><time datetime='16:24:33.89'>text</time></p>
+
+ <!-- vague moment of time in content -->
+ <p><time>2006-11-20T16:24</time></p>
+ <p><time>2006-11-20T16:24:33</time></p>
+ <p><time>2006-11-20T16:24:33.89</time></p>
+
+ <p><time>2006-11-20T16:24Z</time></p>
+ <p><time>2006-11-20T16:24:33Z</time></p>
+ <p><time>2006-11-20T16:24:33.89Z</time></p>
+
+ <p><time>2006-11-20T16:24+02:00</time></p>
+ <p><time>2006-11-20T16:24:33+02:00</time></p>
+ <p><time>2006-11-20T16:24:33.89+02:00</time></p>
+
+ <p><time>16:24</time></p>
+ <p><time>16:24:33</time></p>
+ <p><time>16:24:33.89</time></p>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/title/empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/title/empty-novalid.html
new file mode 100644
index 0000000000..f3089b5961
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/title/empty-novalid.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<!-- document with empty title element -->
+<meta charset=utf-8>
+<title></title>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/title/missing-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/title/missing-novalid.html
new file mode 100644
index 0000000000..c0a83a4da9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/title/missing-novalid.html
@@ -0,0 +1,2 @@
+<!doctype html>
+<!-- document with no title element -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src-empty-novalid.html
new file mode 100644
index 0000000000..c915ef521a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty src is not valid</title>
+<video><track src=""></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src-isvalid.html
new file mode 100644
index 0000000000..e1ec2c763e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid src</title>
+<video><track src="a:foo.com"></video><!-- scheme-private -->
+<video><track src="foo:/"></video><!-- scheme-private-slash -->
+<video><track src="foo://"></video><!-- scheme-private-slash-slash -->
+<video><track src="foo:/bar.com/"></video><!-- scheme-private-path -->
+<video><track src="foo://///////"></video><!-- scheme-private-path-leading-slashes-only -->
+<video><track src="foo://///////bar.com/"></video><!-- scheme-private-path-leading-slashes-chars -->
+<video><track src="foo:////://///"></video><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<video><track src="c:/foo"></video><!-- scheme-private-single-letter -->
+<video><track src="madeupscheme:/example.com/"></video><!-- scheme-private-single-slash -->
+<video><track src="file:/example.com/"></video><!-- scheme-file-single-slash -->
+<video><track src="ftps:/example.com/"></video><!-- scheme-ftps-single-slash -->
+<video><track src="gopher:/example.com/"></video><!-- scheme-gopher-single-slash -->
+<video><track src="ws:/example.com/"></video><!-- scheme-ws-single-slash -->
+<video><track src="wss:/example.com/"></video><!-- scheme-wss-single-slash -->
+<video><track src="javascript:/example.com/"></video><!-- scheme-javascript-single-slash -->
+<video><track src="mailto:/example.com/"></video><!-- scheme-mailto-single-slash -->
+<video><track src="madeupscheme:example.com/"></video><!-- scheme-private-no-slash -->
+<video><track src="ftps:example.com/"></video><!-- scheme-ftps-no-slash -->
+<video><track src="gopher:example.com/"></video><!-- scheme-gopher-no-slash -->
+<video><track src="wss:example.com/"></video><!-- scheme-wss-no-slash -->
+<video><track src="mailto:example.com/"></video><!-- scheme-mailto-no-slash -->
+<video><track src="data:text/plain,foo"></video><!-- scheme-data-no-slash -->
+<video><track src="http://user:pass@foo:21/bar;par?b#c"></video><!-- userinfo -->
+<video><track src="http://[2001::1]"></video><!-- host-ipv6 -->
+<video><track src="http://[2001::1]:80"></video><!-- host-ipv6-port -->
+<video><track src="http://f:/c"></video><!-- port-none-but-colon -->
+<video><track src="http://f:0/c"></video><!-- port-0 -->
+<video><track src="http://f:00000000000000/c"></video><!-- port-00000000000000 -->
+<video><track src="http://f:00000000000000000000080/c"></video><!-- port-00000000000000000000080 -->
+<video><track src="http://a:b@c:29/d"></video><!-- userinfo-host-port-path -->
+<video><track src="http://foo.com:b@d/"></video><!-- userinfo-username-non-alpha -->
+<video><track src="http://foo/abcd?efgh?ijkl"></video><!-- query-contains-question-mark -->
+<video><track src="http://foo/abcd#foo?bar"></video><!-- fragment-contains-question-mark -->
+<video><track src="http://example.com/foo/%2e"></video><!-- path-percent-encoded-dot -->
+<video><track src="http://example.com/%20foo"></video><!-- path-percent-encoded-space -->
+<video><track src="http://example.com/©zbar"></video><!-- path-non-ascii -->
+<video><track src="http://example.com/foo%41%7a"></video><!-- path-percent-encoded-multiple -->
+<video><track src="http://example.com/foo%91"></video><!-- path-percent-encoded-u0091 -->
+<video><track src="http://example.com/foo%00"></video><!-- path-percent-encoded-u0000 -->
+<video><track src="http://example.com/%3A%3a%3C%3c"></video><!-- path-percent-encoded-mixed-case -->
+<video><track src="http://example.com/你好你好"></video><!-- path-unicode-han -->
+<video><track src="http://example.com//foo"></video><!-- path-uFEFF -->
+<video><track src="http://example.com/‮/foo/‭/bar"></video><!-- path-u202E-u202D -->
+<video><track src="http://💩"></video><!-- host-is-pile-of-poo -->
+<video><track src="http💩//:foo"></video><!-- path-contains-pile-of-poo -->
+<video><track src="http://example.com/foo?💩"></video><!-- query-contains-pile-of-poo -->
+<video><track src="http://example.com/foo#💩"></video><!-- fragment-contains-pile-of-poo -->
+<video><track src="http://192.0x00A80001"></video><!-- host-192.0x00A80001 -->
+<video><track src="http://%25DOMAIN:foobar@foodomain.com"></video><!-- userinfo-username-contains-percent-encoded -->
+<video><track src="http://@www.example.com"></video><!-- userinfo-empty -->
+<video><track src="http://:b@www.example.com"></video><!-- userinfo-user-empty -->
+<video><track src="http://a:@www.example.com"></video><!-- userinfo-password-empty -->
+<video><track src="http://GOO​⁠goo.com"></video><!-- host-exotic-whitespace -->
+<video><track src="http://www.foo。bar.com"></video><!-- host-exotic-dot -->
+<video><track src="http://Go.com"></video><!-- host-fullwidth -->
+<video><track src="http://你好你好"></video><!-- host-idn-unicode-han -->
+<video><track src="http://192.168.0.257/"></video><!-- host-IP-address-broken -->
+<video><track src="//foo/bar"></video><!-- scheme-schemeless-relative -->
+<video><track src="/"></video><!-- path-slash-only-relative -->
+<video><track src="/a/b/c"></video><!-- path-simple-relative -->
+<video><track src="/a%2fc"></video><!-- path-percent-encoded-slash-relative -->
+<video><track src="/a/%2f/c"></video><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<video><track src="?"></video><!-- query-empty-no-path-relative -->
+<video><track src="#"></video><!-- fragment-empty-hash-only-no-path-relative -->
+<video><track src="#/"></video><!-- fragment-slash-relative -->
+<video><track src="#;?"></video><!-- fragment-semicolon-question-mark-relative -->
+<video><track src="#β"></video><!-- fragment-non-ascii-relative -->
+<video><track src="foo.com"></video><!-- scheme-none-relative -->
+<video><track src=":"></video><!-- path-colon-relative -->
+<video><track src=":a"></video><!-- path-leading-colon-letter-relative -->
+<video><track src=":foo.com"></video><!-- path-leading-colon-chars-relative -->
+<video><track src=":/"></video><!-- path-leading-colon-slash-relative -->
+<video><track src=":#"></video><!-- path-leading-colon-hash-relative -->
+<video><track src=":23"></video><!-- path-leading-colon-number-relative -->
+<video><track src="/:23"></video><!-- path-slash-colon-number-relative -->
+<video><track src="::"></video><!-- path-leading-colon-colon-relative -->
+<video><track src="::23"></video><!-- path-colon-colon-number-relative -->
+<video><track src="💩http://foo"></video><!-- path-starts-with-pile-of-poo -->
+<video><track src="/💩"></video><!-- path-slash-pile-of-poo -->
+<video><track src="File://foo/bar.html"></video><!-- scheme-file-uppercase -->
+<video><track src="file://C|/foo/bar"></video><!-- scheme-file-slash-slash-c-bar -->
+<video><track src="file://server/foo/bar"></video><!-- scheme-file-host-included -->
+<video><track src="file:///foo/bar.txt"></video><!-- scheme-file-host-empty -->
+<video><track src="file:"></video><!-- scheme-file-scheme-only -->
+<video><track src="file:/"></video><!-- scheme-file-slash-only -->
+<video><track src="file://"></video><!-- scheme-file-slash-slash-only -->
+<video><track src="file:///"></video><!-- scheme-file-slash-slash-slash-only -->
+<video><track src="file:test"></video><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src-whitespace-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src-whitespace-only-novalid.html
new file mode 100644
index 0000000000..49a19ded1a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src-whitespace-only-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty src is not valid</title>
+<video><track src="
+"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..06dc4825bd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-backslash</title>
+<video><track src="#\"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..c629c503d5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-contains-hash</title>
+<video><track src="http://foo/path#f#g"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..f2632d5e26
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-leading-space</title>
+<video><track src="http://f:21/b# e"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-cr-novalid.html
new file mode 100644
index 0000000000..1b2d74fc2f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-cr</title>
+<video><track src="http://example. org"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..098225713c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://%41.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..7a66a89573
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://%ef%bc%85%ef%bc%94%ef%bc%91.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-empty-novalid.html
new file mode 100644
index 0000000000..0978bfe840
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-empty</title>
+<video><track src="http://"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..a193260fc2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://@/www.example.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..fc9c41e8ef
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://user:pass@/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..70aa4d064c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://[www.google.com]/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..54433b15b9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-invalid-unicode</title>
+<video><track src="http://﷐zyx.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..8e93c61bdf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://%ef%b7%90zyx.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-newline-novalid.html
new file mode 100644
index 0000000000..7b206246d6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-newline</title>
+<video><track src="http://example.
+org"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-space-novalid.html
new file mode 100644
index 0000000000..31c35862b6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-space</title>
+<video><track src="http://example .org"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..791359b501
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://[1::2]:3:4"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-tab-novalid.html
new file mode 100644
index 0000000000..cebfa553ba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-tab</title>
+<video><track src="http://example .org"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..7aaf5336f0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://%00.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..2901170f15
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://%ef%bc%85%ef%bc%90%ef%bc%90.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..a6cea54599
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://example.com/foo%"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-contains-space-novalid.html
new file mode 100644
index 0000000000..4cc4ea47c8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-contains-space</title>
+<video><track src="/a/ /c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..8f78522773
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://foo.com/\@"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..4e95928446
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src=":\"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..8e14139e66
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src=":foo.com\"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-leading-space-novalid.html
new file mode 100644
index 0000000000..0b9847f009
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-leading-space</title>
+<video><track src="http://f:21/ b"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..a4f6e796e9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://example.com/foo/%2e%2"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..f83da9a1d6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="[61:24:74]:98"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-tab-novalid.html
new file mode 100644
index 0000000000..b8c5b36ba0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-tab</title>
+<video><track src="http://example.com/foo bar"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..5da84a8729
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-trailing-space</title>
+<video><track src="http://f:21/b ?"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-u0091-novalid.html
new file mode 100644
index 0000000000..16c810dff2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-u0091</title>
+<video><track src="http://example.com/foo‘"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-999999-novalid.html
new file mode 100644
index 0000000000..963a331012
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-999999</title>
+<video><track src="http://f:999999/c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-cr-novalid.html
new file mode 100644
index 0000000000..666a5d89d3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-cr</title>
+<video><track src="http://f: /c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..c568c332cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://2001::1]:80"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..a6e554183c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-colon</title>
+<video><track src="http://2001::1"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..fe6a8bf0aa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-dash</title>
+<video><track src="http://foo:-80/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..2798d9a4d4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-multiple-letters</title>
+<video><track src="http://f:fifty-two/c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-newline-novalid.html
new file mode 100644
index 0000000000..5d1d924a16
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-newline</title>
+<video><track src="http://f:
+/c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-single-letter-novalid.html
new file mode 100644
index 0000000000..40ee9156a4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-single-letter</title>
+<video><track src="http://f:b/c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-space-novalid.html
new file mode 100644
index 0000000000..d6e85ae51f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-space</title>
+<video><track src="http://f: /c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-tab-novalid.html
new file mode 100644
index 0000000000..a4963cf999
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-tab</title>
+<video><track src="http://f: /c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/query-leading-space-novalid.html
new file mode 100644
index 0000000000..d5d1f27826
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-leading-space</title>
+<video><track src="http://f:21/b? d"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..489f0fa378
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-trailing-space</title>
+<video><track src="http://f:21/b?d #"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..e0489ac604
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-data-contains-fragment-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>src warning: scheme-data-contains-fragment</title>
+<video><track src="data:text/html,test#test"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..5799c3fb98
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="data:/example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..6921ade0ac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-file-backslash</title>
+<video><track src="file:c:\foo\bar.html"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..19ec1b90d4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="file:/C|/foo/bar"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..5fd3e20328
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="file://abc|/foo/bar"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..3fcc985f90
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="file:///C|/foo/bar"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..35e1744784
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="ftp:example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..e9a5385879
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="ftp:/example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..ed6968d4ff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-backslash</title>
+<video><track src="http:\\foo.com\"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..79ddaf10a3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http::@c:29"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..813e4aeff1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http:foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..1db1adad1b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http:[61:27]/:foo"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..9c262feea6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http:/example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..f2999019e2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="https:example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..7304844126
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="https:/example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..32e379e994
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-cr</title>
+<video><track src="a: foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..81bf43c97f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-newline</title>
+<video><track src="a:
+foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..65f414637c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-space</title>
+<video><track src="a: foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..924eb4e868
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-tab</title>
+<video><track src="a: foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..603c7d2104
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-backslash</title>
+<video><track src="http://a\b:c\d@foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..58b50489ff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://&a:foo(b]c@d:2/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..8bd21d9873
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://foo:💩@example.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..e20902adaa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://::@c@d:2"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/track/src/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/track/src/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..9886684074
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/track/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>
+<video><track src="http://💩:foo@example.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/u/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/u/model-isvalid.html
new file mode 100644
index 0000000000..0ce3f95b46
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/u/model-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>the "u" element is not obsolete</title>
+<meta charset=utf-8>
+</head>
+<body>
+<u>baz</u>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ul/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ul/model-isvalid.html
new file mode 100644
index 0000000000..3f3adbf9b4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ul/model-isvalid.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Unordered List: &lt;ul&gt; &lt;li&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <ul class="class" id="id" lang="en">
+ <li class="class" id="id2" lang="en">text</li>
+ </ul>
+
+ <!-- can be empty -->
+ <ul></ul>
+ <ul>
+ <li></li>
+ <li></li>
+ </ul>
+
+ <!-- can contain structured inline -->
+ <ul>
+ <li>some <em>text</em>
+ <pre>more text</pre>
+ </li>
+ </ul>
+
+ <!-- can contain blocks -->
+ <ul>
+ <li>
+ <p>some</p>
+ <p>text</p>
+ </li>
+ </ul>
+
+ <!-- can contain interactive -->
+ <ul><li><a>text</a></li></ul>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/ul/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/ul/model-novalid.html
new file mode 100644
index 0000000000..9bb4bf0903
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/ul/model-novalid.html
@@ -0,0 +1,55 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Unordered List: &lt;ul&gt; &lt;li&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <ul class="class" id="id" lang="en">
+ <li class="class" id="id" lang="en">text</li>
+ </ul>
+
+ <!-- is structured inline -->
+ <p>paragraph
+ <ul class="class" id="id" lang="en">
+ <li class="class" id="id" lang="en">text</li>
+ </ul>
+ </p>
+
+ <!-- can be empty -->
+ <ul></ul>
+ <ul>
+ <li></li>
+ <li></li>
+ </ul>
+
+ <!-- cannot contain structured inline -->
+ <ul>
+ <li>some <em>text</em>
+ <pre>more text</pre>
+ </li>
+ </ul>
+ <p>paragraph
+ <ul>
+ <li>some <em>text</em>
+ <pre>more text</pre>
+ </li>
+ </ul>
+ </p>
+
+ <!-- can contain blocks -->
+ <ul>
+ <li>
+ <p>some</p>
+ <p>text</p>
+ </li>
+ </ul>
+
+ <!-- can contain interactive -->
+ <ul><li><a>text</a></li></ul>
+ <p>paragraph
+ <ul><li><a>text</a></li></ul>
+ </p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/var/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/var/model-isvalid.html
new file mode 100644
index 0000000000..06a71d4b31
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/var/model-isvalid.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;var&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><var class="class" lang="en">text</var></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><var class="class" lang="en">text</var></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <var></var></p>
+ <p>text <dfn><var></var></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><var><a>text</a></var></p>
+ <p><dfn><var><a>text</a></var></dfn></p>
+
+ <!-- cannot contain structured inline -->
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/var/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/var/model-novalid.html
new file mode 100644
index 0000000000..853481ad10
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/var/model-novalid.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;var&gt;</title>
+</head>
+<body>
+ <!-- not a block -->
+ <var>text</var>
+
+ <!-- cannot contain structured inline -->
+ <p><var><ul><li>text</li></ul></var></p>
+
+ <!-- cannot contain interactive if parent forbids interactive -->
+ <p><a><var><a>text</a></var></a></p>
+ <p><a><dfn><var><a>text</a></var></dfn></a></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/model-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/model-isvalid.html
new file mode 100644
index 0000000000..4d49826832
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/model-isvalid.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>video with flow content and flow parent</title>
+<div><video><p>foo</p></video></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/model-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/model-novalid.html
new file mode 100644
index 0000000000..fa9af26197
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/model-novalid.html
@@ -0,0 +1,4 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>video with flow content and phrasing parent</title>
+<span><video><p>foo</p></video></span>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster-empty-novalid.html
new file mode 100644
index 0000000000..efd5238b69
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty poster is not valid</title>
+<video poster=""></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster-isvalid.html
new file mode 100644
index 0000000000..effe0a3866
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid poster</title>
+<video poster="a:foo.com"></video><!-- scheme-private -->
+<video poster="foo:/"></video><!-- scheme-private-slash -->
+<video poster="foo://"></video><!-- scheme-private-slash-slash -->
+<video poster="foo:/bar.com/"></video><!-- scheme-private-path -->
+<video poster="foo://///////"></video><!-- scheme-private-path-leading-slashes-only -->
+<video poster="foo://///////bar.com/"></video><!-- scheme-private-path-leading-slashes-chars -->
+<video poster="foo:////://///"></video><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<video poster="c:/foo"></video><!-- scheme-private-single-letter -->
+<video poster="madeupscheme:/example.com/"></video><!-- scheme-private-single-slash -->
+<video poster="file:/example.com/"></video><!-- scheme-file-single-slash -->
+<video poster="ftps:/example.com/"></video><!-- scheme-ftps-single-slash -->
+<video poster="gopher:/example.com/"></video><!-- scheme-gopher-single-slash -->
+<video poster="ws:/example.com/"></video><!-- scheme-ws-single-slash -->
+<video poster="wss:/example.com/"></video><!-- scheme-wss-single-slash -->
+<video poster="javascript:/example.com/"></video><!-- scheme-javascript-single-slash -->
+<video poster="mailto:/example.com/"></video><!-- scheme-mailto-single-slash -->
+<video poster="madeupscheme:example.com/"></video><!-- scheme-private-no-slash -->
+<video poster="ftps:example.com/"></video><!-- scheme-ftps-no-slash -->
+<video poster="gopher:example.com/"></video><!-- scheme-gopher-no-slash -->
+<video poster="wss:example.com/"></video><!-- scheme-wss-no-slash -->
+<video poster="mailto:example.com/"></video><!-- scheme-mailto-no-slash -->
+<video poster="data:text/plain,foo"></video><!-- scheme-data-no-slash -->
+<video poster="http://user:pass@foo:21/bar;par?b#c"></video><!-- userinfo -->
+<video poster="http://[2001::1]"></video><!-- host-ipv6 -->
+<video poster="http://[2001::1]:80"></video><!-- host-ipv6-port -->
+<video poster="http://f:/c"></video><!-- port-none-but-colon -->
+<video poster="http://f:0/c"></video><!-- port-0 -->
+<video poster="http://f:00000000000000/c"></video><!-- port-00000000000000 -->
+<video poster="http://f:00000000000000000000080/c"></video><!-- port-00000000000000000000080 -->
+<video poster="http://a:b@c:29/d"></video><!-- userinfo-host-port-path -->
+<video poster="http://foo.com:b@d/"></video><!-- userinfo-username-non-alpha -->
+<video poster="http://foo/abcd?efgh?ijkl"></video><!-- query-contains-question-mark -->
+<video poster="http://foo/abcd#foo?bar"></video><!-- fragment-contains-question-mark -->
+<video poster="http://example.com/foo/%2e"></video><!-- path-percent-encoded-dot -->
+<video poster="http://example.com/%20foo"></video><!-- path-percent-encoded-space -->
+<video poster="http://example.com/©zbar"></video><!-- path-non-ascii -->
+<video poster="http://example.com/foo%41%7a"></video><!-- path-percent-encoded-multiple -->
+<video poster="http://example.com/foo%91"></video><!-- path-percent-encoded-u0091 -->
+<video poster="http://example.com/foo%00"></video><!-- path-percent-encoded-u0000 -->
+<video poster="http://example.com/%3A%3a%3C%3c"></video><!-- path-percent-encoded-mixed-case -->
+<video poster="http://example.com/你好你好"></video><!-- path-unicode-han -->
+<video poster="http://example.com//foo"></video><!-- path-uFEFF -->
+<video poster="http://example.com/‮/foo/‭/bar"></video><!-- path-u202E-u202D -->
+<video poster="http://💩"></video><!-- host-is-pile-of-poo -->
+<video poster="http💩//:foo"></video><!-- path-contains-pile-of-poo -->
+<video poster="http://example.com/foo?💩"></video><!-- query-contains-pile-of-poo -->
+<video poster="http://example.com/foo#💩"></video><!-- fragment-contains-pile-of-poo -->
+<video poster="http://192.0x00A80001"></video><!-- host-192.0x00A80001 -->
+<video poster="http://%25DOMAIN:foobar@foodomain.com"></video><!-- userinfo-username-contains-percent-encoded -->
+<video poster="http://@www.example.com"></video><!-- userinfo-empty -->
+<video poster="http://:b@www.example.com"></video><!-- userinfo-user-empty -->
+<video poster="http://a:@www.example.com"></video><!-- userinfo-password-empty -->
+<video poster="http://GOO​⁠goo.com"></video><!-- host-exotic-whitespace -->
+<video poster="http://www.foo。bar.com"></video><!-- host-exotic-dot -->
+<video poster="http://Go.com"></video><!-- host-fullwidth -->
+<video poster="http://你好你好"></video><!-- host-idn-unicode-han -->
+<video poster="http://192.168.0.257/"></video><!-- host-IP-address-broken -->
+<video poster="//foo/bar"></video><!-- scheme-schemeless-relative -->
+<video poster="/"></video><!-- path-slash-only-relative -->
+<video poster="/a/b/c"></video><!-- path-simple-relative -->
+<video poster="/a%2fc"></video><!-- path-percent-encoded-slash-relative -->
+<video poster="/a/%2f/c"></video><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<video poster="?"></video><!-- query-empty-no-path-relative -->
+<video poster="#"></video><!-- fragment-empty-hash-only-no-path-relative -->
+<video poster="#/"></video><!-- fragment-slash-relative -->
+<video poster="#;?"></video><!-- fragment-semicolon-question-mark-relative -->
+<video poster="#β"></video><!-- fragment-non-ascii-relative -->
+<video poster="foo.com"></video><!-- scheme-none-relative -->
+<video poster=":"></video><!-- path-colon-relative -->
+<video poster=":a"></video><!-- path-leading-colon-letter-relative -->
+<video poster=":foo.com"></video><!-- path-leading-colon-chars-relative -->
+<video poster=":/"></video><!-- path-leading-colon-slash-relative -->
+<video poster=":#"></video><!-- path-leading-colon-hash-relative -->
+<video poster=":23"></video><!-- path-leading-colon-number-relative -->
+<video poster="/:23"></video><!-- path-slash-colon-number-relative -->
+<video poster="::"></video><!-- path-leading-colon-colon-relative -->
+<video poster="::23"></video><!-- path-colon-colon-number-relative -->
+<video poster="💩http://foo"></video><!-- path-starts-with-pile-of-poo -->
+<video poster="/💩"></video><!-- path-slash-pile-of-poo -->
+<video poster="File://foo/bar.html"></video><!-- scheme-file-uppercase -->
+<video poster="file://C|/foo/bar"></video><!-- scheme-file-slash-slash-c-bar -->
+<video poster="file://server/foo/bar"></video><!-- scheme-file-host-included -->
+<video poster="file:///foo/bar.txt"></video><!-- scheme-file-host-empty -->
+<video poster="file:"></video><!-- scheme-file-scheme-only -->
+<video poster="file:/"></video><!-- scheme-file-slash-only -->
+<video poster="file://"></video><!-- scheme-file-slash-slash-only -->
+<video poster="file:///"></video><!-- scheme-file-slash-slash-slash-only -->
+<video poster="file:test"></video><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster-whitespace-only-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster-whitespace-only-novalid.html
new file mode 100644
index 0000000000..b53bf19026
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster-whitespace-only-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty poster is not valid</title>
+<video poster="
+"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..e2d9764e37
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: fragment-backslash</title>
+<video poster="#\"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..cb01ae009f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: fragment-contains-hash</title>
+<video poster="http://foo/path#f#g"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..8bf3631bfb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: fragment-leading-space</title>
+<video poster="http://f:21/b# e"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-cr-novalid.html
new file mode 100644
index 0000000000..8e7cd1af04
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: host-cr</title>
+<video poster="http://example. org"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..e3c4eafc65
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: host-double-percent-encoded</title>
+<video poster="http://%41.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..34f58f6fa5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: host-double-percent-encoded-percent-encoded</title>
+<video poster="http://%ef%bc%85%ef%bc%94%ef%bc%91.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-empty-novalid.html
new file mode 100644
index 0000000000..704af4b76a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: host-empty</title>
+<video poster="http://"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..896ed88500
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: host-empty-userinfo-empty</title>
+<video poster="http://@/www.example.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..2ac4d5f7f3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: host-empty-with-userinfo</title>
+<video poster="http://user:pass@/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..5458f16e65
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: host-hostname-in-brackets</title>
+<video poster="http://[www.google.com]/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..c8f206dde3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: host-invalid-unicode</title>
+<video poster="http://﷐zyx.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..b891644888
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: host-invalid-unicode-percent-encoded</title>
+<video poster="http://%ef%b7%90zyx.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-newline-novalid.html
new file mode 100644
index 0000000000..de25e97766
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: host-newline</title>
+<video poster="http://example.
+org"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-space-novalid.html
new file mode 100644
index 0000000000..1e35a2f962
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: host-space</title>
+<video poster="http://example .org"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..094eec8770
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: host-square-brackets-port-contains-colon</title>
+<video poster="http://[1::2]:3:4"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-tab-novalid.html
new file mode 100644
index 0000000000..c5455bee11
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: host-tab</title>
+<video poster="http://example .org"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..81c2776382
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: host-u0000-percent-encoded</title>
+<video poster="http://%00.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..34ccb2844a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: host-u0000-percent-encoded-percent-encoded</title>
+<video poster="http://%ef%bc%85%ef%bc%90%ef%bc%90.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..170314bbe5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: path-bare-percent-sign</title>
+<video poster="http://example.com/foo%"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-contains-space-novalid.html
new file mode 100644
index 0000000000..e17733c2eb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: path-contains-space</title>
+<video poster="/a/ /c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..83d43d2b4e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: path-leading-backslash-at-sign</title>
+<video poster="http://foo.com/\@"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..a0a8c6c52a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: path-leading-colon-backslash</title>
+<video poster=":\"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..5e63c1b4d6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: path-leading-colon-chars-backslash</title>
+<video poster=":foo.com\"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-leading-space-novalid.html
new file mode 100644
index 0000000000..e738c1feb1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: path-leading-space</title>
+<video poster="http://f:21/ b"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..1c211fd4ca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: path-percent-encoded-malformed</title>
+<video poster="http://example.com/foo/%2e%2"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..786f91dac1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: path-relative-square-brackets</title>
+<video poster="[61:24:74]:98"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-tab-novalid.html
new file mode 100644
index 0000000000..bb9fc12b17
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: path-tab</title>
+<video poster="http://example.com/foo bar"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..f66866c8fc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: path-trailing-space</title>
+<video poster="http://f:21/b ?"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-u0091-novalid.html
new file mode 100644
index 0000000000..360426c3a9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: path-u0091</title>
+<video poster="http://example.com/foo‘"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-999999-novalid.html
new file mode 100644
index 0000000000..9ceec19628
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: port-999999</title>
+<video poster="http://f:999999/c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-cr-novalid.html
new file mode 100644
index 0000000000..28796729d7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: port-cr</title>
+<video poster="http://f: /c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..b5b6bef5c7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: port-leading-colon-bracket-colon</title>
+<video poster="http://2001::1]:80"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..bd5c281016
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: port-leading-colon</title>
+<video poster="http://2001::1"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..354fe3103d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: port-leading-dash</title>
+<video poster="http://foo:-80/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..04a2cf18e8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: port-multiple-letters</title>
+<video poster="http://f:fifty-two/c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-newline-novalid.html
new file mode 100644
index 0000000000..1634a10e0b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: port-newline</title>
+<video poster="http://f:
+/c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-single-letter-novalid.html
new file mode 100644
index 0000000000..8b95dcc647
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: port-single-letter</title>
+<video poster="http://f:b/c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-space-novalid.html
new file mode 100644
index 0000000000..6164a9206f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: port-space</title>
+<video poster="http://f: /c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-tab-novalid.html
new file mode 100644
index 0000000000..5dbbdd5b4f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: port-tab</title>
+<video poster="http://f: /c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/query-leading-space-novalid.html
new file mode 100644
index 0000000000..e465e950b8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: query-leading-space</title>
+<video poster="http://f:21/b? d"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..640e399720
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: query-trailing-space</title>
+<video poster="http://f:21/b?d #"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..4207e1babe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/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>
+<video poster="data:text/html,test#test"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..61a3376e10
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-data-single-slash</title>
+<video poster="data:/example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..2d2a13b1a5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-file-backslash</title>
+<video poster="file:c:\foo\bar.html"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..f6b4897d97
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-file-single-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-file-single-slash-c-bar</title>
+<video poster="file:/C|/foo/bar"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..c339707f61
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-file-slash-slash-abc-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-file-slash-slash-abc-bar</title>
+<video poster="file://abc|/foo/bar"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..40b21e03ac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-file-triple-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-file-triple-slash-c-bar</title>
+<video poster="file:///C|/foo/bar"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..b06cd92de3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-ftp-no-slash</title>
+<video poster="ftp:example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..2db8cbb1d3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-ftp-single-slash</title>
+<video poster="ftp:/example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..82223ebe18
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-http-backslash</title>
+<video poster="http:\\foo.com\"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..cb9cb51916
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-http-no-slash-colon</title>
+<video poster="http::@c:29"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..a55b66b5a9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-http-no-slash</title>
+<video poster="http:foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..53028e1ea3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-http-no-slash-square-bracket</title>
+<video poster="http:[61:27]/:foo"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..e21f10cb92
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-http-single-slash</title>
+<video poster="http:/example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..103a89e3e2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-https-no-slash</title>
+<video poster="https:example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..0c2002984d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-https-single-slash</title>
+<video poster="https:/example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..7ab4fd9533
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-trailing-cr</title>
+<video poster="a: foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..e411aa2956
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-trailing-newline</title>
+<video poster="a:
+foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..8018630da5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-trailing-space</title>
+<video poster="a: foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..176164f8f9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: scheme-trailing-tab</title>
+<video poster="a: foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..5842693077
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: userinfo-backslash</title>
+<video poster="http://a\b:c\d@foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..a4afc95e89
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: userinfo-password-bad-chars</title>
+<video poster="http://&a:foo(b]c@d:2/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..4948ef6dad
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: userinfo-password-contains-pile-of-poo</title>
+<video poster="http://foo:💩@example.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..c0527bc19a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: userinfo-username-contains-at-sign</title>
+<video poster="http://::@c@d:2"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..0275ab7e67
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/poster/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid poster: userinfo-username-contains-pile-of-poo</title>
+<video poster="http://💩:foo@example.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src-isvalid.html
new file mode 100644
index 0000000000..6053f99466
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid src</title>
+<video src="a:foo.com"></video><!-- scheme-private -->
+<video src="foo:/"></video><!-- scheme-private-slash -->
+<video src="foo://"></video><!-- scheme-private-slash-slash -->
+<video src="foo:/bar.com/"></video><!-- scheme-private-path -->
+<video src="foo://///////"></video><!-- scheme-private-path-leading-slashes-only -->
+<video src="foo://///////bar.com/"></video><!-- scheme-private-path-leading-slashes-chars -->
+<video src="foo:////://///"></video><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<video src="c:/foo"></video><!-- scheme-private-single-letter -->
+<video src="madeupscheme:/example.com/"></video><!-- scheme-private-single-slash -->
+<video src="file:/example.com/"></video><!-- scheme-file-single-slash -->
+<video src="ftps:/example.com/"></video><!-- scheme-ftps-single-slash -->
+<video src="gopher:/example.com/"></video><!-- scheme-gopher-single-slash -->
+<video src="ws:/example.com/"></video><!-- scheme-ws-single-slash -->
+<video src="wss:/example.com/"></video><!-- scheme-wss-single-slash -->
+<video src="javascript:/example.com/"></video><!-- scheme-javascript-single-slash -->
+<video src="mailto:/example.com/"></video><!-- scheme-mailto-single-slash -->
+<video src="madeupscheme:example.com/"></video><!-- scheme-private-no-slash -->
+<video src="ftps:example.com/"></video><!-- scheme-ftps-no-slash -->
+<video src="gopher:example.com/"></video><!-- scheme-gopher-no-slash -->
+<video src="wss:example.com/"></video><!-- scheme-wss-no-slash -->
+<video src="mailto:example.com/"></video><!-- scheme-mailto-no-slash -->
+<video src="data:text/plain,foo"></video><!-- scheme-data-no-slash -->
+<video src="http://user:pass@foo:21/bar;par?b#c"></video><!-- userinfo -->
+<video src="http://[2001::1]"></video><!-- host-ipv6 -->
+<video src="http://[2001::1]:80"></video><!-- host-ipv6-port -->
+<video src="http://f:/c"></video><!-- port-none-but-colon -->
+<video src="http://f:0/c"></video><!-- port-0 -->
+<video src="http://f:00000000000000/c"></video><!-- port-00000000000000 -->
+<video src="http://f:00000000000000000000080/c"></video><!-- port-00000000000000000000080 -->
+<video src="http://a:b@c:29/d"></video><!-- userinfo-host-port-path -->
+<video src="http://foo.com:b@d/"></video><!-- userinfo-username-non-alpha -->
+<video src="http://foo/abcd?efgh?ijkl"></video><!-- query-contains-question-mark -->
+<video src="http://foo/abcd#foo?bar"></video><!-- fragment-contains-question-mark -->
+<video src="http://example.com/foo/%2e"></video><!-- path-percent-encoded-dot -->
+<video src="http://example.com/%20foo"></video><!-- path-percent-encoded-space -->
+<video src="http://example.com/©zbar"></video><!-- path-non-ascii -->
+<video src="http://example.com/foo%41%7a"></video><!-- path-percent-encoded-multiple -->
+<video src="http://example.com/foo%91"></video><!-- path-percent-encoded-u0091 -->
+<video src="http://example.com/foo%00"></video><!-- path-percent-encoded-u0000 -->
+<video src="http://example.com/%3A%3a%3C%3c"></video><!-- path-percent-encoded-mixed-case -->
+<video src="http://example.com/你好你好"></video><!-- path-unicode-han -->
+<video src="http://example.com//foo"></video><!-- path-uFEFF -->
+<video src="http://example.com/‮/foo/‭/bar"></video><!-- path-u202E-u202D -->
+<video src="http://💩"></video><!-- host-is-pile-of-poo -->
+<video src="http💩//:foo"></video><!-- path-contains-pile-of-poo -->
+<video src="http://example.com/foo?💩"></video><!-- query-contains-pile-of-poo -->
+<video src="http://example.com/foo#💩"></video><!-- fragment-contains-pile-of-poo -->
+<video src="http://192.0x00A80001"></video><!-- host-192.0x00A80001 -->
+<video src="http://%25DOMAIN:foobar@foodomain.com"></video><!-- userinfo-username-contains-percent-encoded -->
+<video src="http://@www.example.com"></video><!-- userinfo-empty -->
+<video src="http://:b@www.example.com"></video><!-- userinfo-user-empty -->
+<video src="http://a:@www.example.com"></video><!-- userinfo-password-empty -->
+<video src="http://GOO​⁠goo.com"></video><!-- host-exotic-whitespace -->
+<video src="http://www.foo。bar.com"></video><!-- host-exotic-dot -->
+<video src="http://Go.com"></video><!-- host-fullwidth -->
+<video src="http://你好你好"></video><!-- host-idn-unicode-han -->
+<video src="http://192.168.0.257/"></video><!-- host-IP-address-broken -->
+<video src="//foo/bar"></video><!-- scheme-schemeless-relative -->
+<video src="/"></video><!-- path-slash-only-relative -->
+<video src="/a/b/c"></video><!-- path-simple-relative -->
+<video src="/a%2fc"></video><!-- path-percent-encoded-slash-relative -->
+<video src="/a/%2f/c"></video><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<video src="?"></video><!-- query-empty-no-path-relative -->
+<video src="#"></video><!-- fragment-empty-hash-only-no-path-relative -->
+<video src="#/"></video><!-- fragment-slash-relative -->
+<video src="#;?"></video><!-- fragment-semicolon-question-mark-relative -->
+<video src="#β"></video><!-- fragment-non-ascii-relative -->
+<video src="foo.com"></video><!-- scheme-none-relative -->
+<video src=":"></video><!-- path-colon-relative -->
+<video src=":a"></video><!-- path-leading-colon-letter-relative -->
+<video src=":foo.com"></video><!-- path-leading-colon-chars-relative -->
+<video src=":/"></video><!-- path-leading-colon-slash-relative -->
+<video src=":#"></video><!-- path-leading-colon-hash-relative -->
+<video src=":23"></video><!-- path-leading-colon-number-relative -->
+<video src="/:23"></video><!-- path-slash-colon-number-relative -->
+<video src="::"></video><!-- path-leading-colon-colon-relative -->
+<video src="::23"></video><!-- path-colon-colon-number-relative -->
+<video src="💩http://foo"></video><!-- path-starts-with-pile-of-poo -->
+<video src="/💩"></video><!-- path-slash-pile-of-poo -->
+<video src="File://foo/bar.html"></video><!-- scheme-file-uppercase -->
+<video src="file://C|/foo/bar"></video><!-- scheme-file-slash-slash-c-bar -->
+<video src="file://server/foo/bar"></video><!-- scheme-file-host-included -->
+<video src="file:///foo/bar.txt"></video><!-- scheme-file-host-empty -->
+<video src="file:"></video><!-- scheme-file-scheme-only -->
+<video src="file:/"></video><!-- scheme-file-slash-only -->
+<video src="file://"></video><!-- scheme-file-slash-slash-only -->
+<video src="file:///"></video><!-- scheme-file-slash-slash-slash-only -->
+<video src="file:test"></video><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..ee68bff3d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-backslash</title>
+<video src="#\"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..b9d870a9ea
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-contains-hash</title>
+<video src="http://foo/path#f#g"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..4b15521603
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: fragment-leading-space</title>
+<video src="http://f:21/b# e"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-cr-novalid.html
new file mode 100644
index 0000000000..961ef7768d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-cr</title>
+<video src="http://example. org"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..920ee8a546
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://%41.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..4134e80de8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://%ef%bc%85%ef%bc%94%ef%bc%91.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-empty-novalid.html
new file mode 100644
index 0000000000..816c3742d2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-empty</title>
+<video src="http://"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..34f65d1a84
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://@/www.example.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..95dfb6f5b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://user:pass@/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..0768743f4e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://[www.google.com]/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..9508562d7b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-invalid-unicode</title>
+<video src="http://﷐zyx.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..b29836ab97
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://%ef%b7%90zyx.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-newline-novalid.html
new file mode 100644
index 0000000000..41537aeaca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-newline</title>
+<video src="http://example.
+org"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-space-novalid.html
new file mode 100644
index 0000000000..f480f32c5c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-space</title>
+<video src="http://example .org"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..447a2aa614
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://[1::2]:3:4"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-tab-novalid.html
new file mode 100644
index 0000000000..4076b232c7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: host-tab</title>
+<video src="http://example .org"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..549297e189
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://%00.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..8041f2d781
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://%ef%bc%85%ef%bc%90%ef%bc%90.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..d9c3ee5718
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://example.com/foo%"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-contains-space-novalid.html
new file mode 100644
index 0000000000..9d5e0c7994
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-contains-space</title>
+<video src="/a/ /c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..99bea08254
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://foo.com/\@"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..a6c02e7d68
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src=":\"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..d16c250a86
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src=":foo.com\"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-leading-space-novalid.html
new file mode 100644
index 0000000000..72d3eb00fb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-leading-space</title>
+<video src="http://f:21/ b"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..d4a76d67ff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://example.com/foo/%2e%2"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..70e5f34d69
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="[61:24:74]:98"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-tab-novalid.html
new file mode 100644
index 0000000000..9600b35c9b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-tab</title>
+<video src="http://example.com/foo bar"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..8d778ed212
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-trailing-space</title>
+<video src="http://f:21/b ?"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-u0091-novalid.html
new file mode 100644
index 0000000000..3a8729e2e6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: path-u0091</title>
+<video src="http://example.com/foo‘"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-999999-novalid.html
new file mode 100644
index 0000000000..e877d815b9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-999999</title>
+<video src="http://f:999999/c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-cr-novalid.html
new file mode 100644
index 0000000000..c2ccfb0960
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-cr</title>
+<video src="http://f: /c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..e5fb232d4a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://2001::1]:80"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..96e191517d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-colon</title>
+<video src="http://2001::1"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..fe6f633d4a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-leading-dash</title>
+<video src="http://foo:-80/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..3adbe71514
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-multiple-letters</title>
+<video src="http://f:fifty-two/c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-newline-novalid.html
new file mode 100644
index 0000000000..8537b67379
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-newline</title>
+<video src="http://f:
+/c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-single-letter-novalid.html
new file mode 100644
index 0000000000..e26c266056
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-single-letter</title>
+<video src="http://f:b/c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-space-novalid.html
new file mode 100644
index 0000000000..a64478c873
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-space</title>
+<video src="http://f: /c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-tab-novalid.html
new file mode 100644
index 0000000000..06a2197333
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: port-tab</title>
+<video src="http://f: /c"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/query-leading-space-novalid.html
new file mode 100644
index 0000000000..7fadece7cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-leading-space</title>
+<video src="http://f:21/b? d"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..c63758bf84
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: query-trailing-space</title>
+<video src="http://f:21/b?d #"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..b0e34b8fcc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="data:text/html,test#test"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..8d8dae7125
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="data:/example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..e8901f2c76
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-file-backslash</title>
+<video src="file:c:\foo\bar.html"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..4b0da95095
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="file:/C|/foo/bar"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..34caa671c7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="file://abc|/foo/bar"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..24955ef06f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="file:///C|/foo/bar"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..5667bea15a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="ftp:example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..e9dcf201b6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="ftp:/example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..6809d90d1b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-http-backslash</title>
+<video src="http:\\foo.com\"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..e519b030b8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http::@c:29"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..4b8d317775
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http:foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..7251562c46
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http:[61:27]/:foo"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..33f3518fcd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http:/example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..c80331a6e7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="https:example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..876011ec09
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="https:/example.com/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..bb0a0de900
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-cr</title>
+<video src="a: foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..01bb310f91
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-newline</title>
+<video src="a:
+foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..6149a4df2b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-space</title>
+<video src="a: foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..4285fea135
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: scheme-trailing-tab</title>
+<video src="a: foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..c18402881c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid src: userinfo-backslash</title>
+<video src="http://a\b:c\d@foo.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..0f34b9ec29
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://&a:foo(b]c@d:2/"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..971c1f0eba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://foo:💩@example.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..a3d5736d1e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://::@c@d:2"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/elements/video/src/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/elements/video/src/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..d3cc8e1abb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/elements/video/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>
+<video src="http://💩:foo@example.com"></video>
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/001-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/001-isvalid.html
new file mode 100644
index 0000000000..445394dde9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/001-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen</title>
+<link href='foo' media='screen' rel='stylesheet'>
+</head>
+<body>
+<p>screen</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/001-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/001-novalid.html
new file mode 100644
index 0000000000..d111776040
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/001-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and</title>
+<link href='foo' media='screen and' rel='stylesheet'>
+</head>
+<body>
+<p>screen and</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/002-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/002-isvalid.html
new file mode 100644
index 0000000000..8820d56547
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/002-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title> screen</title>
+<link href='foo' media=' screen' rel='stylesheet'>
+</head>
+<body>
+<p> screen</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/002-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/002-novalid.html
new file mode 100644
index 0000000000..819d4622fb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/002-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>alla</title>
+<link href='foo' media='alla' rel='stylesheet'>
+</head>
+<body>
+<p>alla</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/003-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/003-isvalid.html
new file mode 100644
index 0000000000..220eb820bf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/003-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>all</title>
+<link href='foo' media='all' rel='stylesheet'>
+</head>
+<body>
+<p>all</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/003-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/003-novalid.html
new file mode 100644
index 0000000000..81a7db013d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/003-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>PROJECTİON</title>
+<link href='foo' media='PROJECTİON' rel='stylesheet'>
+</head>
+<body>
+<p>PROJECTİON</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/004-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/004-novalid.html
new file mode 100644
index 0000000000..d30fc2055f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/004-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>notscreen</title>
+<link href='foo' media='notscreen' rel='stylesheet'>
+</head>
+<body>
+<p>notscreen</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/005-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/005-isvalid.html
new file mode 100644
index 0000000000..cfcf027d0d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/005-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>not screen</title>
+<link href='foo' media='not screen' rel='stylesheet'>
+</head>
+<body>
+<p>not screen</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/005-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/005-novalid.html
new file mode 100644
index 0000000000..f7bb852938
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/005-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>onlyscreen</title>
+<link href='foo' media='onlyscreen' rel='stylesheet'>
+</head>
+<body>
+<p>onlyscreen</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/006-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/006-isvalid.html
new file mode 100644
index 0000000000..7a24e16a1b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/006-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>only screen</title>
+<link href='foo' media='only screen' rel='stylesheet'>
+</head>
+<body>
+<p>only screen</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/006-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/006-novalid.html
new file mode 100644
index 0000000000..5315c8afe7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/006-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screenand (min-width: 400px)</title>
+<link href='foo' media='screenand (min-width: 400px)' rel='stylesheet'>
+</head>
+<body>
+<p>screenand (min-width: 400px)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/007-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/007-isvalid.html
new file mode 100644
index 0000000000..59c4a8409c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/007-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400px)</title>
+<link href='foo' media='screen and (min-width: 400px)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400px)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/007-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/007-novalid.html
new file mode 100644
index 0000000000..122d5ce778
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/007-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and(min-width: 400px)</title>
+<link href='foo' media='screen and(min-width: 400px)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and(min-width: 400px)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/008-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/008-isvalid.html
new file mode 100644
index 0000000000..544bcbeef0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/008-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width:400px)</title>
+<link href='foo' media='screen and (min-width:400px)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width:400px)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/008-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/008-novalid.html
new file mode 100644
index 0000000000..4531534948
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/008-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400px;)</title>
+<link href='foo' media='screen and (min-width: 400px;)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400px;)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/009-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/009-isvalid.html
new file mode 100644
index 0000000000..cee1a4aba1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/009-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and ( min-width: 400px )</title>
+<link href='foo' media='screen and ( min-width: 400px )' rel='stylesheet'>
+</head>
+<body>
+<p>screen and ( min-width: 400px )</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/009-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/009-novalid.html
new file mode 100644
index 0000000000..d44dbfa402
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/009-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400uu)</title>
+<link href='foo' media='screen and (min-width: 400uu)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400uu)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/010-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/010-isvalid.html
new file mode 100644
index 0000000000..43584464f7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/010-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and ( min-width : 400px )</title>
+<link href='foo' media='screen and ( min-width : 400px )' rel='stylesheet'>
+</head>
+<body>
+<p>screen and ( min-width : 400px )</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/010-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/010-novalid.html
new file mode 100644
index 0000000000..a016cd99c8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/010-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400)</title>
+<link href='foo' media='screen and (min-width: 400)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/011-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/011-isvalid.html
new file mode 100644
index 0000000000..335e0e6fdd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/011-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400px)</title>
+<link href='foo' media='screen and (min-width: 400px)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400px)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/011-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/011-novalid.html
new file mode 100644
index 0000000000..cb9d5ab706
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/011-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400dpi)</title>
+<link href='foo' media='screen and (min-width: 400dpi)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400dpi)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/012-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/012-isvalid.html
new file mode 100644
index 0000000000..4de7b828bd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/012-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and ( min-width: 400px)</title>
+<link href='foo' media='screen and ( min-width: 400px)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and ( min-width: 400px)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/012-valid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/012-valid.html
new file mode 100644
index 0000000000..6395788af4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/012-valid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400px)and (max-width: 600px)</title>
+<link href='foo' media='screen and (min-width: 400px)and (max-width: 600px)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400px)and (max-width: 600px)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/013-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/013-isvalid.html
new file mode 100644
index 0000000000..3f138bfb2b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/013-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400px )</title>
+<link href='foo' media='screen and (min-width: 400px )' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400px )</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/013-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/013-novalid.html
new file mode 100644
index 0000000000..f8b1a9873f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/013-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width:</title>
+<link href='foo' media='screen and (min-width:' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width:</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/014-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/014-isvalid.html
new file mode 100644
index 0000000000..6f01339717
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/014-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400px)</title>
+<link href='foo' media='screen and (min-width: 400px)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400px)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/014-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/014-novalid.html
new file mode 100644
index 0000000000..6d1cfdbf60
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/014-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400px) and</title>
+<link href='foo' media='screen and (min-width: 400px) and' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400px) and</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/015-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/015-isvalid.html
new file mode 100644
index 0000000000..598bb94435
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/015-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400px)</title>
+<link href='foo' media='screen and (min-width: 400px)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400px)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/016-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/016-isvalid.html
new file mode 100644
index 0000000000..6f01339717
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/016-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400px)</title>
+<link href='foo' media='screen and (min-width: 400px)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400px)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/017-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/017-isvalid.html
new file mode 100644
index 0000000000..2b9ebfdce1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/017-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400px)</title>
+<link href='foo' media='screen and (min-width: 400px)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400px)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/018-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/018-isvalid.html
new file mode 100644
index 0000000000..08d398a89b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/018-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400px) and (max-width: 600px)</title>
+<link href='foo' media='screen and (min-width: 400px) and (max-width: 600px)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400px) and (max-width: 600px)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/019-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/019-isvalid.html
new file mode 100644
index 0000000000..8fa020aa5f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/019-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400px) and (max-width: 600px)</title>
+<link href='foo' media='screen and (min-width: 400px) and (max-width: 600px)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400px) and (max-width: 600px)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/019-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/019-novalid.html
new file mode 100644
index 0000000000..16a06b68a7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/019-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (color: 1em)</title>
+<link href='foo' media='screen and (color: 1em)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (color: 1em)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/020-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/020-isvalid.html
new file mode 100644
index 0000000000..0a140e9bfd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/020-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400px) and (max-width: 600px)</title>
+<link href='foo' media='screen and (min-width: 400px) and (max-width: 600px)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400px) and (max-width: 600px)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/020-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/020-novalid.html
new file mode 100644
index 0000000000..d7aada42f9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/020-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>,</title>
+<link href='foo' media=',' rel='stylesheet'>
+</head>
+<body>
+<p>,</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/021-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/021-novalid.html
new file mode 100644
index 0000000000..7b62b98437
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/021-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen,,print</title>
+<link href='foo' media='screen,,print' rel='stylesheet'>
+</head>
+<body>
+<p>screen,,print</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/022-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/022-novalid.html
new file mode 100644
index 0000000000..92f7c609a8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/022-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen,</title>
+<link href='foo' media='screen,' rel='stylesheet'>
+</head>
+<body>
+<p>screen,</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/023-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/023-novalid.html
new file mode 100644
index 0000000000..55ac1c007d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/023-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>,screen</title>
+<link href='foo' media=',screen' rel='stylesheet'>
+</head>
+<body>
+<p>,screen</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/024-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/024-novalid.html
new file mode 100644
index 0000000000..a016cd99c8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/024-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400)</title>
+<link href='foo' media='screen and (min-width: 400)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/025-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/025-isvalid.html
new file mode 100644
index 0000000000..cf0079302c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/025-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (color: 1)</title>
+<link href='foo' media='screen and (color: 1)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (color: 1)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/026-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/026-isvalid.html
new file mode 100644
index 0000000000..ef8523b8c4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/026-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (color: 2)</title>
+<link href='foo' media='screen and (color: 2)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (color: 2)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/027-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/027-isvalid.html
new file mode 100644
index 0000000000..99799c77da
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/027-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (color: 0)</title>
+<link href='foo' media='screen and (color: 0)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (color: 0)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/028-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/028-isvalid.html
new file mode 100644
index 0000000000..61d5b2f68e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/028-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>print and (min-resolution: 100dpi)</title>
+<link href='foo' media='print and (min-resolution: 100dpi)' rel='stylesheet'>
+</head>
+<body>
+<p>print and (min-resolution: 100dpi)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/029-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/029-isvalid.html
new file mode 100644
index 0000000000..a3f8cecfc9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/029-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 400px), print</title>
+<link href='foo' media='screen and (min-width: 400px), print' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 400px), print</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/030-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/030-isvalid.html
new file mode 100644
index 0000000000..c6d20c62cd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/030-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 0)</title>
+<link href='foo' media='screen and (min-width: 0)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 0)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/031-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/031-isvalid.html
new file mode 100644
index 0000000000..944fadb4e7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/031-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 0.0)</title>
+<link href='foo' media='screen and (min-width: 0.0)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 0.0)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/032-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/032-isvalid.html
new file mode 100644
index 0000000000..7c60e5a886
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/032-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: 00)</title>
+<link href='foo' media='screen and (min-width: 00)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: 00)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/033-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/033-isvalid.html
new file mode 100644
index 0000000000..7a9d3acdf8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/033-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (min-width: .0)</title>
+<link href='foo' media='screen and (min-width: .0)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (min-width: .0)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/device-aspect-ratio-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/device-aspect-ratio-novalid.html
new file mode 100644
index 0000000000..2b85193590
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/device-aspect-ratio-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>screen and (device-aspect-ratio: 16/9)</title>
+<link href='foo' media='screen and (device-aspect-ratio: 16/9)' rel='stylesheet'>
+</head>
+<body>
+<p>screen and (device-aspect-ratio: 16/9)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/projection-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/projection-novalid.html
new file mode 100644
index 0000000000..6e362710d9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/projection-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>projection</title>
+<link href='foo' media='projection' rel='stylesheet'>
+</head>
+<body>
+<p>projection</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/source-isvalid.txt b/testing/web-platform/tests/conformance-checkers/html/media-queries/source-isvalid.txt
new file mode 100644
index 0000000000..8096ac36d5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/source-isvalid.txt
@@ -0,0 +1,33 @@
+screen
+ screen
+all
+projection
+not screen
+only screen
+screen and (min-width: 400px)
+screen and (min-width:400px)
+screen and ( min-width: 400px )
+screen and ( min-width : 400px )
+screen and (min-width: 400px)
+screen and ( min-width: 400px)
+screen and (min-width: 400px )
+screen and (min-width: 400px)
+screen and (min-width: 400px)
+screen and (min-width: 400px)
+screen and (min-width: 400px)
+screen and (min-width: 400px) and (max-width: 600px)
+screen and (min-width: 400px) and (max-width: 600px)
+screen and (min-width: 400px) and (max-width: 600px)
+tv and (scan: progressive)
+tv and (scan: interlace)
+screen and (device-aspect-ratio: 16/9)
+screen and (device-aspect-ratio: -16/-9)
+screen and (color: 1)
+screen and (color: 2)
+screen and (color: 0)
+print and (min-resolution: 100dpi)
+screen and (min-width: 400px), print
+screen and (min-width: 0)
+screen and (min-width: 0.0)
+screen and (min-width: 00)
+screen and (min-width: .0) \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/source-novalid.txt b/testing/web-platform/tests/conformance-checkers/html/media-queries/source-novalid.txt
new file mode 100644
index 0000000000..91a5e3fcc8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/source-novalid.txt
@@ -0,0 +1,24 @@
+screen and
+alla
+PROJECTİON
+notscreen
+onlyscreen
+screenand (min-width: 400px)
+screen and(min-width: 400px)
+screen and (min-width: 400px;)
+screen and (min-width: 400uu)
+screen and (min-width: 400)
+screen and (min-width: 400dpi)
+screen and (min-width: 400px)and (max-width: 600px)
+screen and (min-width:
+screen and (min-width: 400px) and
+tv and (scan: 1)
+tv and (scan: İNTERLACE)
+screen and (device-aspect-ratio: 16px/9pt)
+screen and (device-aspect-ratio: 16 / 9)
+screen and (color: 1em)
+,
+screen,,print
+screen,
+,screen
+screen and (min-width: 400) \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/media-queries/tv-novalid.html b/testing/web-platform/tests/conformance-checkers/html/media-queries/tv-novalid.html
new file mode 100644
index 0000000000..6fc7cfcf02
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/media-queries/tv-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>tv and (scan: progressive)</title>
+<link href='foo' media='tv and (scan: progressive)' rel='stylesheet'>
+</head>
+<body>
+<p>tv and (scan: progressive)</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid-empty-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid-empty-isvalid.html
new file mode 100644
index 0000000000..956e951c4d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid-empty-isvalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty itemid is valid</title>
+<div itemid="" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid-isvalid.html
new file mode 100644
index 0000000000..9c0fb7cd86
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid-isvalid.html
@@ -0,0 +1,91 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid itemid</title>
+<div itemid="a:foo.com" itemtype="http://foo" itemscope></div><!-- scheme-private -->
+<div itemid="foo:/" itemtype="http://foo" itemscope></div><!-- scheme-private-slash -->
+<div itemid="foo://" itemtype="http://foo" itemscope></div><!-- scheme-private-slash-slash -->
+<div itemid="foo:/bar.com/" itemtype="http://foo" itemscope></div><!-- scheme-private-path -->
+<div itemid="foo://///////" itemtype="http://foo" itemscope></div><!-- scheme-private-path-leading-slashes-only -->
+<div itemid="foo://///////bar.com/" itemtype="http://foo" itemscope></div><!-- scheme-private-path-leading-slashes-chars -->
+<div itemid="foo:////://///" itemtype="http://foo" itemscope></div><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<div itemid="c:/foo" itemtype="http://foo" itemscope></div><!-- scheme-private-single-letter -->
+<div itemid="madeupscheme:/example.com/" itemtype="http://foo" itemscope></div><!-- scheme-private-single-slash -->
+<div itemid="file:/example.com/" itemtype="http://foo" itemscope></div><!-- scheme-file-single-slash -->
+<div itemid="ftps:/example.com/" itemtype="http://foo" itemscope></div><!-- scheme-ftps-single-slash -->
+<div itemid="gopher:/example.com/" itemtype="http://foo" itemscope></div><!-- scheme-gopher-single-slash -->
+<div itemid="ws:/example.com/" itemtype="http://foo" itemscope></div><!-- scheme-ws-single-slash -->
+<div itemid="wss:/example.com/" itemtype="http://foo" itemscope></div><!-- scheme-wss-single-slash -->
+<div itemid="javascript:/example.com/" itemtype="http://foo" itemscope></div><!-- scheme-javascript-single-slash -->
+<div itemid="mailto:/example.com/" itemtype="http://foo" itemscope></div><!-- scheme-mailto-single-slash -->
+<div itemid="madeupscheme:example.com/" itemtype="http://foo" itemscope></div><!-- scheme-private-no-slash -->
+<div itemid="ftps:example.com/" itemtype="http://foo" itemscope></div><!-- scheme-ftps-no-slash -->
+<div itemid="gopher:example.com/" itemtype="http://foo" itemscope></div><!-- scheme-gopher-no-slash -->
+<div itemid="wss:example.com/" itemtype="http://foo" itemscope></div><!-- scheme-wss-no-slash -->
+<div itemid="mailto:example.com/" itemtype="http://foo" itemscope></div><!-- scheme-mailto-no-slash -->
+<div itemid="data:text/plain,foo" itemtype="http://foo" itemscope></div><!-- scheme-data-no-slash -->
+<div itemid="http://user:pass@foo:21/bar;par?b#c" itemtype="http://foo" itemscope></div><!-- userinfo -->
+<div itemid="http://[2001::1]" itemtype="http://foo" itemscope></div><!-- host-ipv6 -->
+<div itemid="http://[2001::1]:80" itemtype="http://foo" itemscope></div><!-- host-ipv6-port -->
+<div itemid="http://f:/c" itemtype="http://foo" itemscope></div><!-- port-none-but-colon -->
+<div itemid="http://f:0/c" itemtype="http://foo" itemscope></div><!-- port-0 -->
+<div itemid="http://f:00000000000000/c" itemtype="http://foo" itemscope></div><!-- port-00000000000000 -->
+<div itemid="http://f:00000000000000000000080/c" itemtype="http://foo" itemscope></div><!-- port-00000000000000000000080 -->
+<div itemid="http://a:b@c:29/d" itemtype="http://foo" itemscope></div><!-- userinfo-host-port-path -->
+<div itemid="http://foo.com:b@d/" itemtype="http://foo" itemscope></div><!-- userinfo-username-non-alpha -->
+<div itemid="http://foo/abcd?efgh?ijkl" itemtype="http://foo" itemscope></div><!-- query-contains-question-mark -->
+<div itemid="http://foo/abcd#foo?bar" itemtype="http://foo" itemscope></div><!-- fragment-contains-question-mark -->
+<div itemid="http://example.com/foo/%2e" itemtype="http://foo" itemscope></div><!-- path-percent-encoded-dot -->
+<div itemid="http://example.com/%20foo" itemtype="http://foo" itemscope></div><!-- path-percent-encoded-space -->
+<div itemid="http://example.com/©zbar" itemtype="http://foo" itemscope></div><!-- path-non-ascii -->
+<div itemid="http://example.com/foo%41%7a" itemtype="http://foo" itemscope></div><!-- path-percent-encoded-multiple -->
+<div itemid="http://example.com/foo%91" itemtype="http://foo" itemscope></div><!-- path-percent-encoded-u0091 -->
+<div itemid="http://example.com/foo%00" itemtype="http://foo" itemscope></div><!-- path-percent-encoded-u0000 -->
+<div itemid="http://example.com/%3A%3a%3C%3c" itemtype="http://foo" itemscope></div><!-- path-percent-encoded-mixed-case -->
+<div itemid="http://example.com/你好你好" itemtype="http://foo" itemscope></div><!-- path-unicode-han -->
+<div itemid="http://example.com//foo" itemtype="http://foo" itemscope></div><!-- path-uFEFF -->
+<div itemid="http://example.com/‮/foo/‭/bar" itemtype="http://foo" itemscope></div><!-- path-u202E-u202D -->
+<div itemid="http://💩" itemtype="http://foo" itemscope></div><!-- host-is-pile-of-poo -->
+<div itemid="http💩//:foo" itemtype="http://foo" itemscope></div><!-- path-contains-pile-of-poo -->
+<div itemid="http://example.com/foo?💩" itemtype="http://foo" itemscope></div><!-- query-contains-pile-of-poo -->
+<div itemid="http://example.com/foo#💩" itemtype="http://foo" itemscope></div><!-- fragment-contains-pile-of-poo -->
+<div itemid="http://192.0x00A80001" itemtype="http://foo" itemscope></div><!-- host-192.0x00A80001 -->
+<div itemid="http://%25DOMAIN:foobar@foodomain.com" itemtype="http://foo" itemscope></div><!-- userinfo-username-contains-percent-encoded -->
+<div itemid="http://@www.example.com" itemtype="http://foo" itemscope></div><!-- userinfo-empty -->
+<div itemid="http://:b@www.example.com" itemtype="http://foo" itemscope></div><!-- userinfo-user-empty -->
+<div itemid="http://a:@www.example.com" itemtype="http://foo" itemscope></div><!-- userinfo-password-empty -->
+<div itemid="http://GOO​⁠goo.com" itemtype="http://foo" itemscope></div><!-- host-exotic-whitespace -->
+<div itemid="http://www.foo。bar.com" itemtype="http://foo" itemscope></div><!-- host-exotic-dot -->
+<div itemid="http://Go.com" itemtype="http://foo" itemscope></div><!-- host-fullwidth -->
+<div itemid="http://你好你好" itemtype="http://foo" itemscope></div><!-- host-idn-unicode-han -->
+<div itemid="http://192.168.0.257/" itemtype="http://foo" itemscope></div><!-- host-IP-address-broken -->
+<div itemid="//foo/bar" itemtype="http://foo" itemscope></div><!-- scheme-schemeless-relative -->
+<div itemid="/" itemtype="http://foo" itemscope></div><!-- path-slash-only-relative -->
+<div itemid="/a/b/c" itemtype="http://foo" itemscope></div><!-- path-simple-relative -->
+<div itemid="/a%2fc" itemtype="http://foo" itemscope></div><!-- path-percent-encoded-slash-relative -->
+<div itemid="/a/%2f/c" itemtype="http://foo" itemscope></div><!-- path-percent-encoded-slash-plus-slashes-relative -->
+<div itemid="?" itemtype="http://foo" itemscope></div><!-- query-empty-no-path-relative -->
+<div itemid="#" itemtype="http://foo" itemscope></div><!-- fragment-empty-hash-only-no-path-relative -->
+<div itemid="#/" itemtype="http://foo" itemscope></div><!-- fragment-slash-relative -->
+<div itemid="#;?" itemtype="http://foo" itemscope></div><!-- fragment-semicolon-question-mark-relative -->
+<div itemid="#β" itemtype="http://foo" itemscope></div><!-- fragment-non-ascii-relative -->
+<div itemid="foo.com" itemtype="http://foo" itemscope></div><!-- scheme-none-relative -->
+<div itemid=":" itemtype="http://foo" itemscope></div><!-- path-colon-relative -->
+<div itemid=":a" itemtype="http://foo" itemscope></div><!-- path-leading-colon-letter-relative -->
+<div itemid=":foo.com" itemtype="http://foo" itemscope></div><!-- path-leading-colon-chars-relative -->
+<div itemid=":/" itemtype="http://foo" itemscope></div><!-- path-leading-colon-slash-relative -->
+<div itemid=":#" itemtype="http://foo" itemscope></div><!-- path-leading-colon-hash-relative -->
+<div itemid=":23" itemtype="http://foo" itemscope></div><!-- path-leading-colon-number-relative -->
+<div itemid="/:23" itemtype="http://foo" itemscope></div><!-- path-slash-colon-number-relative -->
+<div itemid="::" itemtype="http://foo" itemscope></div><!-- path-leading-colon-colon-relative -->
+<div itemid="::23" itemtype="http://foo" itemscope></div><!-- path-colon-colon-number-relative -->
+<div itemid="💩http://foo" itemtype="http://foo" itemscope></div><!-- path-starts-with-pile-of-poo -->
+<div itemid="/💩" itemtype="http://foo" itemscope></div><!-- path-slash-pile-of-poo -->
+<div itemid="File://foo/bar.html" itemtype="http://foo" itemscope></div><!-- scheme-file-uppercase -->
+<div itemid="file://C|/foo/bar" itemtype="http://foo" itemscope></div><!-- scheme-file-slash-slash-c-bar -->
+<div itemid="file://server/foo/bar" itemtype="http://foo" itemscope></div><!-- scheme-file-host-included -->
+<div itemid="file:///foo/bar.txt" itemtype="http://foo" itemscope></div><!-- scheme-file-host-empty -->
+<div itemid="file:" itemtype="http://foo" itemscope></div><!-- scheme-file-scheme-only -->
+<div itemid="file:/" itemtype="http://foo" itemscope></div><!-- scheme-file-slash-only -->
+<div itemid="file://" itemtype="http://foo" itemscope></div><!-- scheme-file-slash-slash-only -->
+<div itemid="file:///" itemtype="http://foo" itemscope></div><!-- scheme-file-slash-slash-slash-only -->
+<div itemid="file:test" itemtype="http://foo" itemscope></div><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid-scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid-scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..2fe232933a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid-scheme-data-contains-fragment-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>warning: scheme-data-contains-fragment</title>
+<div itemid="data:text/html,test#test" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..a765e5e79e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: fragment-backslash</title>
+<div itemid="#\" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..f365b9e720
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: fragment-contains-hash</title>
+<div itemid="http://foo/path#f#g" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..2f7182fe22
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: fragment-leading-space</title>
+<div itemid="http://f:21/b# e" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-cr-novalid.html
new file mode 100644
index 0000000000..36d3dc82f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: host-cr</title>
+<div itemid="http://example. org" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..8f7618e37e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: host-double-percent-encoded</title>
+<div itemid="http://%41.com" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..c271ada021
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: host-double-percent-encoded-percent-encoded</title>
+<div itemid="http://%ef%bc%85%ef%bc%94%ef%bc%91.com" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-empty-novalid.html
new file mode 100644
index 0000000000..07368db651
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: host-empty</title>
+<div itemid="http://" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..6c5d07beb6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: host-empty-userinfo-empty</title>
+<div itemid="http://@/www.example.com" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..41a664bf22
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: host-empty-with-userinfo</title>
+<div itemid="http://user:pass@/" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..a99370b65f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: host-hostname-in-brackets</title>
+<div itemid="http://[www.google.com]/" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..0104bd3ec7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: host-invalid-unicode</title>
+<div itemid="http://﷐zyx.com" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..940fe8a018
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: host-invalid-unicode-percent-encoded</title>
+<div itemid="http://%ef%b7%90zyx.com" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-newline-novalid.html
new file mode 100644
index 0000000000..6474d8ffa9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: host-newline</title>
+<div itemid="http://example.
+org" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-space-novalid.html
new file mode 100644
index 0000000000..5ccff6990b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: host-space</title>
+<div itemid="http://example .org" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..0c73b6c51d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: host-square-brackets-port-contains-colon</title>
+<div itemid="http://[1::2]:3:4" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-tab-novalid.html
new file mode 100644
index 0000000000..f29256c3d6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: host-tab</title>
+<div itemid="http://example .org" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..154a92579e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: host-u0000-percent-encoded</title>
+<div itemid="http://%00.com" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..6747c076e3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: host-u0000-percent-encoded-percent-encoded</title>
+<div itemid="http://%ef%bc%85%ef%bc%90%ef%bc%90.com" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..e5d5f5fa11
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: path-bare-percent-sign</title>
+<div itemid="http://example.com/foo%" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-contains-space-novalid.html
new file mode 100644
index 0000000000..a1d17b5f8b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: path-contains-space</title>
+<div itemid="/a/ /c" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..0c59308d90
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: path-leading-backslash-at-sign</title>
+<div itemid="http://foo.com/\@" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..08a190900b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: path-leading-colon-backslash</title>
+<div itemid=":\" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..01115ee885
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: path-leading-colon-chars-backslash</title>
+<div itemid=":foo.com\" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-leading-space-novalid.html
new file mode 100644
index 0000000000..042758b438
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: path-leading-space</title>
+<div itemid="http://f:21/ b" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..49cab58db6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: path-percent-encoded-malformed</title>
+<div itemid="http://example.com/foo/%2e%2" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..b750b59e49
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: path-relative-square-brackets</title>
+<div itemid="[61:24:74]:98" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-tab-novalid.html
new file mode 100644
index 0000000000..238d57e992
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: path-tab</title>
+<div itemid="http://example.com/foo bar" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..65b750b6f1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: path-trailing-space</title>
+<div itemid="http://f:21/b ?" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-u0091-novalid.html
new file mode 100644
index 0000000000..ae36d74ead
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: path-u0091</title>
+<div itemid="http://example.com/foo‘" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-999999-novalid.html
new file mode 100644
index 0000000000..6c1f14fbad
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: port-999999</title>
+<div itemid="http://f:999999/c" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-cr-novalid.html
new file mode 100644
index 0000000000..28cededa54
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: port-cr</title>
+<div itemid="http://f: /c" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..24c9fd1542
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: port-leading-colon-bracket-colon</title>
+<div itemid="http://2001::1]:80" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..18656d36ae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: port-leading-colon</title>
+<div itemid="http://2001::1" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..1d275f79d6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: port-leading-dash</title>
+<div itemid="http://foo:-80/" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..e404011d24
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: port-multiple-letters</title>
+<div itemid="http://f:fifty-two/c" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-newline-novalid.html
new file mode 100644
index 0000000000..3b556be6b7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: port-newline</title>
+<div itemid="http://f:
+/c" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-single-letter-novalid.html
new file mode 100644
index 0000000000..b1274e33bf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: port-single-letter</title>
+<div itemid="http://f:b/c" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-space-novalid.html
new file mode 100644
index 0000000000..ad2e271cee
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: port-space</title>
+<div itemid="http://f: /c" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-tab-novalid.html
new file mode 100644
index 0000000000..e015e7c87e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: port-tab</title>
+<div itemid="http://f: /c" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/query-leading-space-novalid.html
new file mode 100644
index 0000000000..c4465245ec
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: query-leading-space</title>
+<div itemid="http://f:21/b? d" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..9ca912bfe1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: query-trailing-space</title>
+<div itemid="http://f:21/b?d #" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..1ec8d49758
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-data-single-slash</title>
+<div itemid="data:/example.com/" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-file-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-file-backslash-novalid.html
new file mode 100644
index 0000000000..602e154d8c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-file-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-file-backslash</title>
+<div itemid="file:c:\foo\bar.html" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-file-single-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-file-single-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..f94b9e6383
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-file-single-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-file-single-slash-c-bar</title>
+<div itemid="file:/C|/foo/bar" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-file-slash-slash-abc-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-file-slash-slash-abc-bar-novalid.html
new file mode 100644
index 0000000000..f613bd2640
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-file-slash-slash-abc-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-file-slash-slash-abc-bar</title>
+<div itemid="file://abc|/foo/bar" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-file-triple-slash-c-bar-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-file-triple-slash-c-bar-novalid.html
new file mode 100644
index 0000000000..c77fe27684
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-file-triple-slash-c-bar-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-file-triple-slash-c-bar</title>
+<div itemid="file:///C|/foo/bar" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..906f089aca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-ftp-no-slash</title>
+<div itemid="ftp:example.com/" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..48ae5d1d26
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-ftp-single-slash</title>
+<div itemid="ftp:/example.com/" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..8e28363a8a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-http-backslash</title>
+<div itemid="http:\\foo.com\" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..e52bf145ca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-http-no-slash-colon</title>
+<div itemid="http::@c:29" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..d6015babad
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-http-no-slash</title>
+<div itemid="http:foo.com" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..3dc8745f3f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-http-no-slash-square-bracket</title>
+<div itemid="http:[61:27]/:foo" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..a653c2c7d2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-http-single-slash</title>
+<div itemid="http:/example.com/" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..07b7261b27
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-https-no-slash</title>
+<div itemid="https:example.com/" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..6fbd3c1a81
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-https-single-slash</title>
+<div itemid="https:/example.com/" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..fabd1ebe30
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-trailing-cr</title>
+<div itemid="a: foo.com" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..4d82605af2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-trailing-newline</title>
+<div itemid="a:
+foo.com" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..f7a61cd772
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-trailing-space</title>
+<div itemid="a: foo.com" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..a3c50b1875
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: scheme-trailing-tab</title>
+<div itemid="a: foo.com" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..838664b251
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: userinfo-backslash</title>
+<div itemid="http://a\b:c\d@foo.com" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..282669321d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: userinfo-password-bad-chars</title>
+<div itemid="http://&a:foo(b]c@d:2/" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..8a5ba7a71f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: userinfo-password-contains-pile-of-poo</title>
+<div itemid="http://foo:💩@example.com" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..99f41339cb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: userinfo-username-contains-at-sign</title>
+<div itemid="http://::@c@d:2" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..66d597ffc1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemid/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemid: userinfo-username-contains-pile-of-poo</title>
+<div itemid="http://💩:foo@example.com" itemtype="http://foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype-empty-novalid.html
new file mode 100644
index 0000000000..1ed8c46610
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>empty itemtype is not valid</title>
+<div itemtype="" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype-isvalid.html
new file mode 100644
index 0000000000..3fb82482e7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype-isvalid.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>valid itemtype</title>
+<div itemtype="a:foo.com" itemscope></div><!-- scheme-private -->
+<div itemtype="foo:/" itemscope></div><!-- scheme-private-slash -->
+<div itemtype="foo://" itemscope></div><!-- scheme-private-slash-slash -->
+<div itemtype="foo:/bar.com/" itemscope></div><!-- scheme-private-path -->
+<div itemtype="foo://///////" itemscope></div><!-- scheme-private-path-leading-slashes-only -->
+<div itemtype="foo://///////bar.com/" itemscope></div><!-- scheme-private-path-leading-slashes-chars -->
+<div itemtype="foo:////://///" itemscope></div><!-- scheme-private-path-leading-slashes-colon-slashes -->
+<div itemtype="c:/foo" itemscope></div><!-- scheme-private-single-letter -->
+<div itemtype="madeupscheme:/example.com/" itemscope></div><!-- scheme-private-single-slash -->
+<div itemtype="file:/example.com/" itemscope></div><!-- scheme-file-single-slash -->
+<div itemtype="ftps:/example.com/" itemscope></div><!-- scheme-ftps-single-slash -->
+<div itemtype="gopher:/example.com/" itemscope></div><!-- scheme-gopher-single-slash -->
+<div itemtype="ws:/example.com/" itemscope></div><!-- scheme-ws-single-slash -->
+<div itemtype="wss:/example.com/" itemscope></div><!-- scheme-wss-single-slash -->
+<div itemtype="javascript:/example.com/" itemscope></div><!-- scheme-javascript-single-slash -->
+<div itemtype="mailto:/example.com/" itemscope></div><!-- scheme-mailto-single-slash -->
+<div itemtype="madeupscheme:example.com/" itemscope></div><!-- scheme-private-no-slash -->
+<div itemtype="ftps:example.com/" itemscope></div><!-- scheme-ftps-no-slash -->
+<div itemtype="gopher:example.com/" itemscope></div><!-- scheme-gopher-no-slash -->
+<div itemtype="wss:example.com/" itemscope></div><!-- scheme-wss-no-slash -->
+<div itemtype="mailto:example.com/" itemscope></div><!-- scheme-mailto-no-slash -->
+<div itemtype="data:text/plain,foo" itemscope></div><!-- scheme-data-no-slash -->
+<div itemtype="http://user:pass@foo:21/bar;par?b#c" itemscope></div><!-- userinfo -->
+<div itemtype="http://[2001::1]" itemscope></div><!-- host-ipv6 -->
+<div itemtype="http://[2001::1]:80" itemscope></div><!-- host-ipv6-port -->
+<div itemtype="http://f:/c" itemscope></div><!-- port-none-but-colon -->
+<div itemtype="http://f:0/c" itemscope></div><!-- port-0 -->
+<div itemtype="http://f:00000000000000/c" itemscope></div><!-- port-00000000000000 -->
+<div itemtype="http://f:00000000000000000000080/c" itemscope></div><!-- port-00000000000000000000080 -->
+<div itemtype="http://a:b@c:29/d" itemscope></div><!-- userinfo-host-port-path -->
+<div itemtype="http://foo.com:b@d/" itemscope></div><!-- userinfo-username-non-alpha -->
+<div itemtype="http://foo/abcd?efgh?ijkl" itemscope></div><!-- query-contains-question-mark -->
+<div itemtype="http://foo/abcd#foo?bar" itemscope></div><!-- fragment-contains-question-mark -->
+<div itemtype="http://example.com/foo/%2e" itemscope></div><!-- path-percent-encoded-dot -->
+<div itemtype="http://example.com/%20foo" itemscope></div><!-- path-percent-encoded-space -->
+<div itemtype="http://example.com/©zbar" itemscope></div><!-- path-non-ascii -->
+<div itemtype="http://example.com/foo%41%7a" itemscope></div><!-- path-percent-encoded-multiple -->
+<div itemtype="http://example.com/foo%91" itemscope></div><!-- path-percent-encoded-u0091 -->
+<div itemtype="http://example.com/foo%00" itemscope></div><!-- path-percent-encoded-u0000 -->
+<div itemtype="http://example.com/%3A%3a%3C%3c" itemscope></div><!-- path-percent-encoded-mixed-case -->
+<div itemtype="http://example.com/你好你好" itemscope></div><!-- path-unicode-han -->
+<div itemtype="http://example.com//foo" itemscope></div><!-- path-uFEFF -->
+<div itemtype="http://example.com/‮/foo/‭/bar" itemscope></div><!-- path-u202E-u202D -->
+<div itemtype="http://💩" itemscope></div><!-- host-is-pile-of-poo -->
+<div itemtype="http://example.com/foo/💩" itemscope></div><!-- path-contains-pile-of-poo -->
+<div itemtype="http://example.com/foo?💩" itemscope></div><!-- query-contains-pile-of-poo -->
+<div itemtype="http://example.com/foo#💩" itemscope></div><!-- fragment-contains-pile-of-poo -->
+<div itemtype="http://192.0x00A80001" itemscope></div><!-- host-192.0x00A80001 -->
+<div itemtype="http://%25DOMAIN:foobar@foodomain.com" itemscope></div><!-- userinfo-username-contains-percent-encoded -->
+<div itemtype="http://@www.example.com" itemscope></div><!-- userinfo-empty -->
+<div itemtype="http://:b@www.example.com" itemscope></div><!-- userinfo-user-empty -->
+<div itemtype="http://a:@www.example.com" itemscope></div><!-- userinfo-password-empty -->
+<div itemtype="http://GOO​⁠goo.com" itemscope></div><!-- host-exotic-whitespace -->
+<div itemtype="http://www.foo。bar.com" itemscope></div><!-- host-exotic-dot -->
+<div itemtype="http://Go.com" itemscope></div><!-- host-fullwidth -->
+<div itemtype="http://你好你好" itemscope></div><!-- host-idn-unicode-han -->
+<div itemtype="http://192.168.0.257/" itemscope></div><!-- host-IP-address-broken -->
+<div itemtype="File://foo/bar.html" itemscope></div><!-- scheme-file-uppercase -->
+<div itemtype="file://C|/foo/bar" itemscope></div><!-- scheme-file-slash-slash-c-bar -->
+<div itemtype="file://server/foo/bar" itemscope></div><!-- scheme-file-host-included -->
+<div itemtype="file:///foo/bar.txt" itemscope></div><!-- scheme-file-host-empty -->
+<div itemtype="file:" itemscope></div><!-- scheme-file-scheme-only -->
+<div itemtype="file:/" itemscope></div><!-- scheme-file-slash-only -->
+<div itemtype="file://" itemscope></div><!-- scheme-file-slash-slash-only -->
+<div itemtype="file:///" itemscope></div><!-- scheme-file-slash-slash-slash-only -->
+<div itemtype="file:test" itemscope></div><!-- scheme-file-no-slash -->
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype-scheme-data-contains-fragment-haswarn.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype-scheme-data-contains-fragment-haswarn.html
new file mode 100644
index 0000000000..3374691574
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype-scheme-data-contains-fragment-haswarn.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>warning: scheme-data-contains-fragment</title>
+<div itemtype="data:text/html,test#test" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-backslash-novalid.html
new file mode 100644
index 0000000000..7165f96505
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: fragment-backslash</title>
+<div itemtype="#\" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-contains-hash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-contains-hash-novalid.html
new file mode 100644
index 0000000000..0f36d930d7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-contains-hash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: fragment-contains-hash</title>
+<div itemtype="http://foo/path#f#g" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-empty-hash-only-no-path-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-empty-hash-only-no-path-relative-novalid.html
new file mode 100644
index 0000000000..b6d6f63031
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-empty-hash-only-no-path-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: fragment-empty-hash-only-no-path-relative</title>
+<div itemtype="#" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-leading-space-novalid.html
new file mode 100644
index 0000000000..140200b519
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: fragment-leading-space</title>
+<div itemtype="http://f:21/b# e" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-non-ascii-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-non-ascii-relative-novalid.html
new file mode 100644
index 0000000000..bf8bd41bab
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-non-ascii-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: fragment-non-ascii-relative</title>
+<div itemtype="#β" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-semicolon-question-mark-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-semicolon-question-mark-relative-novalid.html
new file mode 100644
index 0000000000..654b38ee53
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-semicolon-question-mark-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: fragment-semicolon-question-mark-relative</title>
+<div itemtype="#;?" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-slash-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-slash-relative-novalid.html
new file mode 100644
index 0000000000..d257b10f4a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/fragment-slash-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: fragment-slash-relative</title>
+<div itemtype="#/" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-cr-novalid.html
new file mode 100644
index 0000000000..e3528dfdf0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: host-cr</title>
+<div itemtype="http://example. org" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-double-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-double-percent-encoded-novalid.html
new file mode 100644
index 0000000000..435a742260
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-double-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: host-double-percent-encoded</title>
+<div itemtype="http://%41.com" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-double-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-double-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..d84dd8ef2b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-double-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: host-double-percent-encoded-percent-encoded</title>
+<div itemtype="http://%ef%bc%85%ef%bc%94%ef%bc%91.com" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-empty-novalid.html
new file mode 100644
index 0000000000..3de07bdf00
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: host-empty</title>
+<div itemtype="http://" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-empty-userinfo-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-empty-userinfo-empty-novalid.html
new file mode 100644
index 0000000000..e4a11f7172
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-empty-userinfo-empty-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: host-empty-userinfo-empty</title>
+<div itemtype="http://@/www.example.com" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-empty-with-userinfo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-empty-with-userinfo-novalid.html
new file mode 100644
index 0000000000..9457bbd6eb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-empty-with-userinfo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: host-empty-with-userinfo</title>
+<div itemtype="http://user:pass@/" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-hostname-in-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-hostname-in-brackets-novalid.html
new file mode 100644
index 0000000000..9046800cc5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-hostname-in-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: host-hostname-in-brackets</title>
+<div itemtype="http://[www.google.com]/" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-invalid-unicode-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-invalid-unicode-novalid.html
new file mode 100644
index 0000000000..c059b89b06
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-invalid-unicode-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: host-invalid-unicode</title>
+<div itemtype="http://﷐zyx.com" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-invalid-unicode-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-invalid-unicode-percent-encoded-novalid.html
new file mode 100644
index 0000000000..0f1522d801
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-invalid-unicode-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: host-invalid-unicode-percent-encoded</title>
+<div itemtype="http://%ef%b7%90zyx.com" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-newline-novalid.html
new file mode 100644
index 0000000000..9fcb3cdedc
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: host-newline</title>
+<div itemtype="http://example.
+org" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-space-novalid.html
new file mode 100644
index 0000000000..195ec60b5c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: host-space</title>
+<div itemtype="http://example .org" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-square-brackets-port-contains-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-square-brackets-port-contains-colon-novalid.html
new file mode 100644
index 0000000000..dc53b33cae
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-square-brackets-port-contains-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: host-square-brackets-port-contains-colon</title>
+<div itemtype="http://[1::2]:3:4" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-tab-novalid.html
new file mode 100644
index 0000000000..54d754c2c3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: host-tab</title>
+<div itemtype="http://example .org" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-u0000-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-u0000-percent-encoded-novalid.html
new file mode 100644
index 0000000000..e087825a9a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-u0000-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: host-u0000-percent-encoded</title>
+<div itemtype="http://%00.com" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-u0000-percent-encoded-percent-encoded-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-u0000-percent-encoded-percent-encoded-novalid.html
new file mode 100644
index 0000000000..342056e1b1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/host-u0000-percent-encoded-percent-encoded-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: host-u0000-percent-encoded-percent-encoded</title>
+<div itemtype="http://%ef%bc%85%ef%bc%90%ef%bc%90.com" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-bare-percent-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-bare-percent-sign-novalid.html
new file mode 100644
index 0000000000..ee4f3b1974
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-bare-percent-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: path-bare-percent-sign</title>
+<div itemtype="http://example.com/foo%" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-contains-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-contains-space-novalid.html
new file mode 100644
index 0000000000..a23414ada6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-contains-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: path-contains-space</title>
+<div itemtype="/a/ /c" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-leading-backslash-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-leading-backslash-at-sign-novalid.html
new file mode 100644
index 0000000000..bc3bd93631
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-leading-backslash-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: path-leading-backslash-at-sign</title>
+<div itemtype="http://foo.com/\@" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-leading-colon-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-leading-colon-backslash-novalid.html
new file mode 100644
index 0000000000..42173c5a7c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-leading-colon-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: path-leading-colon-backslash</title>
+<div itemtype=":\" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-leading-colon-chars-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-leading-colon-chars-backslash-novalid.html
new file mode 100644
index 0000000000..a12ee18389
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-leading-colon-chars-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: path-leading-colon-chars-backslash</title>
+<div itemtype=":foo.com\" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-leading-space-novalid.html
new file mode 100644
index 0000000000..23107f27e2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: path-leading-space</title>
+<div itemtype="http://f:21/ b" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-percent-encoded-malformed-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-percent-encoded-malformed-novalid.html
new file mode 100644
index 0000000000..76c92a2472
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-percent-encoded-malformed-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: path-percent-encoded-malformed</title>
+<div itemtype="http://example.com/foo/%2e%2" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-percent-encoded-slash-plus-slashes-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-percent-encoded-slash-plus-slashes-relative-novalid.html
new file mode 100644
index 0000000000..74e8c6cb07
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-percent-encoded-slash-plus-slashes-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: path-percent-encoded-slash-plus-slashes-relative</title>
+<div itemtype="/a/%2f/c" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-percent-encoded-slash-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-percent-encoded-slash-relative-novalid.html
new file mode 100644
index 0000000000..524a759987
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-percent-encoded-slash-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: path-percent-encoded-slash-relative</title>
+<div itemtype="/a%2fc" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-relative-square-brackets-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-relative-square-brackets-novalid.html
new file mode 100644
index 0000000000..5b9835bde7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-relative-square-brackets-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: path-relative-square-brackets</title>
+<div itemtype="[61:24:74]:98" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-simple-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-simple-relative-novalid.html
new file mode 100644
index 0000000000..fb94f42fe4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-simple-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: path-simple-relative</title>
+<div itemtype="/a/b/c" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-slash-only-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-slash-only-relative-novalid.html
new file mode 100644
index 0000000000..078fff9023
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-slash-only-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: path-slash-only-relative</title>
+<div itemtype="/" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-tab-novalid.html
new file mode 100644
index 0000000000..e54d093786
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: path-tab</title>
+<div itemtype="http://example.com/foo bar" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-trailing-space-novalid.html
new file mode 100644
index 0000000000..d5dd76481b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: path-trailing-space</title>
+<div itemtype="http://f:21/b ?" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-u0091-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-u0091-novalid.html
new file mode 100644
index 0000000000..8344549575
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/path-u0091-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: path-u0091</title>
+<div itemtype="http://example.com/foo‘" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-999999-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-999999-novalid.html
new file mode 100644
index 0000000000..ceb94815df
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-999999-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: port-999999</title>
+<div itemtype="http://f:999999/c" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-cr-novalid.html
new file mode 100644
index 0000000000..302a96c79f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: port-cr</title>
+<div itemtype="http://f: /c" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-leading-colon-bracket-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-leading-colon-bracket-colon-novalid.html
new file mode 100644
index 0000000000..482e11d8f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-leading-colon-bracket-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: port-leading-colon-bracket-colon</title>
+<div itemtype="http://2001::1]:80" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-leading-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-leading-colon-novalid.html
new file mode 100644
index 0000000000..15c969782e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-leading-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: port-leading-colon</title>
+<div itemtype="http://2001::1" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-leading-dash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-leading-dash-novalid.html
new file mode 100644
index 0000000000..b6b2847c2b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-leading-dash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: port-leading-dash</title>
+<div itemtype="http://foo:-80/" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-multiple-letters-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-multiple-letters-novalid.html
new file mode 100644
index 0000000000..1d63eb6b98
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-multiple-letters-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: port-multiple-letters</title>
+<div itemtype="http://f:fifty-two/c" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-newline-novalid.html
new file mode 100644
index 0000000000..56f5b41801
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: port-newline</title>
+<div itemtype="http://f:
+/c" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-single-letter-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-single-letter-novalid.html
new file mode 100644
index 0000000000..5817b69d5b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-single-letter-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: port-single-letter</title>
+<div itemtype="http://f:b/c" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-space-novalid.html
new file mode 100644
index 0000000000..c66dde4cd7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: port-space</title>
+<div itemtype="http://f: /c" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-tab-novalid.html
new file mode 100644
index 0000000000..0056f4ef9d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/port-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: port-tab</title>
+<div itemtype="http://f: /c" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/query-empty-no-path-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/query-empty-no-path-relative-novalid.html
new file mode 100644
index 0000000000..389c2acc8d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/query-empty-no-path-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: query-empty-no-path-relative</title>
+<div itemtype="?" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/query-leading-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/query-leading-space-novalid.html
new file mode 100644
index 0000000000..ab89c0e2a3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/query-leading-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: query-leading-space</title>
+<div itemtype="http://f:21/b? d" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/query-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/query-trailing-space-novalid.html
new file mode 100644
index 0000000000..8db94d80cf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/query-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: query-trailing-space</title>
+<div itemtype="http://f:21/b?d #" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-data-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-data-single-slash-novalid.html
new file mode 100644
index 0000000000..a4b88ed71d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-data-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: scheme-data-single-slash</title>
+<div itemtype="data:/example.com/" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-ftp-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-ftp-no-slash-novalid.html
new file mode 100644
index 0000000000..e4c5289f17
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-ftp-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: scheme-ftp-no-slash</title>
+<div itemtype="ftp:example.com/" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-ftp-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-ftp-single-slash-novalid.html
new file mode 100644
index 0000000000..0a95473a46
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-ftp-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: scheme-ftp-single-slash</title>
+<div itemtype="ftp:/example.com/" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-backslash-novalid.html
new file mode 100644
index 0000000000..133b47c832
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: scheme-http-backslash</title>
+<div itemtype="http:\\foo.com\" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-no-slash-colon-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-no-slash-colon-novalid.html
new file mode 100644
index 0000000000..613afa1376
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-no-slash-colon-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: scheme-http-no-slash-colon</title>
+<div itemtype="http::@c:29" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-no-slash-novalid.html
new file mode 100644
index 0000000000..4da5f8f311
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: scheme-http-no-slash</title>
+<div itemtype="http:foo.com" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-no-slash-square-bracket-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-no-slash-square-bracket-novalid.html
new file mode 100644
index 0000000000..03aa71aadb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-no-slash-square-bracket-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: scheme-http-no-slash-square-bracket</title>
+<div itemtype="http:[61:27]/:foo" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-single-slash-novalid.html
new file mode 100644
index 0000000000..32f31a64c7
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-http-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: scheme-http-single-slash</title>
+<div itemtype="http:/example.com/" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-https-no-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-https-no-slash-novalid.html
new file mode 100644
index 0000000000..e5d4bd70db
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-https-no-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: scheme-https-no-slash</title>
+<div itemtype="https:example.com/" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-https-single-slash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-https-single-slash-novalid.html
new file mode 100644
index 0000000000..d4608d0381
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-https-single-slash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: scheme-https-single-slash</title>
+<div itemtype="https:/example.com/" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-schemeless-relative-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-schemeless-relative-novalid.html
new file mode 100644
index 0000000000..c2301027d4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-schemeless-relative-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: scheme-schemeless-relative</title>
+<div itemtype="//foo/bar" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-trailing-cr-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-trailing-cr-novalid.html
new file mode 100644
index 0000000000..0ec64f5a4c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-trailing-cr-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: scheme-trailing-cr</title>
+<div itemtype="a: foo.com" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-trailing-newline-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-trailing-newline-novalid.html
new file mode 100644
index 0000000000..1ea50fcc9c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-trailing-newline-novalid.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: scheme-trailing-newline</title>
+<div itemtype="a:
+foo.com" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-trailing-space-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-trailing-space-novalid.html
new file mode 100644
index 0000000000..5421a3e81b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-trailing-space-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: scheme-trailing-space</title>
+<div itemtype="a: foo.com" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-trailing-tab-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-trailing-tab-novalid.html
new file mode 100644
index 0000000000..fa0e3ca838
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/scheme-trailing-tab-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: scheme-trailing-tab</title>
+<div itemtype="a: foo.com" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-backslash-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-backslash-novalid.html
new file mode 100644
index 0000000000..10e6853cf1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-backslash-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: userinfo-backslash</title>
+<div itemtype="http://a\b:c\d@foo.com" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-password-bad-chars-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-password-bad-chars-novalid.html
new file mode 100644
index 0000000000..e617ca7b7f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-password-bad-chars-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: userinfo-password-bad-chars</title>
+<div itemtype="http://&a:foo(b]c@d:2/" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-password-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-password-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..ecde2e96d8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-password-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: userinfo-password-contains-pile-of-poo</title>
+<div itemtype="http://foo:💩@example.com" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-username-contains-at-sign-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-username-contains-at-sign-novalid.html
new file mode 100644
index 0000000000..b89683c385
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-username-contains-at-sign-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: userinfo-username-contains-at-sign</title>
+<div itemtype="http://::@c@d:2" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-username-contains-pile-of-poo-novalid.html b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-username-contains-pile-of-poo-novalid.html
new file mode 100644
index 0000000000..7b09f94cd6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/microdata/itemtype/userinfo-username-contains-pile-of-poo-novalid.html
@@ -0,0 +1,4 @@
+<!DOCTYPE html>
+<meta charset=utf-8>
+<title>invalid itemtype: userinfo-username-contains-pile-of-poo</title>
+<div itemtype="http://💩:foo@example.com" itemscope></div>
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/001-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/001-isvalid.html
new file mode 100644
index 0000000000..beee463156
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/001-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>text/html</title>
+<link href='foo' type='text/html' rel='stylesheet'>
+</head>
+<body>
+<p>text/html</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/001-novalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/001-novalid.html
new file mode 100644
index 0000000000..98d7d44a3c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/001-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>text/html </title>
+<link href='foo' type='text/html ' rel='stylesheet'>
+</head>
+<body>
+<p>text/html </p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/002-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/002-isvalid.html
new file mode 100644
index 0000000000..88bd22910e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/002-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>TEXT/HTML</title>
+<link href='foo' type='TEXT/HTML' rel='stylesheet'>
+</head>
+<body>
+<p>TEXT/HTML</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/002-novalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/002-novalid.html
new file mode 100644
index 0000000000..3f434dd3de
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/002-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title> TEXT/HTML</title>
+<link href='foo' type=' TEXT/HTML' rel='stylesheet'>
+</head>
+<body>
+<p> TEXT/HTML</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/003-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/003-isvalid.html
new file mode 100644
index 0000000000..99f4bed596
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/003-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>text/html;charset=utf-8</title>
+<link href='foo' type='text/html;charset=utf-8' rel='stylesheet'>
+</head>
+<body>
+<p>text/html;charset=utf-8</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/003-novalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/003-novalid.html
new file mode 100644
index 0000000000..39d2be0c1d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/003-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>text/html;charset=</title>
+<link href='foo' type='text/html;charset=' rel='stylesheet'>
+</head>
+<body>
+<p>text/html;charset=</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/004-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/004-isvalid.html
new file mode 100644
index 0000000000..5c9a2065b1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/004-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>text/html ;charset=utf-8</title>
+<link href='foo' type='text/html ;charset=utf-8' rel='stylesheet'>
+</head>
+<body>
+<p>text/html ;charset=utf-8</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/004-novalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/004-novalid.html
new file mode 100644
index 0000000000..4fa0bf9992
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/004-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>text/html ;charset</title>
+<link href='foo' type='text/html ;charset' rel='stylesheet'>
+</head>
+<body>
+<p>text/html ;charset</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/005-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/005-isvalid.html
new file mode 100644
index 0000000000..4803124f39
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/005-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>text/html; charset=utf-8</title>
+<link href='foo' type='text/html; charset=utf-8' rel='stylesheet'>
+</head>
+<body>
+<p>text/html; charset=utf-8</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/005-novalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/005-novalid.html
new file mode 100644
index 0000000000..4ada4f9f9d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/005-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>text/html;</title>
+<link href='foo' type='text/html;' rel='stylesheet'>
+</head>
+<body>
+<p>text/html;</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/006-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/006-isvalid.html
new file mode 100644
index 0000000000..5e25924acf
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/006-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>text/html ; charset=utf-8</title>
+<link href='foo' type='text/html ; charset=utf-8' rel='stylesheet'>
+</head>
+<body>
+<p>text/html ; charset=utf-8</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/006-novalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/006-novalid.html
new file mode 100644
index 0000000000..29bf1653c9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/006-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>text/html; </title>
+<link href='foo' type='text/html; ' rel='stylesheet'>
+</head>
+<body>
+<p>text/html; </p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/007-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/007-isvalid.html
new file mode 100644
index 0000000000..c71d991ffa
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/007-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>text/html;charset="utf-8"</title>
+<link href='foo' type='text/html;charset="utf-8"' rel='stylesheet'>
+</head>
+<body>
+<p>text/html;charset="utf-8"</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/007-novalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/007-novalid.html
new file mode 100644
index 0000000000..83c3689630
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/007-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>text/html ;</title>
+<link href='foo' type='text/html ;' rel='stylesheet'>
+</head>
+<body>
+<p>text/html ;</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/008-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/008-isvalid.html
new file mode 100644
index 0000000000..2a9c7dfac5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/008-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>text/html;charset="\utf-8"</title>
+<link href='foo' type='text/html;charset="\utf-8"' rel='stylesheet'>
+</head>
+<body>
+<p>text/html;charset="\utf-8"</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/008-novalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/008-novalid.html
new file mode 100644
index 0000000000..0c40587634
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/008-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>text/html;charset="utf-8</title>
+<link href='foo' type='text/html;charset="utf-8' rel='stylesheet'>
+</head>
+<body>
+<p>text/html;charset="utf-8</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/009-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/009-isvalid.html
new file mode 100644
index 0000000000..3f145d9fd0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/009-isvalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>text/html;charset="u\t\f\-\8"</title>
+<link href='foo' type='text/html;charset="u\t\f\-\8"' rel='stylesheet'>
+</head>
+<body>
+<p>text/html;charset="u\t\f\-\8"</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/009-novalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/009-novalid.html
new file mode 100644
index 0000000000..897ab10427
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/009-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>text/html;charset="u\</title>
+<link href='foo' type='text/html;charset="u\' rel='stylesheet'>
+</head>
+<body>
+<p>text/html;charset="u\</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/010-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/010-isvalid.html
new file mode 100644
index 0000000000..f581b74d58
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/010-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>application/auth-policy+xml</title>
+<link href='foo' type='application/auth-policy+xml' rel='stylesheet'>
+</head>
+<body>
+<p>application/auth-policy+xml</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/010-novalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/010-novalid.html
new file mode 100644
index 0000000000..66b2431526
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/010-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>application</title>
+<link href='foo' type='application' rel='stylesheet'>
+</head>
+<body>
+<p>application</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/011-isvalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/011-isvalid.html
new file mode 100644
index 0000000000..a1fe2c5461
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/011-isvalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>application/vnd.apple.installer+xml</title>
+<link href='foo' type='application/vnd.apple.installer+xml' rel='stylesheet'>
+</head>
+<body>
+<p>application/vnd.apple.installer+xml</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/011-novalid.html b/testing/web-platform/tests/conformance-checkers/html/mime-types/011-novalid.html
new file mode 100644
index 0000000000..ffd850c77a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/011-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset=utf-8>
+<title>application/</title>
+<link href='foo' type='application/' rel='stylesheet'>
+</head>
+<body>
+<p>application/</p>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/source-isvalid.txt b/testing/web-platform/tests/conformance-checkers/html/mime-types/source-isvalid.txt
new file mode 100644
index 0000000000..ef2436e498
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/source-isvalid.txt
@@ -0,0 +1,11 @@
+text/html
+TEXT/HTML
+text/html;charset=utf-8
+text/html ;charset=utf-8
+text/html; charset=utf-8
+text/html ; charset=utf-8
+text/html;charset="utf-8"
+text/html;charset="\utf-8"
+text/html;charset="u\t\f\-\8"
+application/auth-policy+xml
+application/vnd.apple.installer+xml \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/mime-types/source-novalid.txt b/testing/web-platform/tests/conformance-checkers/html/mime-types/source-novalid.txt
new file mode 100644
index 0000000000..52a320e85b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/mime-types/source-novalid.txt
@@ -0,0 +1,11 @@
+text/html
+ TEXT/HTML
+text/html;charset=
+text/html ;charset
+text/html;
+text/html;
+text/html ;
+text/html;charset="utf-8
+text/html;charset="u\
+application
+application/ \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/html/obsolete/acronym-novalid.html b/testing/web-platform/tests/conformance-checkers/html/obsolete/acronym-novalid.html
new file mode 100644
index 0000000000..c00eff544c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/obsolete/acronym-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>the "acronym" element is obsolete</title>
+<meta charset=utf-8>
+</head>
+<body>
+<acronym>baz</acronym>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/obsolete/applet-novalid.html b/testing/web-platform/tests/conformance-checkers/html/obsolete/applet-novalid.html
new file mode 100644
index 0000000000..94bb0165df
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/obsolete/applet-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>the "applet" element is obsolete</title>
+<meta charset=utf-8>
+</head>
+<body>
+<applet>baz</applet>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/obsolete/basefont-novalid.html b/testing/web-platform/tests/conformance-checkers/html/obsolete/basefont-novalid.html
new file mode 100644
index 0000000000..7f329d5cac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/obsolete/basefont-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>the "basefont" element is obsolete</title>
+<meta charset=utf-8>
+</head>
+<body>
+<basefont>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/obsolete/big-novalid.html b/testing/web-platform/tests/conformance-checkers/html/obsolete/big-novalid.html
new file mode 100644
index 0000000000..90868cc89e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/obsolete/big-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>the "big" element is obsolete</title>
+<meta charset=utf-8>
+</head>
+<body>
+<big>baz</big>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/obsolete/center-novalid.html b/testing/web-platform/tests/conformance-checkers/html/obsolete/center-novalid.html
new file mode 100644
index 0000000000..83d3cc28d1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/obsolete/center-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>the "center" element is obsolete</title>
+<meta charset=utf-8>
+</head>
+<body>
+<center>baz</center>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/obsolete/dir-novalid.html b/testing/web-platform/tests/conformance-checkers/html/obsolete/dir-novalid.html
new file mode 100644
index 0000000000..072f1c6196
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/obsolete/dir-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>the "dir" element is obsolete</title>
+<meta charset=utf-8>
+</head>
+<body>
+<dir></dir>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/obsolete/font-novalid.html b/testing/web-platform/tests/conformance-checkers/html/obsolete/font-novalid.html
new file mode 100644
index 0000000000..450f27ad49
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/obsolete/font-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>the "font" element is obsolete</title>
+<meta charset=utf-8>
+</head>
+<body>
+<font>baz</font>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/obsolete/frameset-novalid.html b/testing/web-platform/tests/conformance-checkers/html/obsolete/frameset-novalid.html
new file mode 100644
index 0000000000..d7de332fee
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/obsolete/frameset-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>the "frameset" element is obsolete</title>
+<meta charset=utf-8>
+</head>
+<frameset>
+<frame src="url">
+<frame src="url2">
+</frameset>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/obsolete/noframes-novalid.html b/testing/web-platform/tests/conformance-checkers/html/obsolete/noframes-novalid.html
new file mode 100644
index 0000000000..84699e67b3
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/obsolete/noframes-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>the "noframes" element is obsolete</title>
+<meta charset=utf-8>
+</head>
+<body>
+<noframes>baz</noframes>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/obsolete/profile-novalid.html b/testing/web-platform/tests/conformance-checkers/html/obsolete/profile-novalid.html
new file mode 100644
index 0000000000..6b4a4f39e8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/obsolete/profile-novalid.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+<head profile="http://www.w3.org/2006/03/hcard http://dublincore.org/documents/2008/08/04/dc-html/">
+<title>the profile attribute on the head element is obsolete</title>
+<meta charset=utf-8>
+</head>
+<body>
+<p>This page contains a <code>head</code> element with an obsolete
+<code>profile</code> attribute. It should trigger a validation error.</p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/obsolete/strike-novalid.html b/testing/web-platform/tests/conformance-checkers/html/obsolete/strike-novalid.html
new file mode 100644
index 0000000000..0a4c770468
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/obsolete/strike-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>the "strike" element is obsolete</title>
+<meta charset=utf-8>
+</head>
+<body>
+<strike>baz</strike>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/obsolete/tt-novalid.html b/testing/web-platform/tests/conformance-checkers/html/obsolete/tt-novalid.html
new file mode 100644
index 0000000000..ee4942dccb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/obsolete/tt-novalid.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>the "tt" element is obsolete</title>
+<meta charset=utf-8>
+</head>
+<body>
+<tt>baz</tt>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/other/applet-novalid.html b/testing/web-platform/tests/conformance-checkers/html/other/applet-novalid.html
new file mode 100644
index 0000000000..5b0c8de343
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/other/applet-novalid.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;applet&gt;</title>
+</head>
+<body>
+
+ <!-- is structured inline -->
+ <p><applet
+ archive="uri1,uri2"
+ code="foo"
+ codebase="uri"
+ height="40"
+ width="40"
+ name="sth"
+ class="class"
+ lang="en"></applet></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><applet
+ archive="uri1,uri2"
+ code="foo"
+ codebase="uri"
+ height="40"
+ width="40"
+ name="sth"
+ class="class"
+ lang="en"></applet></dfn></p>
+
+ <!-- is block -->
+ <applet
+ archive="uri1,uri2"
+ code="foo"
+ codebase="uri"
+ height="40"
+ width="40"
+ name="sth"
+ class="class"
+ lang="en"></applet>
+
+ <!-- can contain inline while in inline context, but param must come first -->
+ <p>paragraph
+ <applet code="foo" width="10" height="10">
+ <em>some</em> <ul><li>inline</li></ul> content
+ </applet>
+ </p>
+ <p>paragraph
+ <applet code="foo" width="10" height="10">
+ <param name="foo"><param name="bar">
+ <em>some</em> <ul><li>inline</li></ul> content
+ </applet>
+ </p>
+
+ <!-- can contain strictly inline while in strictly inline context, but param must come first -->
+ <p><dfn>strictly inline
+ <applet code="foo" width="10" height="10">
+ <em>text</em>
+ </applet>
+ </dfn></p>
+ <p><dfn>strictly inline
+ <applet code="foo" width="10" height="10">
+ <param name="foo"><param name="bar">
+ <em>text</em>
+ </applet>
+ </dfn></p>
+
+ <!-- can contain blocks while in block context, but param must come first -->
+ <applet code="foo" width="10" height="10">
+ <p>text</p>
+ </applet>
+ <applet code="foo" width="10" height="10">
+ <param name="foo"><param name="bar">
+ <p>text</p>
+ </applet>
+
+ <!-- can contain interactive if ancestor does not forbid it, but param must come first -->
+ <p>paragraph
+ <applet code="foo" width="10" height="10">
+ <a>link</a>
+ </applet>
+ </p>
+ <p>paragraph
+ <applet code="foo" width="10" height="10">
+ <param name="foo"><param name="bar">
+ <a>link</a>
+ </applet>
+ </p>
+ <p><dfn>strictly inline
+ <applet code="foo" width="10" height="10">
+ <a>link</a>
+ </applet>
+ </dfn></p>
+ <p><dfn>strictly inline
+ <applet code="foo" width="10" height="10">
+ <param name="foo"><param name="bar">
+ <a>link</a>
+ </applet>
+ </dfn></p>
+ <applet code="foo" width="10" height="10">
+ <p><a>link</a></p>
+ </applet>
+ <applet code="foo" width="10" height="10">
+ <param name="foo"><param name="bar">
+ <p><a>link</a></p>
+ </applet>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/other/obj-novalid.html b/testing/web-platform/tests/conformance-checkers/html/other/obj-novalid.html
new file mode 100644
index 0000000000..178b7d259e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/other/obj-novalid.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>&lt;obj&gt;</title>
+</head>
+<body>
+
+ <!-- is structured inline -->
+ <p><obj
+ archive="uri1 uri2"
+ classid="uri"
+ codebase="uri"
+ codetype="application/octet-stream"
+ data="uri"
+ height="40"
+ name="sth"
+ standby="text"
+ type="application/octet-stream"
+ usemap="uri"
+ width="40"
+ class="class"
+ lang="en"></obj></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><obj
+ archive="uri1 uri2"
+ classid="uri"
+ codebase="uri"
+ codetype="application/octet-stream"
+ data="uri"
+ height="40"
+ name="sth"
+ standby="text"
+ type="application/octet-stream"
+ usemap="uri"
+ width="40"
+ class="class"
+ lang="en"></obj></dfn></p>
+
+ <!-- is block -->
+ <obj
+ archive="uri1 uri2"
+ classid="uri"
+ codebase="uri"
+ codetype="application/octet-stream"
+ data="uri"
+ height="40"
+ name="sth"
+ standby="text"
+ type="application/octet-stream"
+ usemap="uri"
+ width="40"
+ class="class"
+ lang="en"></obj>
+
+ <!-- can contain inline while in inline context, but param must come first -->
+ <p>paragraph
+ <obj>
+ <em>some</em> <ul><li>inline</li></ul> content
+ </obj>
+ </p>
+ <p>paragraph
+ <obj>
+ <param name="foo"><param name="bar">
+ <em>some</em> <ul><li>inline</li></ul> content
+ </obj>
+ </p>
+
+ <!-- can contain strictly inline while in strictly inline context, but param must come first -->
+ <p><dfn>strictly inline
+ <obj>
+ <em>text</em>
+ </obj>
+ </dfn></p>
+ <p><dfn>strictly inline
+ <obj>
+ <param name="foo"><param name="bar">
+ <em>text</em>
+ </obj>
+ </dfn></p>
+
+ <!-- can contain blocks while in block context, but param must come first -->
+ <obj>
+ <p>text</p>
+ </obj>
+ <obj>
+ <param name="foo"><param name="bar">
+ <p>text</p>
+ </obj>
+
+ <!-- can contain interactive if ancestor does not forbid it, but param must come first -->
+ <p>paragraph
+ <obj>
+ <a>link</a>
+ </obj>
+ </p>
+ <p>paragraph
+ <obj>
+ <param name="foo"><param name="bar">
+ <a>link</a>
+ </obj>
+ </p>
+ <p><dfn>strictly inline
+ <obj>
+ <a>link</a>
+ </obj>
+ </dfn></p>
+ <p><dfn>strictly inline
+ <obj>
+ <param name="foo"><param name="bar">
+ <a>link</a>
+ </obj>
+ </dfn></p>
+ <obj>
+ <p><a>link</a></p>
+ </obj>
+ <obj>
+ <param name="foo"><param name="bar">
+ <p><a>link</a></p>
+ </obj>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/html/parser/cr-charref-novalid.html b/testing/web-platform/tests/conformance-checkers/html/parser/cr-charref-novalid.html
new file mode 100644
index 0000000000..d517ec011c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/parser/cr-charref-novalid.html
@@ -0,0 +1 @@
+<!doctype html><meta charset=utf-8><title>&amp;#x0d;</title><p>There should be an error.&#x0d;
diff --git a/testing/web-platform/tests/conformance-checkers/html/parser/range-charref-novalid.html b/testing/web-platform/tests/conformance-checkers/html/parser/range-charref-novalid.html
new file mode 100644
index 0000000000..304b25fb95
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/parser/range-charref-novalid.html
@@ -0,0 +1 @@
+<!doctype html><meta charset=utf-8><title>&amp;#x110000;</title><p>There should be an error.&#x110000;
diff --git a/testing/web-platform/tests/conformance-checkers/html/parser/u000b-charref-novalid.html b/testing/web-platform/tests/conformance-checkers/html/parser/u000b-charref-novalid.html
new file mode 100644
index 0000000000..c31ade018d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/parser/u000b-charref-novalid.html
@@ -0,0 +1 @@
+<!doctype html><meta charset=utf-8><title>&amp;#x000B;</title><p>There should be an error.&#x000B;
diff --git a/testing/web-platform/tests/conformance-checkers/html/parser/u000b-novalid.html b/testing/web-platform/tests/conformance-checkers/html/parser/u000b-novalid.html
new file mode 100644
index 0000000000..d35d7ca34c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/parser/u000b-novalid.html
@@ -0,0 +1 @@
+<!doctype html><meta charset=utf-8><title>U+000B</title><p>There should be an error.
diff --git a/testing/web-platform/tests/conformance-checkers/html/parser/u007f-charref-novalid.html b/testing/web-platform/tests/conformance-checkers/html/parser/u007f-charref-novalid.html
new file mode 100644
index 0000000000..1dba4b5d27
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/parser/u007f-charref-novalid.html
@@ -0,0 +1 @@
+<!doctype html><meta charset=utf-8><title>&amp;#x007F;</title><p>There should be an error.&#x007F;
diff --git a/testing/web-platform/tests/conformance-checkers/html/parser/u10ffff-charref-novalid.html b/testing/web-platform/tests/conformance-checkers/html/parser/u10ffff-charref-novalid.html
new file mode 100644
index 0000000000..f823390a00
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/parser/u10ffff-charref-novalid.html
@@ -0,0 +1 @@
+<!doctype html><meta charset=utf-8><title>&amp;#x10FFFF;</title><p>There should be an error.&#x10FFFF;
diff --git a/testing/web-platform/tests/conformance-checkers/html/parser/ufffe-charref-novalid.html b/testing/web-platform/tests/conformance-checkers/html/parser/ufffe-charref-novalid.html
new file mode 100644
index 0000000000..0ddab4a422
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/parser/ufffe-charref-novalid.html
@@ -0,0 +1 @@
+<!doctype html><meta charset=utf-8><title>&amp;#xFFFE;</title><p>There should be an error.&#xFFFE;
diff --git a/testing/web-platform/tests/conformance-checkers/html/parser/unassigned-charref-novalid.html b/testing/web-platform/tests/conformance-checkers/html/parser/unassigned-charref-novalid.html
new file mode 100644
index 0000000000..4e4c748981
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/html/parser/unassigned-charref-novalid.html
@@ -0,0 +1 @@
+<!doctype html><meta charset=utf-8><title>&amp;#xfdd0;</title><p>There should be an error.&#xfdd0;
diff --git a/testing/web-platform/tests/conformance-checkers/index.html b/testing/web-platform/tests/conformance-checkers/index.html
new file mode 100644
index 0000000000..fbf944a3cd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/index.html
@@ -0,0 +1,113 @@
+<!doctype html><html><head><meta charset=utf-8>
+<title>WPT conformance-checker tests</title></head>
+<body>
+ <h1>WPT conformance-checker tests</h1>
+
+<p>The files in this part of the tree are not browser tests; they're
+ documents intended for testing the behavior of conformance checkers
+ (e.g., validator.nu and the W3C Nu Markup Validator).
+
+ <div class=set>
+ <p>TK: We should have here some details about the contents of the
+ existing subdirectories in this tree...
+ </div>
+
+<p>Curious committers should see the makefile.
+
+<style>
+html {
+ background: #DDE5D9 url(data:image/gif;base64,R0lGODlhBAAEAIAAANra2v///yH5BAAAAAAALAAAAAAEAAQAAAIFTGB4xlcAOw==) repeat 0 0;
+ font-family: "Lucida Sans Unicode", "Lucida Sans", verdana, arial, helvetica;
+}
+body {
+ border: solid 1px #CED4CA;
+ background-color: #FFF;
+ padding: 4px 25px 4px 25px;
+ margin: 20px 20% 20px 20px;
+ line-height: 1.75;
+}
+h1 {
+ font-size: 36px;
+ font-weight: normal;
+ color: #0B5B9D;
+ vertical-align: top;
+ margin-bottom: 0px;
+}
+h2 {
+ font-size: 28px;
+ font-weight: normal;
+ color: #0B5B9D;
+ vertical-align: top;
+ margin-bottom: 0px;
+ margin-top: 24px;
+}
+h3 {
+ font-size: 22px;
+ font-weight: normal;
+ color: #0B5B9D;
+ vertical-align: top;
+ margin-bottom: 0px;
+ margin-top: 32px;
+}
+h4 {
+ font-size: 20px;
+ font-weight: normal;
+ color: #0B5B9D;
+ vertical-align: top;
+ margin-bottom: 0px;
+ margin-top: 22px;
+}
+a {
+ text-decoration: none;
+ color: #0B5B9D;
+ padding: 2px;
+}
+
+a:hover {
+ text-decoration: none;
+ background-color: #0B5B9D;
+ color: white;
+}
+a:active {
+ text-decoration: none;
+ background-color: white;
+ color: black;
+}
+.set, .note {
+ background-color: ivory;
+ padding: 16px;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-right: 32px;
+ padding-left: 32px;
+ border: 1px solid #ccc;
+ margin-left: 2px;
+ margin-right: 2px;
+ border-radius: 6px;
+}
+code {
+ background-color: #F8F8F8;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ padding: 2px 6px;
+}
+pre {
+ background-color: #F8F8F8;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ padding: 10px;
+ margin-right: 15%;
+ margin-top: 6px;
+ line-height: 1.2
+}
+.java-class, .java-property, .option-value {
+ background-color: yellow;
+ padding: 2px 6px;
+}
+.arg {
+ color: green;
+}
+.links {
+ text-align: center;
+}
+</style>
diff --git a/testing/web-platform/tests/conformance-checkers/messages.json b/testing/web-platform/tests/conformance-checkers/messages.json
new file mode 100644
index 0000000000..56dc4dfac2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/messages.json
@@ -0,0 +1,2492 @@
+{
+ "html-aria/author-requirements/571-haswarn.html": "The \u201ctextbox\u201d role is unnecessary for an \u201cinput\u201d element that has no \u201clist\u201d attribute and whose type is \u201ctext\u201d.",
+ "html-aria/author-requirements/572-haswarn.html": "The \u201ctextbox\u201d role is unnecessary for an \u201cinput\u201d element that has no \u201clist\u201d attribute and whose type is \u201ctext\u201d.",
+ "html-aria/author-requirements/573-haswarn.html": "The \u201ctextbox\u201d role is unnecessary for an \u201cinput\u201d element that has no \u201clist\u201d attribute and whose type is \u201ctext\u201d.",
+ "html-aria/combobox-autocomplete-list/div-haswarn.html": "The \u201ctextbox\u201d role is unnecessary for an \u201cinput\u201d element that has no \u201clist\u201d attribute and whose type is \u201ctext\u201d.",
+ "html-aria/host-language/implicit-semantics-checkbox-disparity-haswarn.html": "The \u201caria-checked\u201d attribute should not be used on an \u201cinput\u201d element which has a \u201ctype\u201d attribute whose value is \u201ccheckbox\u201d.",
+ "html-aria/host-language/implicit-semantics-checkbox-norole-haswarn.html": "The \u201caria-checked\u201d attribute should not be used on an \u201cinput\u201d element which has a \u201ctype\u201d attribute whose value is \u201ccheckbox\u201d.",
+ "html-aria/host-language/implicit-semantics-checkbox-role-haswarn.html": "The \u201caria-checked\u201d attribute should not be used on an \u201cinput\u201d element which has a \u201ctype\u201d attribute whose value is \u201ccheckbox\u201d.",
+ "html-aria/live-events/test-case-live-event-1-haswarn.html": "Possible misuse of \u201caria-label\u201d. (If you disagree with this warning, file an issue report or send e-mail to www-validator@w3.org.)",
+ "html-aria/name-computation-general/597-haswarn.html": "Possible misuse of \u201caria-label\u201d. (If you disagree with this warning, file an issue report or send e-mail to www-validator@w3.org.)",
+ "html-aria/name-computation-general/598-haswarn.html": "Possible misuse of \u201caria-label\u201d. (If you disagree with this warning, file an issue report or send e-mail to www-validator@w3.org.)",
+ "html-aria/name-computation-general/599-haswarn.html": "Possible misuse of \u201caria-label\u201d. (If you disagree with this warning, file an issue report or send e-mail to www-validator@w3.org.)",
+ "html-aria/presentation-role/497-novalid.html": "An \u201cimg\u201d element which has an \u201calt\u201d attribute whose value is the empty string must not have a \u201crole\u201d attribute.",
+ "html-aria/presentation-role/498-novalid.html": "An \u201cimg\u201d element which has an \u201calt\u201d attribute whose value is the empty string must not have a \u201crole\u201d attribute.",
+ "html-aria/presentation-role/499-novalid.html": "An \u201cimg\u201d element which has an \u201calt\u201d attribute whose value is the empty string must not have a \u201crole\u201d attribute.",
+ "html-aria/presentation-role/500-novalid.html": "An \u201cimg\u201d element which has an \u201calt\u201d attribute whose value is the empty string must not have a \u201crole\u201d attribute.",
+ "html-aria/presentation-role/501-novalid.html": "An \u201cimg\u201d element which has an \u201calt\u201d attribute whose value is the empty string must not have a \u201crole\u201d attribute.",
+ "html-aria/presentation-role/502-novalid.html": "An \u201cimg\u201d element which has an \u201calt\u201d attribute whose value is the empty string must not have a \u201crole\u201d attribute.",
+ "html-aria/presentation-role/503-novalid.html": "An \u201cimg\u201d element which has an \u201calt\u201d attribute whose value is the empty string must not have a \u201crole\u201d attribute.",
+ "html-aria/presentation-role/504-novalid.html": "An \u201cimg\u201d element which has an \u201calt\u201d attribute whose value is the empty string must not have a \u201crole\u201d attribute.",
+ "html-aria/presentation-role/505-novalid.html": "An \u201cimg\u201d element which has an \u201calt\u201d attribute whose value is the empty string must not have a \u201crole\u201d attribute.",
+ "html-aria/presentation-role/506-novalid.html": "An \u201cimg\u201d element which has an \u201calt\u201d attribute whose value is the empty string must not have a \u201crole\u201d attribute.",
+ "html-aria/presentation-role/507-novalid.html": "An \u201cimg\u201d element which has an \u201calt\u201d attribute whose value is the empty string must not have a \u201crole\u201d attribute.",
+ "html-aria/presentation-role/509-novalid.html": "An \u201cimg\u201d element which has an \u201calt\u201d attribute whose value is the empty string must not have a \u201crole\u201d attribute.",
+ "html-aria/presentation-role/523-haswarn.html": "Possible misuse of \u201caria-label\u201d. (If you disagree with this warning, file an issue report or send e-mail to www-validator@w3.org.)",
+ "html-aria/properties-global-norole/properties-global-norole-aria-label-Test-string-value-haswarn.html": "Possible misuse of \u201caria-label\u201d. (If you disagree with this warning, file an issue report or send e-mail to www-validator@w3.org.)",
+ "html-rdfa/0019-novalid.html": "Attribute \u201chref\u201d not allowed on element \u201cdiv\u201d at this point.",
+ "html-rdfa/0035-novalid.html": "Attribute \u201chref\u201d not allowed on element \u201cimg\u201d at this point.",
+ "html-rdfa/0037-novalid.html": "Attribute \u201chref\u201d not allowed on element \u201cimg\u201d at this point.",
+ "html-rdfa/0039-novalid.html": "Attribute \u201chref\u201d not allowed on element \u201cimg\u201d at this point.",
+ "html-rdfa/0041-novalid.html": "Attribute \u201chref\u201d not allowed on element \u201cimg\u201d at this point.",
+ "html-rdfa/0079-novalid.html": "Attribute \u201chref\u201d not allowed on element \u201cp\u201d at this point.",
+ "html-rdfa/0085-novalid.html": "Attribute \u201chref\u201d not allowed on element \u201cp\u201d at this point.",
+ "html-rdfa/0109-novalid.html": "Attribute \u201cxml:base\u201d not allowed on element \u201chtml\u201d at this point.",
+ "html-rdfa/0131-novalid.html": "A numeric character reference expanded to carriage return.",
+ "html-rdfa/0147-novalid.html": "Attribute \u201cxmlns:xmlzzz\u201d not allowed here.",
+ "html-rdfa/0179-novalid.html": "Attribute \u201cxmlns:foaf\u201d not allowed here.",
+ "html-rdfa/0180-novalid.html": "Bad value \u201c: http://xmlns.com/foaf/0.1/\u201d for attribute \u201cprefix\u201d on element \u201cdiv\u201d.",
+ "html-rdfa/0183-novalid.html": "Attribute \u201cxmlns:foaf\u201d not allowed here.",
+ "html-rdfa/0222-novalid.html": "Element \u201cp\u201d not allowed as child of element \u201cstrong\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html-rdfa/0223-novalid.html": "Element \u201cp\u201d not allowed as child of element \u201cstrong\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html-rdfa/0226-novalid.html": "Element \u201cp\u201d not allowed as child of element \u201cspan\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html-rdfa/0227-novalid.html": "Element \u201cp\u201d not allowed as child of element \u201cspan\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html-rdfa/0230-novalid.html": "Attribute \u201chref\u201d not allowed on element \u201cimg\u201d at this point.",
+ "html-rdfa/0237-novalid.html": "Bad value \u201c$malformed http://example.com\u201d for attribute \u201cprefix\u201d on element \u201cbody\u201d.",
+ "html-rdfa/0258-novalid.html": "Attribute \u201cxmlns:_\u201d not allowed here.",
+ "html-rdfa/0280-novalid.html": "Bad value \u201cP2011Y06M28DT00H00M00S\u201d for attribute \u201cdatetime\u201d on element \u201ctime\u201d: Bad time-datetime: The literal did not satisfy the time-datetime format.",
+ "html-rdfa/0285-novalid.html": "Bad value \u201cD-Day\u201d for attribute \u201cdatetime\u201d on element \u201ctime\u201d: Bad time-datetime: The literal did not satisfy the time-datetime format.",
+ "html-rdfa/0308-novalid.html": "Bad value \u201chttp://www.example.com/roles/somerole\u201d for attribute \u201crole\u201d on element \u201cdiv\u201d.",
+ "html-rdfa/0309-novalid.html": "Bad value \u201cex:somerole\u201d for attribute \u201crole\u201d on element \u201cdiv\u201d.",
+ "html-rdfa/0310-novalid.html": "Bad value \u201cex:somerole someOtherRole http://www.example.com/alternate/role\u201d for attribute \u201crole\u201d on element \u201cdiv\u201d.",
+ "html-rdfa/0314-novalid.html": "Bad value \u201csection\u201d for attribute \u201crole\u201d on element \u201cdiv\u201d.",
+ "html-rdfa/0319-novalid.html": "Attribute \u201cxmlns:xpr\u201d not allowed here.",
+ "html-rdfa/0320-novalid.html": "Attribute \u201csrc\u201d not allowed on element \u201ca\u201d at this point.",
+ "html-rdfalite/0147.novalid.html": "Attribute \u201cxmlns:xmlzzz\u201d not allowed here.",
+ "html-rdfalite/0319-novalid.html": "Attribute \u201cxmlns:xpr\u201d not allowed here.",
+ "html-svg/animate-elem-24-t-novalid.html": "Duplicate ID \u201cMyFont\u201d.",
+ "html-svg/animate-pservers-grad-01-b-novalid.html": "Duplicate ID \u201ca7\u201d.",
+ "html-svg/conform-viewers-03-f-novalid.html": "Bad value \u201chttp://example.net/bar\u201d for the attribute \u201cxmlns:link\u201d (only \u201chttp://www.w3.org/1999/xlink\u201d permitted here).",
+ "html-svg/coords-dom-01-f-novalid.html": "Attribute \u201cxml:id\u201d not allowed on element \u201crect\u201d at this point.",
+ "html-svg/coords-dom-02-f-novalid.html": "Attribute \u201cxml:id\u201d not allowed on element \u201crect\u201d at this point.",
+ "html-svg/coords-transformattr-01-f-novalid.html": "A numeric character reference expanded to carriage return.",
+ "html-svg/extend-namespace-01-f-novalid.html": "Attribute \u201cxmlns:bd\u201d not allowed here.",
+ "html-svg/filters-color-02-b-novalid.html": "Element \u201cfeFuncR\u201d not allowed as child of element \u201cfeComponentTransfer\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html-svg/filters-conv-02-f-novalid.html": "Element \u201cfeConvolveMatrix\u201d is missing required attribute \u201corder\u201d.",
+ "html-svg/filters-conv-04-f-novalid.html": "Element \u201cfeConvolveMatrix\u201d is missing required attribute \u201corder\u201d.",
+ "html-svg/filters-conv-05-f-novalid.html": "Element \u201cfeConvolveMatrix\u201d is missing required attribute \u201corder\u201d.",
+ "html-svg/filters-light-05-f-novalid.html": "Duplicate ID \u201cc1\u201d.",
+ "html-svg/fonts-glyph-04-t-novalid.html": "Element \u201cfont\u201d is missing required child element \u201cmissing-glyph\u201d.",
+ "html-svg/fonts-overview-201-t-novalid.html": "Attribute \u201cxmlns:xe\u201d not allowed here.",
+ "html-svg/interact-pointer-02-t-novalid.html": "Attribute \u201cx\u201d not allowed on element \u201cclipPath\u201d at this point.",
+ "html-svg/linking-a-09-b-novalid.html": "Element \u201ctspan\u201d not allowed as child of element \u201ca\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html-svg/masking-filter-01-f-novalid.html": "Attribute \u201cfilterprimitiveunits\u201d not allowed on element \u201cfilter\u201d at this point.",
+ "html-svg/masking-intro-01-f-novalid.html": "Duplicate ID \u201ctest-title\u201d.",
+ "html-svg/metadata-example-01-t-novalid.html": "Attribute \u201cxmlns:prism\u201d not allowed here.",
+ "html-svg/painting-marker-04-f-novalid.html": "Attribute \u201cmarker\u201d not allowed on element \u201cg\u201d at this point.",
+ "html-svg/paths-data-18-f-novalid.html": "Bad value \u201cM 20 100 H 40#90\u201d for attribute \u201cd\u201d on element \u201cpath\u201d: Bad SVG path data: Expected command but found \u201c#\u201d (context: \u201cM 20 100 H 40#\u201d).",
+ "html-svg/paths-data-20-f-novalid.html": "Bad value \u201cM280,120 h25 a25,25 0 6 0 -25,25 z\u201d for attribute \u201cd\u201d on element \u201cpath\u201d: Bad SVG path data: Expected \u201c0\u201d or \u201c1\u201d for large-arc-flag for \u201ca\u201d command but found \u201c6\u201d instead (context: \u201c0,120 h25 a25,25 0 6\u201d).",
+ "html-svg/pservers-grad-23-f-novalid.html": "Attribute \u201cstop-color\u201d not allowed on element \u201crect\u201d at this point.",
+ "html-svg/script-specify-01-f-novalid.html": "Attribute \u201ccontentscripttype\u201d not allowed on element \u201csvg\u201d at this point.",
+ "html-svg/shapes-rect-03-t-novalid.html": "Attribute \u201cxml:id\u201d not allowed on element \u201crect\u201d at this point.",
+ "html-svg/struct-cond-02-t-haswarn.html": "Text run is not in Unicode Normalization Form C.",
+ "html-svg/struct-dom-17-f-novalid.html": "Element \u201crect\u201d is missing required attribute \u201cheight\u201d.",
+ "html-svg/struct-dom-19-f-novalid.html": "Element \u201crect\u201d is missing required attribute \u201cheight\u201d.",
+ "html-svg/struct-frag-05-t-novalid.html": "Bad value \u201chttp://www.example.org/notsvg\u201d for the attribute \u201cxmlns\u201d (only \u201chttp://www.w3.org/2000/svg\u201d permitted here).",
+ "html-svg/struct-image-07-t-novalid.html": "Attribute \u201cxml:base\u201d not allowed on element \u201cimage\u201d at this point.",
+ "html-svg/struct-image-12-b-novalid.html": "Duplicate ID \u201cimageSVG\u201d.",
+ "html-svg/struct-use-11-f-novalid.html": "Attribute \u201cfoo\u201d not allowed on element \u201ccircle\u201d at this point.",
+ "html-svg/struct-use-12-f-novalid.html": "Element \u201cuse\u201d not allowed as child of element \u201cuse\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html-svg/styling-pres-02-f-novalid.html": "Attribute \u201cfill\u201d not allowed on element \u201cimage\u201d at this point.",
+ "html-svg/svgdom-over-01-f-novalid.html": "Element \u201cstop\u201d not allowed as child of element \u201cdefs\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html-svg/text-dom-03-f-novalid.html": "Element \u201cfont\u201d is missing required child element \u201cmissing-glyph\u201d.",
+ "html-svg/text-fonts-03-t-novalid.html": "Element \u201cfont\u201d is missing required attribute \u201choriz-adv-x\u201d.",
+ "html-svg/text-fonts-05-f-novalid.html": "Attribute \u201cline-height\u201d not allowed on element \u201ctspan\u201d at this point.",
+ "html-svg/types-dom-04-b-novalid.html": "Attribute \u201cexternalresourcesrequired\u201d not allowed on element \u201csvg\u201d at this point.",
+ "html/attributes/accesskey/duplicate-key-labels-novalid.html": "Bad value \u201ca b \u306c c \u306c\u201d for attribute \u201caccesskey\u201d on element \u201ca\u201d: Bad key label list: Duplicate key label. Each key label must be unique.",
+ "html/attributes/accesskey/multi-character-key-label-novalid.html": "Bad value \u201ca b \u307b\u3052\u201d for attribute \u201caccesskey\u201d on element \u201ca\u201d: Bad key label list: Key label has multiple characters. Each key label must be a single character.",
+ "html/attributes/data/no-characters-after-hyphen-novalid.html": "Attribute \u201cdata-\u201d not allowed on element \u201cp\u201d at this point.",
+ "html/attributes/data/not-xml-serializable-novalid.html": "\u201cdata-*\u201d attribute names must be XML 1.0 4th ed. plus Namespaces NCNames.",
+ "html/attributes/lang/deprecated-tag-haswarn.html": "Bad value \u201cmo\u201d for attribute \u201clang\u201d on element \u201cbody\u201d: Bad language tag: The language subtag \u201cmo\u201d is deprecated. Use \u201cro\u201d instead.",
+ "html/attributes/lang/extlang-bad-novalid.html": "Bad value \u201cbat-smg\u201d for attribute \u201clang\u201d on element \u201cbody\u201d: Bad language tag: Bad extlang subtag \u201csmg\u201d.",
+ "html/attributes/lang/xmllang-different-value-novalid.html": "When the attribute \u201cxml:lang\u201d in no namespace is specified, the element must also have the attribute \u201clang\u201d present with the same value.",
+ "html/attributes/lang/xmllang-only-novalid.html": "When the attribute \u201cxml:lang\u201d in no namespace is specified, the element must also have the attribute \u201clang\u201d present with the same value.",
+ "html/attributes/role/unrecognized-role-name-novalid.html": "Discarding unrecognized token \u201cinput\u201d from value of attribute \u201crole\u201d. Browsers ignore any token that is not a defined ARIA non-abstract role.",
+ "html/attributes/spellcheck/value-bad-novalid.html": "Bad value \u201cbadvalue\u201d for attribute \u201cspellcheck\u201d on element \u201cp\u201d.",
+ "html/elements/a/download-novalid.html": "Element \u201ca\u201d is missing required attribute \u201chref\u201d.",
+ "html/elements/a/href/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/a/href/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/a/href/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/a/href/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/a/href/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/a/href/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/a/href/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/a/href/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/a/href/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/a/href/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/a/href/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/a/href/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/a/href/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/a/href/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/a/href/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/a/href/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/a/href/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/a/href/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/a/href/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/a/href/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/a/href/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/a/href/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/a/href/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/a/href/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/a/href/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/a/href/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/a/href/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/a/href/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/a/href/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/a/href/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/a/href/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/a/href/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/a/href/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/a/href/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/a/href/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/a/href/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/a/href/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/a/href/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/a/href/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/a/href/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/a/href/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/a/href/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/a/href/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/a/href/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/a/href/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/a/href/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/a/href/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/a/href/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/a/href/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/a/href/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/a/href/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/a/href/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/a/href/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/a/href/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/a/href/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/a/href/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/a/href/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/a/href/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/a/href/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/a/href/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/a/href/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/a/href/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/a/href/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/a/href/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/a/href/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201chref\u201d on element \u201ca\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/a/media-novalid.html": "Attribute \u201cmedia\u201d not allowed on element \u201ca\u201d at this point.",
+ "html/elements/a/model-novalid.html": "Element \u201cp\u201d not allowed as child of element \u201ca\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/a/name-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201cname\u201d on element \u201ca\u201d: Bad id: An ID must not be the empty string.",
+ "html/elements/abbr/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/address/model-novalid.html": "The element \u201caddress\u201d must not appear as a descendant of the \u201caddress\u201d element.",
+ "html/elements/area/href/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/area/href/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/area/href/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/area/href/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/area/href/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/area/href/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/area/href/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/area/href/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/area/href/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/area/href/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/area/href/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/area/href/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/area/href/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/area/href/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/area/href/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/area/href/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/area/href/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/area/href/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/area/href/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/area/href/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/area/href/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/area/href/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/area/href/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/area/href/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/area/href/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/area/href/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/area/href/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/area/href/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/area/href/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/area/href/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/area/href/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/area/href/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/area/href/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/area/href/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/area/href/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/area/href/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/area/href/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/area/href/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/area/href/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/area/href/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/area/href/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/area/href/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/area/href/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/area/href/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/area/href/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/area/href/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/area/href/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/area/href/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/area/href/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/area/href/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/area/href/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/area/href/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/area/href/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/area/href/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/area/href/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/area/href/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/area/href/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/area/href/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/area/href/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/area/href/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/area/href/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/area/href/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/area/href/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/area/href/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/area/href/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201chref\u201d on element \u201carea\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/area/media-novalid.html": "Attribute \u201cmedia\u201d not allowed on element \u201carea\u201d at this point.",
+ "html/elements/area/model-novalid.html": "Attribute \u201ccoords\u201d not allowed on element \u201carea\u201d at this point.",
+ "html/elements/audio/model-novalid.html": "Element \u201cp\u201d not allowed as child of element \u201caudio\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/audio/src-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Must be non-empty.",
+ "html/elements/audio/src-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Must be non-empty.",
+ "html/elements/audio/src/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/audio/src/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/audio/src/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/audio/src/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/audio/src/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/audio/src/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/audio/src/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/audio/src/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/audio/src/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/audio/src/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/audio/src/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/audio/src/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/audio/src/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/audio/src/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/audio/src/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/audio/src/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/audio/src/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/audio/src/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/audio/src/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/audio/src/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/audio/src/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/audio/src/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/audio/src/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/audio/src/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/audio/src/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/audio/src/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/audio/src/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/audio/src/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/audio/src/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/audio/src/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/audio/src/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/audio/src/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/audio/src/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/audio/src/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/audio/src/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/audio/src/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/audio/src/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/audio/src/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/audio/src/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/audio/src/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/audio/src/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/audio/src/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/audio/src/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/audio/src/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/audio/src/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/audio/src/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/audio/src/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/audio/src/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/audio/src/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/audio/src/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/audio/src/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/audio/src/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/audio/src/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/audio/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/audio/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/audio/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/audio/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/audio/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/audio/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/audio/src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/audio/src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/audio/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/audio/src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/audio/src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/audio/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201caudio\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/base/href-and-target-missing-novalid.html": "Element \u201cbase\u201d is missing one or more of the following attributes: [href, target].",
+ "html/elements/base/href/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/base/href/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/base/href/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/base/href/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/base/href/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/base/href/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/base/href/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/base/href/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/base/href/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/base/href/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/base/href/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/base/href/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/base/href/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/base/href/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/base/href/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/base/href/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/base/href/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/base/href/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/base/href/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/base/href/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/base/href/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/base/href/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/base/href/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/base/href/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/base/href/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/base/href/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/base/href/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/base/href/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/base/href/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/base/href/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/base/href/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/base/href/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/base/href/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/base/href/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/base/href/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/base/href/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/base/href/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/base/href/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/base/href/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/base/href/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/base/href/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/base/href/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/base/href/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/base/href/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/base/href/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/base/href/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/base/href/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/base/href/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/base/href/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/base/href/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/base/href/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/base/href/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/base/href/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/base/href/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/base/href/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/base/href/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/base/href/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/base/href/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/base/href/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/base/href/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/base/href/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/base/href/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/base/href/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/base/href/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/base/href/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201chref\u201d on element \u201cbase\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/bdo/model-novalid.html": "Element \u201cbdo\u201d must have attribute \u201cdir\u201d.",
+ "html/elements/blockquote/cite/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/blockquote/cite/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/blockquote/cite/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/blockquote/cite/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/blockquote/cite/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/blockquote/cite/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/blockquote/cite/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/blockquote/cite/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/blockquote/cite/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/blockquote/cite/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/blockquote/cite/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/blockquote/cite/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/blockquote/cite/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/blockquote/cite/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/blockquote/cite/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/blockquote/cite/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/blockquote/cite/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/blockquote/cite/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/blockquote/cite/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/blockquote/cite/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/blockquote/cite/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/blockquote/cite/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/blockquote/cite/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/blockquote/cite/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/blockquote/cite/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/blockquote/cite/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/blockquote/cite/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/blockquote/cite/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/blockquote/cite/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/blockquote/cite/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/blockquote/cite/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/blockquote/cite/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/blockquote/cite/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/blockquote/cite/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/blockquote/cite/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/blockquote/cite/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/blockquote/cite/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/blockquote/cite/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/blockquote/cite/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/blockquote/cite/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/blockquote/cite/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/blockquote/cite/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/blockquote/cite/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/blockquote/cite/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/blockquote/cite/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/blockquote/cite/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/blockquote/cite/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/blockquote/cite/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/blockquote/cite/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/blockquote/cite/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/blockquote/cite/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/blockquote/cite/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/blockquote/cite/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/blockquote/cite/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/blockquote/cite/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/blockquote/cite/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/blockquote/cite/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/blockquote/cite/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/blockquote/cite/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/blockquote/cite/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/blockquote/cite/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/blockquote/cite/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/blockquote/cite/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/blockquote/cite/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/blockquote/cite/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201ccite\u201d on element \u201cblockquote\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/blockquote/model-novalid.html": "No \u201cp\u201d element in scope but a \u201cp\u201d end tag seen.",
+ "html/elements/br/model-novalid.html": "End tag \u201cbr\u201d.",
+ "html/elements/button/formaction-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Must be non-empty.",
+ "html/elements/button/formaction-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Must be non-empty.",
+ "html/elements/button/formaction/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/button/formaction/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/button/formaction/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/button/formaction/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/button/formaction/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/button/formaction/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/button/formaction/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/button/formaction/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/button/formaction/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/button/formaction/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/button/formaction/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/button/formaction/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/button/formaction/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/button/formaction/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/button/formaction/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/button/formaction/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/button/formaction/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/button/formaction/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/button/formaction/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/button/formaction/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/button/formaction/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/button/formaction/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/button/formaction/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/button/formaction/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/button/formaction/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/button/formaction/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/button/formaction/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/button/formaction/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/button/formaction/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/button/formaction/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/button/formaction/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/button/formaction/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/button/formaction/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/button/formaction/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/button/formaction/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/button/formaction/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/button/formaction/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/button/formaction/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/button/formaction/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/button/formaction/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/button/formaction/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/button/formaction/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/button/formaction/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/button/formaction/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/button/formaction/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/button/formaction/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/button/formaction/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/button/formaction/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/button/formaction/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/button/formaction/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/button/formaction/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/button/formaction/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/button/formaction/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/button/formaction/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/button/formaction/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/button/formaction/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/button/formaction/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/button/formaction/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/button/formaction/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/button/formaction/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/button/formaction/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/button/formaction/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/button/formaction/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/button/formaction/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/button/formaction/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201cformaction\u201d on element \u201cbutton\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/canvas/model-novalid.html": "Element \u201cp\u201d not allowed as child of element \u201ccanvas\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/cite/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/code/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/del/cite/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/del/cite/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/del/cite/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/del/cite/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/del/cite/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/del/cite/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/del/cite/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/del/cite/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/del/cite/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/del/cite/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/del/cite/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/del/cite/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/del/cite/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/del/cite/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/del/cite/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/del/cite/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/del/cite/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/del/cite/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/del/cite/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/del/cite/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/del/cite/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/del/cite/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/del/cite/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/del/cite/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/del/cite/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/del/cite/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/del/cite/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/del/cite/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/del/cite/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/del/cite/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/del/cite/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/del/cite/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/del/cite/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/del/cite/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/del/cite/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/del/cite/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/del/cite/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/del/cite/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/del/cite/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/del/cite/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/del/cite/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/del/cite/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/del/cite/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/del/cite/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/del/cite/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/del/cite/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/del/cite/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/del/cite/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/del/cite/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/del/cite/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/del/cite/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/del/cite/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/del/cite/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/del/cite/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/del/cite/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/del/cite/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/del/cite/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/del/cite/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/del/cite/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/del/cite/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/del/cite/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/del/cite/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/del/cite/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/del/cite/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/del/cite/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201ccite\u201d on element \u201cdel\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/del/date-0004-02-29-haswarn.html": "Bad value \u201c0004-02-29\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad date: Year may be mistyped. Bad datetime with timezone: The literal did not satisfy the datetime with timezone format.",
+ "html/elements/del/date-0005-02-29-novalid.html": "Bad value \u201c0005-02-29\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-0214-09-29-haswarn.html": "Bad value \u201c0214-09-29\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad date: Year may be mistyped. Bad datetime with timezone: The literal did not satisfy the datetime with timezone format.",
+ "html/elements/del/date-1900-02-29-novalid.html": "Bad value \u201c1900-02-29\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-1969-02-29-novalid.html": "Bad value \u201c1969-02-29\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-20014-09-29-haswarn.html": "Bad value \u201c20014-09-29\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad date: Year may be mistyped. Bad datetime with timezone: The literal did not satisfy the datetime with timezone format.",
+ "html/elements/del/date-2014-02-29-novalid.html": "Bad value \u201c2014-02-29\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-2100-02-29-novalid.html": "Bad value \u201c2100-02-29\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-2200-02-29-novalid.html": "Bad value \u201c2200-02-29\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-day-01-32-novalid.html": "Bad value \u201c2002-01-32\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-day-03-32-novalid.html": "Bad value \u201c2002-03-32\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-day-04-31-novalid.html": "Bad value \u201c2002-04-31\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-day-05-32-novalid.html": "Bad value \u201c2002-05-32\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-day-06-31-novalid.html": "Bad value \u201c2002-06-31\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-day-07-32-novalid.html": "Bad value \u201c2002-07-32\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-day-08-32-novalid.html": "Bad value \u201c2002-08-32\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-day-09-31-novalid.html": "Bad value \u201c2002-09-31\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-day-10-32-novalid.html": "Bad value \u201c2002-10-32\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-day-11-31-novalid.html": "Bad value \u201c2002-11-31\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-day-12-32-novalid.html": "Bad value \u201c2002-12-32\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/del/date-day-missing-separator-novalid.html": "Bad value \u201c2014-0220\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/date-day-one-digit-novalid.html": "Bad value \u201c2002-09-9\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/date-day-three-digits-novalid.html": "Bad value \u201c2002-11-009\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/date-iso8601-YYYYMMDD-no-hyphen-novalid.html": "Bad value \u201c20020929\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/date-leading-bom-novalid.html": "Bad value \u201c\ufeff2002-09-29\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/date-leading-whitespace-novalid.html": "Bad value \u201c 2002-09-29\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/date-month-00-novalid.html": "Bad value \u201c2002-00-15\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad date: Month cannot be less than 1. Bad datetime with timezone: The literal did not satisfy the datetime with timezone format.",
+ "html/elements/del/date-month-13-novalid.html": "Bad value \u201c2002-13-15\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Month cannot be greater than 12.",
+ "html/elements/del/date-month-missing-separator-novalid.html": "Bad value \u201c201402-20\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/date-month-one-digit-novalid.html": "Bad value \u201c2002-9-29\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/date-month-three-digits-novalid.html": "Bad value \u201c2002-011-29\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/date-non-ascii-digit-novalid.html": "Bad value \u201c2002-09-2\uff19\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/date-trailing-U+0000-novalid.html": "Character reference expands to zero.",
+ "html/elements/del/date-trailing-pile-of-poo-novalid.html": "Bad value \u201c2002-09-29\ud83d\udca9\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/date-trailing-whitespace-novalid.html": "Bad value \u201c2002-09-29 \u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/date-wrong-day-separator-novalid.html": "Bad value \u201c2014-02:20\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/date-wrong-month-separator-novalid.html": "Bad value \u201c2014:02-20\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/date-year-0000-novalid.html": "Bad value \u201c0000-12-09\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Year cannot be less than 1.",
+ "html/elements/del/date-year-five-digits-haswarn.html": "Bad value \u201c12014-09-29\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad date: Year may be mistyped. Bad datetime with timezone: The literal did not satisfy the datetime with timezone format.",
+ "html/elements/del/date-year-negative-novalid.html": "Bad value \u201c-2002-09-29\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/date-year-three-digits-novalid.html": "Bad value \u201c782-09-29\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/duration-P-form-novalid.html": "Bad value \u201cPT4H18M3S\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/duration-time-component-novalid.html": "Bad value \u201c4h 18m 3s\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-2400-novalid.html": "Bad value \u201c2011-11-12T24:00:00+08:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: Hour cannot be greater than 23. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-60-minutes-novalid.html": "Bad value \u201c2011-11-12T00:60:00+08:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: Minute cannot be greater than 59. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-60-seconds-novalid.html": "Bad value \u201c2011-11-12T00:00:60+08:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: Second cannot be greater than 59. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-bad-fraction-separator-novalid.html": "Bad value \u201c2011-11-12T14:54:39,929+0000\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-four-digit-fraction-novalid.html": "Bad value \u201c2011-11-12T06:54:39.9291-08:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad date: The literal did not satisfy the date format. Bad datetime with timezone: A fraction of a second must be one, two, or three digits.",
+ "html/elements/del/global-date-and-time-hour-one-digit-novalid.html": "Bad value \u201c2011-11-12T6:54:39-08:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-hour-three-digits-novalid.html": "Bad value \u201c2011-11-12T016:54:39-08:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-iso8601-hh-novalid.html": "Bad value \u201c2011-11-12T14Z\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-iso8601-hhmm-no-colon-novalid.html": "Bad value \u201c2011-11-12T1454Z\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-iso8601-hhmmss-no-colon-novalid.html": "Bad value \u201c2011-11-12T145439Z\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-lowercase-z-novalid.html": "Bad value \u201c2011-11-12T14:54z\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-minutes-one-digit-novalid.html": "Bad value \u201c2011-11-12T16:4:39-08:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-minutes-three-digits-novalid.html": "Bad value \u201c2011-11-12T16:354:39-08:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-missing-minutes-separator-novalid.html": "Bad value \u201c2011-11-12T1454Z\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-missing-seconds-separator-novalid.html": "Bad value \u201c2011-11-12T14:5439Z\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-nbsp-novalid.html": "Bad value \u201c2011-11-12\u00a014:54Z\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-seconds-one-digit-novalid.html": "Bad value \u201c2011-11-12T16:54:9-08:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-seconds-three-digits-novalid.html": "Bad value \u201c2011-11-12T16:54:039-08:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-space-before-timezone-novalid.html": "Bad value \u201c2011-11-12T06:54:39 08:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-timezone-60-minutes-novalid.html": "Bad value \u201c2011-11-12T06:54:39-08:60\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad date: The literal did not satisfy the date format. Bad datetime with timezone: Minutes out of range in time zone designator.",
+ "html/elements/del/global-date-and-time-timezone-iso8601-two-digit-novalid.html": "Bad value \u201c2011-11-12T06:54:39-08\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-timezone-lowercase-t-novalid.html": "Bad value \u201c2011-11-12t14:54Z\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-timezone-minus-1300-haswarn.html": "Bad value \u201c2011-11-12T00:00:00-1300\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: Hours in time zone designator should be from \u201c-12:00\u201d to \u201d+14:00\u201d Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-timezone-minus-2400-novalid.html": "Bad value \u201c2011-11-12T06:54:39-24:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: Hours out of range in time zone designator. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-timezone-minutes-15-haswarn.html": "Bad value \u201c2011-11-12T00:00:00+08:15\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: Minutes in time zone designator should be either \u201c00\u201d, \u201c30\u201d, or \u201c45\u201d. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-timezone-multiple-spaces-novalid.html": "Bad value \u201c2011-11-12 14:54Z\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-timezone-non-T-character-novalid.html": "Bad value \u201c2011-11-12+14:54Z\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-timezone-offset-colon-start-novalid.html": "Bad value \u201c2011-11-12T06:54:39.929:08:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-timezone-offset-space-start-novalid.html": "Bad value \u201c2011-11-12T06:54:39.929 08:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-timezone-one-digit-hour-novalid.html": "Bad value \u201c2011-11-12T06:54:39-5:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-timezone-one-digit-minute-novalid.html": "Bad value \u201c2011-11-12T06:54:39-05:0\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-timezone-plus-1500-haswarn.html": "Bad value \u201c2011-11-12T00:00:00+1500\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: Hours in time zone designator should be from \u201c-12:00\u201d to \u201d+14:00\u201d Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-timezone-plus-2400-novalid.html": "Bad value \u201c2011-11-12T06:54:39-24:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: Hours out of range in time zone designator. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-timezone-three-digit-hour-novalid.html": "Bad value \u201c2011-11-12T06:54:39-005:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-timezone-three-digit-minute-novalid.html": "Bad value \u201c2011-11-12T06:54:39-05:000\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-timezone-with-seconds-novalid.html": "Bad value \u201c2011-11-12T06:54:39-08:00:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-with-both-T-and-space-novalid.html": "Bad value \u201c2011-11-12T 14:54Z\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-wrong-minutes-separator-novalid.html": "Bad value \u201c2011-11-12T14-54Z\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-wrong-seconds-separator-novalid.html": "Bad value \u201c2011-11-12T14:54-39Z\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/global-date-and-time-zero-digit-fraction-novalid.html": "Bad value \u201c2011-11-12T06:54:39.-08:00\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/local-date-and-time-novalid.html": "Bad value \u201c2011-11-12T14:54\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/del/month-novalid.html": "Bad value \u201c2011-11\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/time-novalid.html": "Bad value \u201c14:54:39\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/week-novalid.html": "Bad value \u201c2011-W46\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/year-novalid.html": "Bad value \u201c2006\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/del/yearless-date-novalid.html": "Bad value \u201c07-15\u201d for attribute \u201cdatetime\u201d on element \u201cdel\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/dfn/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/dialog/model-novalid.html": "Element \u201cdt\u201d not allowed as child of element \u201cdialog\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/div/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/dl/article-in-dt-novalid.html": "The element \u201carticle\u201d must not appear as a descendant of the \u201cdt\u201d element.",
+ "html/elements/dl/aside-in-dt-novalid.html": "The element \u201ch2\u201d must not appear as a descendant of the \u201cdt\u201d element.",
+ "html/elements/dl/dd-in-template-novalid.html": "Element \u201cdl\u201d is missing one or more of the following child elements: [dd].",
+ "html/elements/dl/div-contains-dl-novalid.html": "Element \u201cdl\u201d not allowed as child of element \u201cdiv\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/dl/div-contains-text-novalid.html": "Text not allowed in element \u201cdiv\u201d in this context.",
+ "html/elements/dl/div-multiple-groups-novalid.html": "Element \u201cdt\u201d not allowed as child of element \u201cdiv\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/dl/div-splitting-groups-2-novalid.html": "Element \u201cdiv\u201d is missing required child element \u201cdt\u201d.",
+ "html/elements/dl/div-splitting-groups-3-novalid.html": "Element \u201cdiv\u201d is missing required child element \u201cdd\u201d.",
+ "html/elements/dl/div-splitting-groups-novalid.html": "Element \u201cdiv\u201d is missing required child element \u201cdd\u201d.",
+ "html/elements/dl/dl-contains-dl-novalid.html": "Element \u201cdl\u201d not allowed as child of element \u201cdl\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/dl/dl-contains-text-2-novalid.html": "Text not allowed in element \u201cdl\u201d in this context.",
+ "html/elements/dl/dl-contains-text-novalid.html": "Text not allowed in element \u201cdl\u201d in this context.",
+ "html/elements/dl/dl-in-p-novalid.html": "No \u201cp\u201d element in scope but a \u201cp\u201d end tag seen.",
+ "html/elements/dl/dt-in-template-novalid.html": "Element \u201cdl\u201d is missing a required child element.",
+ "html/elements/dl/empty-div-2-novalid.html": "Element \u201cdiv\u201d is missing required child element \u201cdd\u201d.",
+ "html/elements/dl/empty-div-novalid.html": "Element \u201cdiv\u201d is missing required child element \u201cdd\u201d.",
+ "html/elements/dl/first-dd-novalid.html": "Element \u201cdl\u201d is missing a required child element.",
+ "html/elements/dl/footer-in-dt-novalid.html": "The element \u201cfooter\u201d must not appear as a descendant of the \u201cdt\u201d element.",
+ "html/elements/dl/h1-in-dt-novalid.html": "The element \u201ch1\u201d must not appear as a descendant of the \u201cdt\u201d element.",
+ "html/elements/dl/h2-in-dt-novalid.html": "The element \u201ch2\u201d must not appear as a descendant of the \u201cdt\u201d element.",
+ "html/elements/dl/h3-in-dt-novalid.html": "The element \u201ch3\u201d must not appear as a descendant of the \u201cdt\u201d element.",
+ "html/elements/dl/h4-in-dt-novalid.html": "The element \u201ch4\u201d must not appear as a descendant of the \u201cdt\u201d element.",
+ "html/elements/dl/h5-in-dt-novalid.html": "The element \u201ch5\u201d must not appear as a descendant of the \u201cdt\u201d element.",
+ "html/elements/dl/h6-in-dt-novalid.html": "The element \u201ch6\u201d must not appear as a descendant of the \u201cdt\u201d element.",
+ "html/elements/dl/header-in-dt-novalid.html": "The element \u201cheader\u201d must not appear as a descendant of the \u201cdt\u201d element.",
+ "html/elements/dl/hgroup-in-dt-novalid.html": "The element \u201chgroup\u201d must not appear as a descendant of the \u201cdt\u201d element.",
+ "html/elements/dl/last-dt-novalid.html": "Element \u201cdl\u201d is missing required child element \u201cdd\u201d.",
+ "html/elements/dl/mixed-div-dt-dd-novalid.html": "Element \u201cdt\u201d not allowed as child of element \u201cdl\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/dl/mixed-dt-dd-div-novalid.html": "Element \u201cdiv\u201d not allowed as child of element \u201cdl\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/dl/nav-in-dt-novalid.html": "The element \u201cnav\u201d must not appear as a descendant of the \u201cdt\u201d element.",
+ "html/elements/dl/nested-divs-novalid.html": "Element \u201cdiv\u201d not allowed as child of element \u201cdiv\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/dl/only-dd-novalid.html": "Element \u201cdl\u201d is missing a required child element.",
+ "html/elements/dl/only-dt-novalid.html": "Element \u201cdl\u201d is missing required child element \u201cdd\u201d.",
+ "html/elements/dl/section-in-dt-novalid.html": "The element \u201csection\u201d must not appear as a descendant of the \u201cdt\u201d element.",
+ "html/elements/em/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/embed/height-novalid.html": "Bad value \u201c20%\u201d for attribute \u201cheight\u201d on element \u201cembed\u201d: Bad non-negative integer: Expected a digit but saw \u201c%\u201d instead.",
+ "html/elements/embed/src-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Must be non-empty.",
+ "html/elements/embed/src-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Must be non-empty.",
+ "html/elements/embed/src/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/embed/src/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/embed/src/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/embed/src/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/embed/src/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/embed/src/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/embed/src/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/embed/src/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/embed/src/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/embed/src/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/embed/src/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/embed/src/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/embed/src/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/embed/src/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/embed/src/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/embed/src/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/embed/src/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/embed/src/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/embed/src/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/embed/src/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/embed/src/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/embed/src/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/embed/src/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/embed/src/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/embed/src/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/embed/src/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/embed/src/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/embed/src/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/embed/src/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/embed/src/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/embed/src/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/embed/src/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/embed/src/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/embed/src/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/embed/src/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/embed/src/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/embed/src/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/embed/src/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/embed/src/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/embed/src/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/embed/src/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/embed/src/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/embed/src/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/embed/src/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/embed/src/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/embed/src/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/embed/src/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/embed/src/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/embed/src/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/embed/src/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/embed/src/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/embed/src/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/embed/src/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/embed/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/embed/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/embed/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/embed/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/embed/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/embed/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/embed/src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/embed/src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/embed/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/embed/src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/embed/src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/embed/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201cembed\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/embed/type-novalid.html": "Bad value \u201cfoo\u201d for attribute \u201ctype\u201d on element \u201cembed\u201d: Bad MIME type: Subtype missing.",
+ "html/elements/embed/width-novalid.html": "Bad value \u201c20%\u201d for attribute \u201cwidth\u201d on element \u201cembed\u201d: Bad non-negative integer: Expected a digit but saw \u201c%\u201d instead.",
+ "html/elements/footer/nested-footer-novalid.html": "The element \u201cfooter\u201d must not appear as a descendant of the \u201cfooter\u201d element.",
+ "html/elements/footer/nested-header-novalid.html": "The element \u201cheader\u201d must not appear as a descendant of the \u201cfooter\u201d element.",
+ "html/elements/form/action-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Must be non-empty.",
+ "html/elements/form/action-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Must be non-empty.",
+ "html/elements/form/action/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/form/action/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/form/action/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/form/action/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/form/action/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/form/action/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/form/action/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/form/action/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/form/action/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/form/action/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/form/action/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/form/action/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/form/action/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/form/action/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/form/action/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/form/action/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/form/action/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/form/action/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/form/action/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/form/action/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/form/action/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/form/action/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/form/action/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/form/action/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/form/action/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/form/action/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/form/action/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/form/action/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/form/action/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/form/action/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/form/action/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/form/action/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/form/action/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/form/action/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/form/action/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/form/action/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/form/action/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/form/action/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/form/action/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/form/action/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/form/action/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/form/action/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/form/action/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/form/action/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/form/action/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/form/action/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/form/action/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/form/action/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/form/action/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/form/action/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/form/action/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/form/action/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/form/action/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/form/action/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/form/action/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/form/action/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/form/action/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/form/action/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/form/action/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/form/action/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/form/action/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/form/action/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/form/action/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/form/action/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/form/action/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201caction\u201d on element \u201cform\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/h1/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/h2/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/h3/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/h4/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/h5/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/h6/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/header/nested-footer-novalid.html": "The element \u201cfooter\u201d must not appear as a descendant of the \u201cheader\u201d element.",
+ "html/elements/header/nested-header-novalid.html": "The element \u201cheader\u201d must not appear as a descendant of the \u201cheader\u201d element.",
+ "html/elements/hr/model-novalid.html": "No \u201cp\u201d element in scope but a \u201cp\u201d end tag seen.",
+ "html/elements/i/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/iframe/model-novalid.html": "The \u201cframeborder\u201d attribute on the \u201ciframe\u201d element is obsolete. Use CSS instead.",
+ "html/elements/iframe/src-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Must be non-empty.",
+ "html/elements/iframe/src-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Must be non-empty.",
+ "html/elements/iframe/src/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/iframe/src/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/iframe/src/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/iframe/src/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/iframe/src/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/iframe/src/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/iframe/src/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/iframe/src/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/iframe/src/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/iframe/src/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/iframe/src/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/iframe/src/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/iframe/src/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/iframe/src/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/iframe/src/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/iframe/src/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/iframe/src/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/iframe/src/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/iframe/src/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/iframe/src/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/iframe/src/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/iframe/src/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/iframe/src/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/iframe/src/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/iframe/src/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/iframe/src/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/iframe/src/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/iframe/src/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/iframe/src/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/iframe/src/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/iframe/src/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/iframe/src/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/iframe/src/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/iframe/src/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/iframe/src/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/iframe/src/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/iframe/src/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/iframe/src/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/iframe/src/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/iframe/src/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/iframe/src/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/iframe/src/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/iframe/src/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/iframe/src/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/iframe/src/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/iframe/src/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/iframe/src/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/iframe/src/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/iframe/src/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/iframe/src/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/iframe/src/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/iframe/src/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/iframe/src/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/iframe/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/iframe/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/iframe/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/iframe/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/iframe/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/iframe/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/iframe/src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/iframe/src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/iframe/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/iframe/src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/iframe/src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/iframe/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201ciframe\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/img/model-novalid.html": "Bad value \u201curl\u201d for attribute \u201cusemap\u201d on element \u201cimg\u201d: Bad hash-name reference: A hash-name reference must start with \u201c#\u201d.",
+ "html/elements/img/src-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Must be non-empty.",
+ "html/elements/img/src-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Must be non-empty.",
+ "html/elements/img/src/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/img/src/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/img/src/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/img/src/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/img/src/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/img/src/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/img/src/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/img/src/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/img/src/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/img/src/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/img/src/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/img/src/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/img/src/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/img/src/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/img/src/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/img/src/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/img/src/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/img/src/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/img/src/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/img/src/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/img/src/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/img/src/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/img/src/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/img/src/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/img/src/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/img/src/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/img/src/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/img/src/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/img/src/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/img/src/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/img/src/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/img/src/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/img/src/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/img/src/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/img/src/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/img/src/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/img/src/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/img/src/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/img/src/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/img/src/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/img/src/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/img/src/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/img/src/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/img/src/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/img/src/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/img/src/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/img/src/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/img/src/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/img/src/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/img/src/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/img/src/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/img/src/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/img/src/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/img/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/img/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/img/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/img/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/img/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/img/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/img/src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/img/src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/img/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/img/src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/img/src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/img/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201cimg\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/img/usemap-bad-value-novalid.html": "Bad value \u201c#\u201d for attribute \u201cusemap\u201d on element \u201cimg\u201d: Bad hash-name reference: A hash-name reference must have at least one character after \u201c#\u201d.",
+ "html/elements/img/width-height-negative-novalid.html": "Bad value \u201c-1\u201d for attribute \u201cwidth\u201d on element \u201cimg\u201d: Bad non-negative integer: Expected a digit but saw \u201c-\u201d instead.",
+ "html/elements/input/autocomplete-address-novalid.html": "Bad value \u201ccountry shipping\u201d for attribute \u201cautocomplete\u201d on element \u201cinput\u201d: The token \u201cshipping\u201d must only appear as either the first token in a list of autofill detail tokens, or, if the first token is a \u201csection-*\u201d indicator, as the second token.",
+ "html/elements/input/autocomplete-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201cautocomplete\u201d on element \u201cinput\u201d: Must not be empty.",
+ "html/elements/input/autocomplete-section-novalid.html": "Bad value \u201ccountry section-blue\u201d for attribute \u201cautocomplete\u201d on element \u201cinput\u201d: A \u201csection-*\u201d indicator must only appear as the first token in a list of autofill detail tokens.",
+ "html/elements/input/autocomplete-token-novalid.html": "Bad value \u201cqwerty\u201d for attribute \u201cautocomplete\u201d on element \u201cinput\u201d: The string \u201cqwerty\u201d is not a valid autofill field name.",
+ "html/elements/input/autocomplete-work-novalid.html": "Bad value \u201ccountry work\u201d for attribute \u201cautocomplete\u201d on element \u201cinput\u201d: The token \u201cwork\u201d must only appear before any autofill field names.",
+ "html/elements/input/list-novalid.html": "The \u201clist\u201d attribute of the \u201cinput\u201d element must refer to a \u201cdatalist\u201d element.",
+ "html/elements/input/type-image-formaction-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Must be non-empty.",
+ "html/elements/input/type-image-formaction-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Must be non-empty.",
+ "html/elements/input/type-image-formaction/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/input/type-image-formaction/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-image-formaction/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/input/type-image-formaction/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/input/type-image-formaction/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/input/type-image-formaction/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/input/type-image-formaction/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/input/type-image-formaction/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/input/type-image-formaction/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-image-formaction/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/input/type-image-formaction/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-image-formaction/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/input/type-image-formaction/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/input/type-image-formaction/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-image-formaction/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-image-formaction/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-image-formaction/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/input/type-image-formaction/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/input/type-image-formaction/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-image-formaction/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/input/type-image-formaction/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/input/type-image-formaction/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/input/type-image-formaction/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-image-formaction/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-image-formaction/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/input/type-image-formaction/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-image-formaction/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/input/type-image-formaction/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/input/type-image-formaction/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/input/type-image-formaction/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/input/type-image-formaction/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-image-formaction/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-formaction/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-formaction/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-formaction/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-formaction/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-formaction/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-formaction/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-formaction/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-formaction/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-formaction/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/input/type-image-formaction/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/input/type-image-formaction/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/input/type-image-formaction/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/input/type-image-formaction/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-image-formaction/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/input/type-image-formaction/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/input/type-image-formaction/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/input/type-image-src-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Must be non-empty.",
+ "html/elements/input/type-image-src-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Must be non-empty.",
+ "html/elements/input/type-image-src/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/input/type-image-src/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/input/type-image-src/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/input/type-image-src/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-image-src/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/input/type-image-src/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/input/type-image-src/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/input/type-image-src/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/input/type-image-src/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/input/type-image-src/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/input/type-image-src/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/input/type-image-src/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/input/type-image-src/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-image-src/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/input/type-image-src/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/input/type-image-src/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-image-src/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/input/type-image-src/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/input/type-image-src/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/input/type-image-src/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/input/type-image-src/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-image-src/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-image-src/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-image-src/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/input/type-image-src/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/input/type-image-src/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/input/type-image-src/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-image-src/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/input/type-image-src/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/input/type-image-src/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/input/type-image-src/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-image-src/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/input/type-image-src/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/input/type-image-src/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/input/type-image-src/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/input/type-image-src/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-image-src/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/input/type-image-src/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/input/type-image-src/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-image-src/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/input/type-image-src/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/input/type-image-src/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/input/type-image-src/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/input/type-image-src/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-image-src/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/input/type-image-src/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/input/type-image-src/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/input/type-image-src/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-src/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-src/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-src/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-src/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-src/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-image-src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/input/type-image-src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/input/type-image-src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/input/type-image-src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/input/type-image-src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-image-src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/input/type-image-src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/input/type-image-src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/input/type-image-src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Must be non-empty.",
+ "html/elements/input/type-submit-formaction-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Must be non-empty.",
+ "html/elements/input/type-submit-formaction/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/input/type-submit-formaction/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-submit-formaction/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/input/type-submit-formaction/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/input/type-submit-formaction/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/input/type-submit-formaction/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/input/type-submit-formaction/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/input/type-submit-formaction/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/input/type-submit-formaction/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-submit-formaction/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/input/type-submit-formaction/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-submit-formaction/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/input/type-submit-formaction/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/input/type-submit-formaction/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-submit-formaction/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-submit-formaction/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-submit-formaction/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/input/type-submit-formaction/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/input/type-submit-formaction/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-submit-formaction/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/input/type-submit-formaction/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/input/type-submit-formaction/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/input/type-submit-formaction/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-submit-formaction/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-submit-formaction/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-submit-formaction/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/input/type-submit-formaction/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/input/type-submit-formaction/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/input/type-submit-formaction/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/input/type-submit-formaction/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-submit-formaction/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-submit-formaction/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-submit-formaction/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-submit-formaction/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-submit-formaction/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-submit-formaction/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-submit-formaction/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-submit-formaction/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-submit-formaction/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/input/type-submit-formaction/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/input/type-submit-formaction/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/input/type-submit-formaction/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/input/type-submit-formaction/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/input/type-submit-formaction/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-submit-formaction/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/input/type-submit-formaction/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/input/type-submit-formaction/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201cformaction\u201d on element \u201cinput\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/input/type-url-value/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c#\\\u201d is not an absolute URL.",
+ "html/elements/input/type-url-value/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/input/type-url-value/fragment-empty-hash-only-no-path-relative-novalid.html": "Bad value \u201c#\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c#\u201d is not an absolute URL.",
+ "html/elements/input/type-url-value/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/input/type-url-value/fragment-non-ascii-relative-novalid.html": "Bad value \u201c#\u03b2\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c#\u03b2\u201d is not an absolute URL.",
+ "html/elements/input/type-url-value/fragment-semicolon-question-mark-relative-novalid.html": "Bad value \u201c#;?\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c#;?\u201d is not an absolute URL.",
+ "html/elements/input/type-url-value/fragment-slash-relative-novalid.html": "Bad value \u201c#/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c#/\u201d is not an absolute URL.",
+ "html/elements/input/type-url-value/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-url-value/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/input/type-url-value/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/input/type-url-value/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Invalid host: empty host.",
+ "html/elements/input/type-url-value/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Invalid host: empty host.",
+ "html/elements/input/type-url-value/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Invalid host: empty host.",
+ "html/elements/input/type-url-value/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Invalid host: Illegal character.",
+ "html/elements/input/type-url-value/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/input/type-url-value/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/input/type-url-value/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-url-value/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/input/type-url-value/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/input/type-url-value/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-url-value/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/input/type-url-value/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/input/type-url-value/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/input/type-url-value/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c/a/ /c\u201d is not an absolute URL.",
+ "html/elements/input/type-url-value/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-url-value/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c:\\\u201d is not an absolute URL.",
+ "html/elements/input/type-url-value/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c:foo.com\\\u201d is not an absolute URL.",
+ "html/elements/input/type-url-value/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/input/type-url-value/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/input/type-url-value/path-percent-encoded-slash-plus-slashes-relative-novalid.html": "Bad value \u201c/a/%2f/c\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c/a/%2f/c\u201d is not an absolute URL.",
+ "html/elements/input/type-url-value/path-percent-encoded-slash-relative-novalid.html": "Bad value \u201c/a%2fc\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c/a%2fc\u201d is not an absolute URL.",
+ "html/elements/input/type-url-value/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c[61:24:74]:98\u201d is not an absolute URL.",
+ "html/elements/input/type-url-value/path-simple-relative-novalid.html": "Bad value \u201c/a/b/c\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c/a/b/c\u201d is not an absolute URL.",
+ "html/elements/input/type-url-value/path-slash-only-relative-novalid.html": "Bad value \u201c/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c/\u201d is not an absolute URL.",
+ "html/elements/input/type-url-value/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-url-value/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/input/type-url-value/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/input/type-url-value/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Port number must be less than 65536.",
+ "html/elements/input/type-url-value/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-url-value/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/input/type-url-value/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/input/type-url-value/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/input/type-url-value/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/input/type-url-value/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-url-value/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/input/type-url-value/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/input/type-url-value/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Tab, new line or carriage return found.",
+ "html/elements/input/type-url-value/query-empty-no-path-relative-novalid.html": "Bad value \u201c?\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c?\u201d is not an absolute URL.",
+ "html/elements/input/type-url-value/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in query: space is not allowed.",
+ "html/elements/input/type-url-value/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in query: space is not allowed.",
+ "html/elements/input/type-url-value/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/input/type-url-value/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/input/type-url-value/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-url-value/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/input/type-url-value/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/input/type-url-value/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/input/type-url-value/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/elements/input/type-url-value/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/elements/input/type-url-value/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/elements/input/type-url-value/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/elements/input/type-url-value/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/elements/input/type-url-value/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/elements/input/type-url-value/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/elements/input/type-url-value/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/elements/input/type-url-value/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/elements/input/type-url-value/scheme-schemeless-relative-novalid.html": "Bad value \u201c//foo/bar\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: The string \u201c//foo/bar\u201d is not an absolute URL.",
+ "html/elements/input/type-url-value/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/input/type-url-value/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/input/type-url-value/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/input/type-url-value/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/input/type-url-value/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/input/type-url-value/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/input/type-url-value/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/input/type-url-value/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/input/type-url-value/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201cvalue\u201d on element \u201cinput\u201d: Bad absolute URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/ins/cite/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/ins/cite/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/ins/cite/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/ins/cite/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/ins/cite/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/ins/cite/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/ins/cite/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/ins/cite/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/ins/cite/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/ins/cite/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/ins/cite/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/ins/cite/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/ins/cite/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/ins/cite/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/ins/cite/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/ins/cite/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/ins/cite/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/ins/cite/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/ins/cite/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/ins/cite/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/ins/cite/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/ins/cite/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/ins/cite/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/ins/cite/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/ins/cite/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/ins/cite/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/ins/cite/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/ins/cite/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/ins/cite/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/ins/cite/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/ins/cite/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/ins/cite/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/ins/cite/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/ins/cite/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/ins/cite/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/ins/cite/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/ins/cite/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/ins/cite/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/ins/cite/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/ins/cite/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/ins/cite/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/ins/cite/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/ins/cite/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/ins/cite/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/ins/cite/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/ins/cite/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/ins/cite/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/ins/cite/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/ins/cite/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/ins/cite/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/ins/cite/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/ins/cite/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/ins/cite/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/ins/cite/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/ins/cite/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/ins/cite/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/ins/cite/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/ins/cite/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/ins/cite/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/ins/cite/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/ins/cite/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/ins/cite/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/ins/cite/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/ins/cite/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/ins/cite/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201ccite\u201d on element \u201cins\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/ins/date-0004-02-29-haswarn.html": "Bad value \u201c0004-02-29\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad date: Year may be mistyped. Bad datetime with timezone: The literal did not satisfy the datetime with timezone format.",
+ "html/elements/ins/date-0005-02-29-novalid.html": "Bad value \u201c0005-02-29\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-0214-09-29-haswarn.html": "Bad value \u201c0214-09-29\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad date: Year may be mistyped. Bad datetime with timezone: The literal did not satisfy the datetime with timezone format.",
+ "html/elements/ins/date-1900-02-29-novalid.html": "Bad value \u201c1900-02-29\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-1969-02-29-novalid.html": "Bad value \u201c1969-02-29\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-20014-09-29-haswarn.html": "Bad value \u201c20014-09-29\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad date: Year may be mistyped. Bad datetime with timezone: The literal did not satisfy the datetime with timezone format.",
+ "html/elements/ins/date-2014-02-29-novalid.html": "Bad value \u201c2014-02-29\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-2100-02-29-novalid.html": "Bad value \u201c2100-02-29\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-2200-02-29-novalid.html": "Bad value \u201c2200-02-29\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-day-01-32-novalid.html": "Bad value \u201c2002-01-32\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-day-03-32-novalid.html": "Bad value \u201c2002-03-32\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-day-04-31-novalid.html": "Bad value \u201c2002-04-31\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-day-05-32-novalid.html": "Bad value \u201c2002-05-32\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-day-06-31-novalid.html": "Bad value \u201c2002-06-31\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-day-07-32-novalid.html": "Bad value \u201c2002-07-32\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-day-08-32-novalid.html": "Bad value \u201c2002-08-32\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-day-09-31-novalid.html": "Bad value \u201c2002-09-31\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-day-10-32-novalid.html": "Bad value \u201c2002-10-32\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-day-11-31-novalid.html": "Bad value \u201c2002-11-31\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-day-12-32-novalid.html": "Bad value \u201c2002-12-32\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Day out of range.",
+ "html/elements/ins/date-day-missing-separator-novalid.html": "Bad value \u201c2014-0220\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/date-day-one-digit-novalid.html": "Bad value \u201c2002-09-9\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/date-day-three-digits-novalid.html": "Bad value \u201c2002-11-009\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/date-iso8601-YYYYMMDD-no-hyphen-novalid.html": "Bad value \u201c20020929\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/date-leading-bom-novalid.html": "Bad value \u201c\ufeff2002-09-29\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/date-leading-whitespace-novalid.html": "Bad value \u201c 2002-09-29\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/date-month-00-novalid.html": "Bad value \u201c2002-00-15\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad date: Month cannot be less than 1. Bad datetime with timezone: The literal did not satisfy the datetime with timezone format.",
+ "html/elements/ins/date-month-13-novalid.html": "Bad value \u201c2002-13-15\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Month cannot be greater than 12.",
+ "html/elements/ins/date-month-missing-separator-novalid.html": "Bad value \u201c201402-20\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/date-month-one-digit-novalid.html": "Bad value \u201c2002-9-29\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/date-month-three-digits-novalid.html": "Bad value \u201c2002-011-29\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/date-non-ascii-digit-novalid.html": "Bad value \u201c2002-09-2\uff19\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/date-trailing-U+0000-novalid.html": "Character reference expands to zero.",
+ "html/elements/ins/date-trailing-pile-of-poo-novalid.html": "Bad value \u201c2002-09-29\ud83d\udca9\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/date-trailing-whitespace-novalid.html": "Bad value \u201c2002-09-29 \u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/date-wrong-day-separator-novalid.html": "Bad value \u201c2014-02:20\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/date-wrong-month-separator-novalid.html": "Bad value \u201c2014:02-20\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/date-year-0000-novalid.html": "Bad value \u201c0000-12-09\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: Year cannot be less than 1.",
+ "html/elements/ins/date-year-five-digits-haswarn.html": "Bad value \u201c12014-09-29\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad date: Year may be mistyped. Bad datetime with timezone: The literal did not satisfy the datetime with timezone format.",
+ "html/elements/ins/date-year-negative-novalid.html": "Bad value \u201c-2002-09-29\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/date-year-three-digits-novalid.html": "Bad value \u201c782-09-29\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/duration-P-form-novalid.html": "Bad value \u201cPT4H18M3S\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/duration-time-component-novalid.html": "Bad value \u201c4h 18m 3s\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-2400-novalid.html": "Bad value \u201c2011-11-12T24:00:00+08:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: Hour cannot be greater than 23. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-60-minutes-novalid.html": "Bad value \u201c2011-11-12T00:60:00+08:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: Minute cannot be greater than 59. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-60-seconds-novalid.html": "Bad value \u201c2011-11-12T00:00:60+08:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: Second cannot be greater than 59. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-bad-fraction-separator-novalid.html": "Bad value \u201c2011-11-12T14:54:39,929+0000\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-four-digit-fraction-novalid.html": "Bad value \u201c2011-11-12T06:54:39.9291-08:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad date: The literal did not satisfy the date format. Bad datetime with timezone: A fraction of a second must be one, two, or three digits.",
+ "html/elements/ins/global-date-and-time-hour-one-digit-novalid.html": "Bad value \u201c2011-11-12T6:54:39-08:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-hour-three-digits-novalid.html": "Bad value \u201c2011-11-12T016:54:39-08:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-iso8601-hh-novalid.html": "Bad value \u201c2011-11-12T14Z\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-iso8601-hhmm-no-colon-novalid.html": "Bad value \u201c2011-11-12T1454Z\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-iso8601-hhmmss-no-colon-novalid.html": "Bad value \u201c2011-11-12T145439Z\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-lowercase-z-novalid.html": "Bad value \u201c2011-11-12T14:54z\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-minutes-one-digit-novalid.html": "Bad value \u201c2011-11-12T16:4:39-08:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-minutes-three-digits-novalid.html": "Bad value \u201c2011-11-12T16:354:39-08:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-missing-minutes-separator-novalid.html": "Bad value \u201c2011-11-12T1454Z\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-missing-seconds-separator-novalid.html": "Bad value \u201c2011-11-12T14:5439Z\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-nbsp-novalid.html": "Bad value \u201c2011-11-12\u00a014:54Z\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-seconds-one-digit-novalid.html": "Bad value \u201c2011-11-12T16:54:9-08:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-seconds-three-digits-novalid.html": "Bad value \u201c2011-11-12T16:54:039-08:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-space-before-timezone-novalid.html": "Bad value \u201c2011-11-12T06:54:39 08:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-timezone-60-minutes-novalid.html": "Bad value \u201c2011-11-12T06:54:39-08:60\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad date: The literal did not satisfy the date format. Bad datetime with timezone: Minutes out of range in time zone designator.",
+ "html/elements/ins/global-date-and-time-timezone-iso8601-two-digit-novalid.html": "Bad value \u201c2011-11-12T06:54:39-08\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-timezone-lowercase-t-novalid.html": "Bad value \u201c2011-11-12t14:54Z\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-timezone-minus-1300-haswarn.html": "Bad value \u201c2011-11-12T00:00:00-1300\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: Hours in time zone designator should be from \u201c-12:00\u201d to \u201d+14:00\u201d Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-timezone-minus-2400-novalid.html": "Bad value \u201c2011-11-12T06:54:39-24:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: Hours out of range in time zone designator. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-timezone-minutes-15-haswarn.html": "Bad value \u201c2011-11-12T00:00:00+08:15\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: Minutes in time zone designator should be either \u201c00\u201d, \u201c30\u201d, or \u201c45\u201d. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-timezone-multiple-spaces-novalid.html": "Bad value \u201c2011-11-12 14:54Z\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-timezone-non-T-character-novalid.html": "Bad value \u201c2011-11-12+14:54Z\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-timezone-offset-colon-start-novalid.html": "Bad value \u201c2011-11-12T06:54:39.929:08:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-timezone-offset-space-start-novalid.html": "Bad value \u201c2011-11-12T06:54:39.929 08:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-timezone-one-digit-hour-novalid.html": "Bad value \u201c2011-11-12T06:54:39-5:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-timezone-one-digit-minute-novalid.html": "Bad value \u201c2011-11-12T06:54:39-05:0\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-timezone-plus-1500-haswarn.html": "Bad value \u201c2011-11-12T00:00:00+1500\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: Hours in time zone designator should be from \u201c-12:00\u201d to \u201d+14:00\u201d Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-timezone-plus-2400-novalid.html": "Bad value \u201c2011-11-12T06:54:39-24:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: Hours out of range in time zone designator. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-timezone-three-digit-hour-novalid.html": "Bad value \u201c2011-11-12T06:54:39-005:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-timezone-three-digit-minute-novalid.html": "Bad value \u201c2011-11-12T06:54:39-05:000\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-timezone-with-seconds-novalid.html": "Bad value \u201c2011-11-12T06:54:39-08:00:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-with-both-T-and-space-novalid.html": "Bad value \u201c2011-11-12T 14:54Z\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-wrong-minutes-separator-novalid.html": "Bad value \u201c2011-11-12T14-54Z\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-wrong-seconds-separator-novalid.html": "Bad value \u201c2011-11-12T14:54-39Z\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/global-date-and-time-zero-digit-fraction-novalid.html": "Bad value \u201c2011-11-12T06:54:39.-08:00\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/local-date-and-time-novalid.html": "Bad value \u201c2011-11-12T14:54\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/ins/month-novalid.html": "Bad value \u201c2011-11\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/time-novalid.html": "Bad value \u201c14:54:39\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/week-novalid.html": "Bad value \u201c2011-W46\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/year-novalid.html": "Bad value \u201c2006\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/ins/yearless-date-novalid.html": "Bad value \u201c07-15\u201d for attribute \u201cdatetime\u201d on element \u201cins\u201d: Bad datetime with timezone: The literal did not satisfy the datetime with timezone format. Bad date: The literal did not satisfy the date format.",
+ "html/elements/kbd/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/keygen/challenge-novalid.html": "The \u201ckeygen\u201d element is obsolete.",
+ "html/elements/keygen/id-bad-novalid.html": "The \u201ckeygen\u201d element is obsolete.",
+ "html/elements/keygen/id-missing-novalid.html": "The \u201ckeygen\u201d element is obsolete.",
+ "html/elements/keygen/id-redundant-novalid.html": "The \u201ckeygen\u201d element is obsolete.",
+ "html/elements/keygen/keygen-novalid.html": "The \u201ckeygen\u201d element is obsolete.",
+ "html/elements/keygen/keytype-bad-value-novalid.html": "The \u201ckeygen\u201d element is obsolete.",
+ "html/elements/keygen/keytype-empty-novalid.html": "The \u201ckeygen\u201d element is obsolete.",
+ "html/elements/keygen/keytype-novalid.html": "The \u201ckeygen\u201d element is obsolete.",
+ "html/elements/keygen/model-also-novalid.html": "The \u201ckeygen\u201d element is obsolete.",
+ "html/elements/keygen/model-novalid.html": "The \u201ckeygen\u201d element is obsolete.",
+ "html/elements/keygen/no-attributes-novalid.html": "The \u201ckeygen\u201d element is obsolete.",
+ "html/elements/keygen/non-void-novalid.html": "The \u201ckeygen\u201d element is obsolete.",
+ "html/elements/label/for-descendant-no-id-novalid.html": "Any \u201cinput\u201d descendant of a \u201clabel\u201d element with a \u201cfor\u201d attribute must have an ID value that matches that \u201cfor\u201d attribute.",
+ "html/elements/label/multiple-descendants-novalid.html": "The \u201clabel\u201d element may contain at most one \u201cbutton\u201d, \u201cinput\u201d, \u201cmeter\u201d, \u201coutput\u201d, \u201cprogress\u201d, \u201cselect\u201d, or \u201ctextarea\u201d descendant.",
+ "html/elements/link/href-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Must be non-empty.",
+ "html/elements/link/href-missing-novalid.html": "A \u201clink\u201d element must have an \u201chref\u201d or \u201cimagesrcset\u201d attribute, or both.",
+ "html/elements/link/href-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Must be non-empty.",
+ "html/elements/link/href/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/link/href/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/link/href/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/link/href/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/link/href/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/link/href/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/link/href/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/link/href/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/link/href/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/link/href/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/link/href/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/link/href/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/link/href/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/link/href/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/link/href/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/link/href/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/link/href/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/link/href/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/link/href/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/link/href/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/link/href/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/link/href/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/link/href/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/link/href/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/link/href/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/link/href/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/link/href/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/link/href/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/link/href/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/link/href/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/link/href/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/link/href/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/link/href/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/link/href/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/link/href/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/link/href/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/link/href/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/link/href/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/link/href/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/link/href/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/link/href/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/link/href/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/link/href/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/link/href/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/link/href/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/link/href/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/link/href/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/link/href/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/link/href/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/link/href/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/link/href/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/link/href/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/link/href/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/link/href/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/link/href/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/link/href/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/link/href/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/link/href/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/link/href/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/link/href/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/link/href/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/link/href/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/link/href/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/link/href/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/link/href/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201chref\u201d on element \u201clink\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/link/imagesizes-no-imagesrcset-novalid.html": "The \u201cimagesizes\u201d attribute may be specified only if the \u201cimagesrcset\u201d attribute is also present.",
+ "html/elements/link/imagesrcset-no-as-image-novalid.html": "A \u201clink\u201d element with an \u201cimagesrcset\u201d attribute must have an \u201cas\u201d attribute with value \u201cimage\u201d.",
+ "html/elements/link/imagesrcset-no-preload-novalid.html": "A \u201clink\u201d element with an \u201cimagesrcset\u201d attribute must have a \u201crel\u201d attribute that contains the value \u201cpreload\u201d.",
+ "html/elements/map/model-novalid.html": "The \u201cid\u201d attribute on a \u201cmap\u201d element must have an the same value as the \u201cname\u201d attribute.",
+ "html/elements/object/data-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Must be non-empty.",
+ "html/elements/object/data-type-missing-novalid.html": "Element \u201cobject\u201d is missing one or more of the following attributes: [data, type].",
+ "html/elements/object/data-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Must be non-empty.",
+ "html/elements/object/data/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/object/data/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/object/data/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/object/data/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/object/data/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/object/data/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/object/data/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/object/data/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/object/data/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/object/data/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/object/data/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/object/data/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/object/data/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/object/data/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/object/data/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/object/data/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/object/data/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/object/data/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/object/data/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/object/data/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/object/data/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/object/data/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/object/data/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/object/data/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/object/data/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/object/data/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/object/data/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/object/data/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/object/data/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/object/data/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/object/data/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/object/data/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/object/data/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/object/data/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/object/data/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/object/data/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/object/data/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/object/data/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/object/data/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/object/data/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/object/data/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/object/data/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/object/data/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/object/data/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/object/data/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/object/data/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/object/data/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/object/data/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/object/data/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/object/data/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/object/data/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/object/data/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/object/data/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/object/data/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/object/data/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/object/data/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/object/data/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/object/data/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/object/data/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/object/data/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/object/data/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/object/data/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/object/data/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/object/data/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/object/data/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201cdata\u201d on element \u201cobject\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/object/model-novalid.html": "Element \u201cobject\u201d is missing one or more of the following attributes: [data, type].",
+ "html/elements/ol/model-novalid.html": "Duplicate ID \u201cid\u201d.",
+ "html/elements/option/label-novalid.html": "Bad value \u201c\u201d for attribute \u201clabel\u201d on element \u201coption\u201d: Bad non-empty string: Must not be empty.",
+ "html/elements/option/model-novalid.html": "Element \u201coption\u201d without attribute \u201clabel\u201d must not be empty.",
+ "html/elements/p/model-novalid.html": "No \u201cp\u201d element in scope but a \u201cp\u201d end tag seen.",
+ "html/elements/param/model-novalid.html": "Element \u201cparam\u201d not allowed as child of element \u201cbody\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/always-matching-source-media-all-spaces-with-following-source-srcset-novalid.html": "Value of \u201cmedia\u201d attribute here must not be \u201call\u201d.",
+ "html/elements/picture/always-matching-source-media-all-with-following-source-srcset-novalid.html": "Value of \u201cmedia\u201d attribute here must not be \u201call\u201d.",
+ "html/elements/picture/always-matching-source-media-empty-with-following-source-srcset-novalid.html": "Value of \u201cmedia\u201d attribute here must not be empty.",
+ "html/elements/picture/always-matching-source-media-spaces-with-following-source-srcset-novalid.html": "Value of \u201cmedia\u201d attribute here must not be empty.",
+ "html/elements/picture/always-matching-source-media-uppercase-with-following-source-srcset-novalid.html": "Value of \u201cmedia\u201d attribute here must not be \u201call\u201d.",
+ "html/elements/picture/always-matching-source-sizes-with-following-source-srcset-novalid.html": "A \u201csource\u201d element that has a following sibling \u201csource\u201d element or \u201cimg\u201d element with a \u201csrcset\u201d attribute must have a \u201cmedia\u201d attribute and/or \u201ctype\u201d attribute.",
+ "html/elements/picture/always-matching-source-with-following-img-srcset-novalid.html": "A \u201csource\u201d element that has a following sibling \u201csource\u201d element or \u201cimg\u201d element with a \u201csrcset\u201d attribute must have a \u201cmedia\u201d attribute and/or \u201ctype\u201d attribute.",
+ "html/elements/picture/always-matching-source-with-following-source-media-novalid.html": "A \u201csource\u201d element that has a following sibling \u201csource\u201d element or \u201cimg\u201d element with a \u201csrcset\u201d attribute must have a \u201cmedia\u201d attribute and/or \u201ctype\u201d attribute.",
+ "html/elements/picture/always-matching-source-with-following-source-srcset-novalid.html": "A \u201csource\u201d element that has a following sibling \u201csource\u201d element or \u201cimg\u201d element with a \u201csrcset\u201d attribute must have a \u201cmedia\u201d attribute and/or \u201ctype\u201d attribute.",
+ "html/elements/picture/always-matching-source-with-following-source-type-novalid.html": "A \u201csource\u201d element that has a following sibling \u201csource\u201d element or \u201cimg\u201d element with a \u201csrcset\u201d attribute must have a \u201cmedia\u201d attribute and/or \u201ctype\u201d attribute.",
+ "html/elements/picture/audio-srcset-novalid.html": "Attribute \u201csrcset\u201d not allowed on element \u201caudio\u201d at this point.",
+ "html/elements/picture/html-syntax-img-end-tag-novalid.html": "Stray end tag \u201cimg\u201d.",
+ "html/elements/picture/html-syntax-picture-no-end-tag-novalid.html": "End of file seen and there were open elements.",
+ "html/elements/picture/html-syntax-picture-slash-no-end-tag-novalid.html": "Self-closing syntax (\u201c/>\u201d) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+ "html/elements/picture/html-syntax-picture-slash-novalid.html": "Self-closing syntax (\u201c/>\u201d) used on a non-void HTML element. Ignoring the slash and treating as a start tag.",
+ "html/elements/picture/html-syntax-source-end-tag-novalid.html": "Stray end tag \u201csource\u201d.",
+ "html/elements/picture/img-no-src-novalid.html": "Element \u201cimg\u201d is missing required attribute \u201csrc\u201d.",
+ "html/elements/picture/img-no-src-with-picture-novalid.html": "Element \u201cimg\u201d is missing required attribute \u201csrc\u201d.",
+ "html/elements/picture/img-no-src-with-source-novalid.html": "Element \u201cimg\u201d is missing required attribute \u201csrc\u201d.",
+ "html/elements/picture/img-no-src-with-srcset-and-picture-novalid.html": "Element \u201cimg\u201d is missing required attribute \u201csrc\u201d.",
+ "html/elements/picture/img-no-src-with-srcset-novalid.html": "Element \u201cimg\u201d is missing required attribute \u201csrc\u201d.",
+ "html/elements/picture/img-srcset-no-descriptor-with-sizes-novalid.html": "Bad value \u201cx\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: No width specified for image \u201cx\u201d. (When the \u201csizes\u201d attribute is present, all image candidate strings must specify a width.)",
+ "html/elements/picture/img-srcset-w-and-x-width-sizes-novalid.html": "Bad value \u201cx 100w, y 2x\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected width descriptor but found \u201c2x\u201d at \u201cx 100w, y 2x\u201d. (When the \u201csizes\u201d attribute is present, all image candidate strings must specify a width.)",
+ "html/elements/picture/img-srcset-w-no-sizes-novalid.html": "When the \u201csrcset\u201d attribute has any image candidate string with a width descriptor, the \u201csizes\u201d attribute must also be present.",
+ "html/elements/picture/img-type-novalid.html": "Attribute \u201ctype\u201d not allowed on element \u201cimg\u201d at this point.",
+ "html/elements/picture/img-type-with-picture-novalid.html": "Attribute \u201ctype\u201d not allowed on element \u201cimg\u201d at this point.",
+ "html/elements/picture/img-with-sizes-no-srcset-novalid.html": "The \u201csizes\u201d attribute may be specified only if the \u201csrcset\u201d attribute is also present.",
+ "html/elements/picture/input-type-image-srcset-novalid.html": "Attribute \u201csrcset\u201d not allowed on element \u201cinput\u201d at this point.",
+ "html/elements/picture/junk-br-after-img-novalid.html": "Element \u201cbr\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-br-after-source-novalid.html": "Element \u201cbr\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-br-before-img-novalid.html": "Element \u201cbr\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-br-before-source-novalid.html": "Element \u201cbr\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-figure-wrapping-novalid.html": "Element \u201cfigure\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-input-type-hidden-novalid.html": "Element \u201cinput\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-math-nog-img-novalid.html": "Element \u201cmath\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-noscript-after-source-no-img-novalid.html": "Element \u201cnoscript\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-noscript-novalid.html": "Element \u201cnoscript\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-p-after-novalid.html": "Element \u201cp\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-p-before-novalid.html": "Element \u201cp\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-p-wrapping-novalid.html": "Element \u201cp\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-picture-before-novalid.html": "Element \u201cpicture\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-picture-wrapping-novalid.html": "Element \u201cpicture\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-span-after-novalid.html": "Element \u201cspan\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-span-before-novalid.html": "Element \u201cspan\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-span-wrapping-novalid.html": "Element \u201cspan\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-style-scroped-novalid.html": "Element \u201cstyle\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-svg-no-img-novalid.html": "Element \u201csvg\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-svg-novalid.html": "Element \u201csvg\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-text-after-img-novalid.html": "Text not allowed in element \u201cpicture\u201d in this context.",
+ "html/elements/picture/junk-text-after-source-novalid.html": "Text not allowed in element \u201cpicture\u201d in this context.",
+ "html/elements/picture/junk-text-before-img-novalid.html": "Text not allowed in element \u201cpicture\u201d in this context.",
+ "html/elements/picture/junk-text-before-source-novalid.html": "Text not allowed in element \u201cpicture\u201d in this context.",
+ "html/elements/picture/junk-video-before-novalid.html": "Element \u201cvideo\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/junk-video-no-img-novalid.html": "Element \u201cvideo\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/link-rel-icon-srcset-novalid.html": "Attribute \u201csrcset\u201d not allowed on element \u201clink\u201d at this point.",
+ "html/elements/picture/missing-img-empty-picture-novalid.html": "Element \u201cpicture\u201d is missing required child element \u201cimg\u201d.",
+ "html/elements/picture/missing-img-only-script-novalid.html": "Element \u201cpicture\u201d is missing required child element \u201cimg\u201d.",
+ "html/elements/picture/missing-img-only-source-novalid.html": "Element \u201cpicture\u201d is missing required child element \u201cimg\u201d.",
+ "html/elements/picture/missing-img-script-and-source-novalid.html": "Element \u201cpicture\u201d is missing required child element \u201cimg\u201d.",
+ "html/elements/picture/missing-img-source-and-script-novalid.html": "Element \u201cpicture\u201d is missing required child element \u201cimg\u201d.",
+ "html/elements/picture/multiple-img-novalid.html": "Element \u201cimg\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/multiple-img-with-script-novalid.html": "Element \u201cimg\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/multiple-img-with-source-and-script-novalid.html": "Element \u201cimg\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/multiple-img-with-source-novalid.html": "Element \u201cimg\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/object-srcset-novalid.html": "Attribute \u201csrcset\u201d not allowed on element \u201cobject\u201d at this point.",
+ "html/elements/picture/parent-dl-novalid.html": "Element \u201cpicture\u201d not allowed as child of element \u201cdl\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/parent-hgroup-novalid.html": "Element \u201cpicture\u201d not allowed as child of element \u201chgroup\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/parent-noscript-in-head-novalid.html": "Bad start tag in \u201cpicture\u201d in \u201cnoscript\u201d in \u201chead\u201d.",
+ "html/elements/picture/parent-rp-novalid.html": "Element \u201cpicture\u201d not allowed as child of element \u201crp\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/parent-ul-novalid.html": "Element \u201cpicture\u201d not allowed as child of element \u201cul\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/picture-align-novalid.html": "Attribute \u201calign\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-alt-novalid.html": "Attribute \u201calt\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-aria-role-application-novalid.html": "Attribute \u201crole\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-aria-role-button-novalid.html": "Attribute \u201crole\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-aria-role-img-novalid.html": "Attribute \u201crole\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-aria-role-presentation-novalid.html": "Attribute \u201crole\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-aria-role-region-novalid.html": "Attribute \u201crole\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-border-novalid.html": "Attribute \u201cborder\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-crossorigin-novalid.html": "Attribute \u201ccrossorigin\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-height-novalid.html": "Attribute \u201cheight\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-hspace-novalid.html": "Attribute \u201chspace\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-ismap-novalid.html": "Attribute \u201cismap\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-longdesc-novalid.html": "Attribute \u201clongdesc\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-lowsrc-novalid.html": "Attribute \u201clowsrc\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-media-novalid.html": "Attribute \u201cmedia\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-name-novalid.html": "Attribute \u201cname\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-sizes-novalid.html": "Attribute \u201csizes\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-src-novalid.html": "Attribute \u201csrc\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-srcset-novalid.html": "Attribute \u201csrcset\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-usemap-novalid.html": "Attribute \u201cusemap\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-vspace-novalid.html": "Attribute \u201cvspace\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/picture-width-novalid.html": "Attribute \u201cwidth\u201d not allowed on element \u201cpicture\u201d at this point.",
+ "html/elements/picture/sizes-microsyntax-auto-source-size-value-novalid.html": "Bad value \u201cauto\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Bad CSS number token: Expected a minus sign or a digit but saw \u201ca\u201d instead at \u201cauto\u201d.",
+ "html/elements/picture/sizes-microsyntax-comma-novalid.html": "Bad value \u201c,\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Starts with empty source size.",
+ "html/elements/picture/sizes-microsyntax-css-comment-after-plus-novalid.html": "Bad value \u201c+/**/50vw\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected number but found \u201c+/\u201d at \u201c+/**/50vw\u201d.",
+ "html/elements/picture/sizes-microsyntax-css-comment-before-unit-novalid.html": "Bad value \u201c50/**/vw\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected units (one of \u201cem\u201d, \u201cex\u201d, \u201cch\u201d, \u201crem\u201d, \u201cvw\u201d, \u201cvh\u201d, \u201cvmin\u201d, \u201cvmax\u201d, \u201ccm\u201d, \u201cmm\u201d, \u201cq\u201d, \u201cin\u201d, \u201cpc\u201d, \u201cpt\u201d, \u201cpx\u201d) but found \u201c/vw\u201d at \u201c50/**/vw\u201d.",
+ "html/elements/picture/sizes-microsyntax-default-first-novalid.html": "Bad value \u201c100vw, (min-width:500px) 500px\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected media condition before \u201c\u201d at \u201c100vw,\u201d.",
+ "html/elements/picture/sizes-microsyntax-default-source-size-value-novalid.html": "Bad value \u201cdefault\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Bad CSS number token: Expected a minus sign or a digit but saw \u201cd\u201d instead at \u201cdefault\u201d.",
+ "html/elements/picture/sizes-microsyntax-deg-source-size-value-novalid.html": "Bad value \u201c1deg\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected units (one of \u201cem\u201d, \u201cex\u201d, \u201cch\u201d, \u201crem\u201d, \u201cvw\u201d, \u201cvh\u201d, \u201cvmin\u201d, \u201cvmax\u201d, \u201ccm\u201d, \u201cmm\u201d, \u201cq\u201d, \u201cin\u201d, \u201cpc\u201d, \u201cpt\u201d, \u201cpx\u201d) but found \u201cdeg\u201d at \u201c1deg\u201d.",
+ "html/elements/picture/sizes-microsyntax-dpcm-source-size-value-novalid.html": "Bad value \u201c1dpcm\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected units (one of \u201cem\u201d, \u201cex\u201d, \u201cch\u201d, \u201crem\u201d, \u201cvw\u201d, \u201cvh\u201d, \u201cvmin\u201d, \u201cvmax\u201d, \u201ccm\u201d, \u201cmm\u201d, \u201cq\u201d, \u201cin\u201d, \u201cpc\u201d, \u201cpt\u201d, \u201cpx\u201d) but found \u201cdpcm\u201d at \u201c1dpcm\u201d.",
+ "html/elements/picture/sizes-microsyntax-dpi-source-size-value-novalid.html": "Bad value \u201c1dpi\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected units (one of \u201cem\u201d, \u201cex\u201d, \u201cch\u201d, \u201crem\u201d, \u201cvw\u201d, \u201cvh\u201d, \u201cvmin\u201d, \u201cvmax\u201d, \u201ccm\u201d, \u201cmm\u201d, \u201cq\u201d, \u201cin\u201d, \u201cpc\u201d, \u201cpt\u201d, \u201cpx\u201d) but found \u201cdpi\u201d at \u201c1dpi\u201d.",
+ "html/elements/picture/sizes-microsyntax-dppx-source-size-value-novalid.html": "Bad value \u201c1dppx\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected units (one of \u201cem\u201d, \u201cex\u201d, \u201cch\u201d, \u201crem\u201d, \u201cvw\u201d, \u201cvh\u201d, \u201cvmin\u201d, \u201cvmax\u201d, \u201ccm\u201d, \u201cmm\u201d, \u201cq\u201d, \u201cin\u201d, \u201cpc\u201d, \u201cpt\u201d, \u201cpx\u201d) but found \u201cdppx\u201d at \u201c1dppx\u201d.",
+ "html/elements/picture/sizes-microsyntax-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Must not be empty.",
+ "html/elements/picture/sizes-microsyntax-foo-bar-source-size-value-novalid.html": "Bad value \u201cfoo-bar\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Bad CSS number token: Expected a minus sign or a digit but saw \u201cf\u201d instead at \u201cfoo-bar\u201d.",
+ "html/elements/picture/sizes-microsyntax-grad-source-size-value-novalid.html": "Bad value \u201c1grad\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected units (one of \u201cem\u201d, \u201cex\u201d, \u201cch\u201d, \u201crem\u201d, \u201cvw\u201d, \u201cvh\u201d, \u201cvmin\u201d, \u201cvmax\u201d, \u201ccm\u201d, \u201cmm\u201d, \u201cq\u201d, \u201cin\u201d, \u201cpc\u201d, \u201cpt\u201d, \u201cpx\u201d) but found \u201cgrad\u201d at \u201c1grad\u201d.",
+ "html/elements/picture/sizes-microsyntax-hz-source-size-value-novalid.html": "Bad value \u201c1Hz\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected units (one of \u201cem\u201d, \u201cex\u201d, \u201cch\u201d, \u201crem\u201d, \u201cvw\u201d, \u201cvh\u201d, \u201cvmin\u201d, \u201cvmax\u201d, \u201ccm\u201d, \u201cmm\u201d, \u201cq\u201d, \u201cin\u201d, \u201cpc\u201d, \u201cpt\u201d, \u201cpx\u201d) but found \u201cHz\u201d at \u201c1Hz\u201d.",
+ "html/elements/picture/sizes-microsyntax-inherit-source-size-value-novalid.html": "Bad value \u201cinherit\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Bad CSS number token: Expected a minus sign or a digit but saw \u201ci\u201d instead at \u201cinherit\u201d.",
+ "html/elements/picture/sizes-microsyntax-initial-source-size-value-novalid.html": "Bad value \u201cinitial\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Bad CSS number token: Expected a minus sign or a digit but saw \u201ci\u201d instead at \u201cinitial\u201d.",
+ "html/elements/picture/sizes-microsyntax-junk-in-default-novalid.html": "Bad value \u201c(min-width:500px) 500px, 100vw foo bar\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Bad CSS number token: Expected a minus sign or a digit but saw \u201cb\u201d instead at \u201c\u20260px) 500px, 100vw foo bar\u201d.",
+ "html/elements/picture/sizes-microsyntax-junk-in-source-size-novalid.html": "Bad value \u201c(min-width:500px) 500px foo bar, 100vw\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Bad CSS number token: Expected a minus sign or a digit but saw \u201cb\u201d instead at \u201c\u2026dth:500px) 500px foo bar,\u201d.",
+ "html/elements/picture/sizes-microsyntax-khz-source-size-value-novalid.html": "Bad value \u201c1kHz\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected units (one of \u201cem\u201d, \u201cex\u201d, \u201cch\u201d, \u201crem\u201d, \u201cvw\u201d, \u201cvh\u201d, \u201cvmin\u201d, \u201cvmax\u201d, \u201ccm\u201d, \u201cmm\u201d, \u201cq\u201d, \u201cin\u201d, \u201cpc\u201d, \u201cpt\u201d, \u201cpx\u201d) but found \u201ckHz\u201d at \u201c1kHz\u201d.",
+ "html/elements/picture/sizes-microsyntax-media-all-and-min-width-novalid.html": "Bad value \u201call and (min-width:500px) 500px, 100vw\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Bad media condition: Parse Error at \u201c\u2026 (min-width:500px) 500px,\u201d.",
+ "html/elements/picture/sizes-microsyntax-media-all-novalid.html": "Bad value \u201call 500px, 100vw\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Bad media condition: Parse Error at \u201call 500px,\u201d.",
+ "html/elements/picture/sizes-microsyntax-media-bad-junk-novalid.html": "Bad value \u201c(}) 500px, 100vw\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Bad media condition: Parse Error at \u201c(}) 500px,\u201d.",
+ "html/elements/picture/sizes-microsyntax-media-general-enclosed-junk-novalid.html": "Bad value \u201c(123) 500px, 100vw\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Bad media condition: Parse Error at \u201c(123) 500px,\u201d.",
+ "html/elements/picture/sizes-microsyntax-media-min-width-no-parenthesis-novalid.html": "Bad value \u201cmin-width:500px 500px, 100vw\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Bad media condition: Parse Error at \u201cmin-width:500px 500px,\u201d.",
+ "html/elements/picture/sizes-microsyntax-ms-source-size-value-novalid.html": "Bad value \u201c1ms\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected units (one of \u201cem\u201d, \u201cex\u201d, \u201cch\u201d, \u201crem\u201d, \u201cvw\u201d, \u201cvh\u201d, \u201cvmin\u201d, \u201cvmax\u201d, \u201ccm\u201d, \u201cmm\u201d, \u201cq\u201d, \u201cin\u201d, \u201cpc\u201d, \u201cpt\u201d, \u201cpx\u201d) but found \u201cms\u201d at \u201c1ms\u201d.",
+ "html/elements/picture/sizes-microsyntax-negative-source-size-value-novalid.html": "Bad value \u201c-1px\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected positive size value but found \u201c-1px\u201d at \u201c-1px\u201d.",
+ "html/elements/picture/sizes-microsyntax-no-unit-in-source-size-value-novalid.html": "Bad value \u201c(min-width:500px) 50, 100vw\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected units (one of \u201cem\u201d, \u201cex\u201d, \u201cch\u201d, \u201crem\u201d, \u201cvw\u201d, \u201cvh\u201d, \u201cvmin\u201d, \u201cvmax\u201d, \u201ccm\u201d, \u201cmm\u201d, \u201cq\u201d, \u201cin\u201d, \u201cpc\u201d, \u201cpt\u201d, \u201cpx\u201d) but found no units at \u201c(min-width:500px) 50,\u201d.",
+ "html/elements/picture/sizes-microsyntax-percent-in-source-size-value-novalid.html": "Bad value \u201c(min-width:500px) 50%, 100vw\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected units (one of \u201cem\u201d, \u201cex\u201d, \u201cch\u201d, \u201crem\u201d, \u201cvw\u201d, \u201cvh\u201d, \u201cvmin\u201d, \u201cvmax\u201d, \u201ccm\u201d, \u201cmm\u201d, \u201cq\u201d, \u201cin\u201d, \u201cpc\u201d, \u201cpt\u201d, \u201cpx\u201d) but found \u201c%\u201d at \u201c(min-width:500px) 50%,\u201d.",
+ "html/elements/picture/sizes-microsyntax-rad-source-size-value-novalid.html": "Bad value \u201c1rad\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected units (one of \u201cem\u201d, \u201cex\u201d, \u201cch\u201d, \u201crem\u201d, \u201cvw\u201d, \u201cvh\u201d, \u201cvmin\u201d, \u201cvmax\u201d, \u201ccm\u201d, \u201cmm\u201d, \u201cq\u201d, \u201cin\u201d, \u201cpc\u201d, \u201cpt\u201d, \u201cpx\u201d) but found \u201crad\u201d at \u201c1rad\u201d.",
+ "html/elements/picture/sizes-microsyntax-s-source-size-value-novalid.html": "Bad value \u201c1s\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected units (one of \u201cem\u201d, \u201cex\u201d, \u201cch\u201d, \u201crem\u201d, \u201cvw\u201d, \u201cvh\u201d, \u201cvmin\u201d, \u201cvmax\u201d, \u201ccm\u201d, \u201cmm\u201d, \u201cq\u201d, \u201cin\u201d, \u201cpc\u201d, \u201cpt\u201d, \u201cpx\u201d) but found \u201cs\u201d at \u201c1s\u201d.",
+ "html/elements/picture/sizes-microsyntax-scientific-notation-negative-novalid.html": "Bad value \u201c-1e+0px\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected positive size value but found \u201c-1e+0px\u201d at \u201c-1e+0px\u201d.",
+ "html/elements/picture/sizes-microsyntax-scientific-notation-non-integer-in-exponent-novalid.html": "Bad value \u201c1e+1.5px\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Bad CSS number token: Expected a digit but saw \u201c.\u201d instead at \u201c1e+1.5px\u201d.",
+ "html/elements/picture/sizes-microsyntax-trailing-comma-novalid.html": "Bad value \u201c(min-width:500px) 500px, 100vw,\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected media condition before \u201c\u201d at \u201c\u2026idth:500px) 500px, 100vw,\u201d.",
+ "html/elements/picture/sizes-microsyntax-trailing-junk-novalid.html": "Bad value \u201c(min-width:500px) 500px, 100vw, foo bar\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected media condition before \u201c\u201d at \u201c\u2026idth:500px) 500px, 100vw,\u201d.",
+ "html/elements/picture/sizes-microsyntax-turn-source-size-value-novalid.html": "Bad value \u201c1turn\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected units (one of \u201cem\u201d, \u201cex\u201d, \u201cch\u201d, \u201crem\u201d, \u201cvw\u201d, \u201cvh\u201d, \u201cvmin\u201d, \u201cvmax\u201d, \u201ccm\u201d, \u201cmm\u201d, \u201cq\u201d, \u201cin\u201d, \u201cpc\u201d, \u201cpt\u201d, \u201cpx\u201d) but found \u201cturn\u201d at \u201c1turn\u201d.",
+ "html/elements/picture/sizes-microsyntax-two-defaults-novalid.html": "Bad value \u201c500px, 100vw\u201d for attribute \u201csizes\u201d on element \u201cimg\u201d: Bad source size list: Expected media condition before \u201c\u201d at \u201c500px,\u201d.",
+ "html/elements/picture/source-after-img-novalid.html": "Element \u201csource\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/source-align-novalid.html": "Attribute \u201calign\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/source-alt-novalid.html": "Attribute \u201calt\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/source-aria-role-img-novalid.html": "Attribute \u201crole\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/source-aria-role-presentation-novalid.html": "Attribute \u201crole\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/source-before-and-after-img-novalid.html": "Element \u201csource\u201d not allowed as child of element \u201cpicture\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/picture/source-border-novalid.html": "Attribute \u201cborder\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/source-crossorigin-novalid.html": "Attribute \u201ccrossorigin\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/source-hspace-novalid.html": "Attribute \u201chspace\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/source-ismap-novalid.html": "Attribute \u201cismap\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/source-longdesc-novalid.html": "Attribute \u201clongdesc\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/source-name-novalid.html": "Attribute \u201ccrossorigin\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/source-no-srcset-novalid.html": "Element \u201csource\u201d is missing required attribute \u201csrcset\u201d.",
+ "html/elements/picture/source-no-srcset-with-media-novalid.html": "Element \u201csource\u201d is missing required attribute \u201csrcset\u201d.",
+ "html/elements/picture/source-no-srcset-with-sizes-novalid.html": "Element \u201csource\u201d is missing required attribute \u201csrcset\u201d.",
+ "html/elements/picture/source-no-srcset-with-type-novalid.html": "Element \u201csource\u201d is missing required attribute \u201csrcset\u201d.",
+ "html/elements/picture/source-src-novalid.html": "Attribute \u201csrc\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/source-src-srcset-novalid.html": "Attribute \u201csrc\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/source-srcset-h-with-sizes-novalid.html": "Bad value \u201cx 100h, y 200h\u201d for attribute \u201csrcset\u201d on element \u201csource\u201d: Expected width descriptor but found \u201c100h\u201d at \u201cx 100h,\u201d. (When the \u201csizes\u201d attribute is present, all image candidate strings must specify a width.)",
+ "html/elements/picture/source-srcset-w-and-x-with-sizes-novalid.html": "Bad value \u201cx 100w, y 2x\u201d for attribute \u201csrcset\u201d on element \u201csource\u201d: Expected width descriptor but found \u201c2x\u201d at \u201cx 100w, y 2x\u201d. (When the \u201csizes\u201d attribute is present, all image candidate strings must specify a width.)",
+ "html/elements/picture/source-srcset-w-no-sizes-novalid.html": "When the \u201csrcset\u201d attribute has any image candidate string with a width descriptor, the \u201csizes\u201d attribute must also be present.",
+ "html/elements/picture/source-srcset-x-with-sizes-novalid.html": "Bad value \u201cx 1x, y 2x\u201d for attribute \u201csrcset\u201d on element \u201csource\u201d: Expected width descriptor but found \u201c1x\u201d at \u201cx 1x,\u201d. (When the \u201csizes\u201d attribute is present, all image candidate strings must specify a width.)",
+ "html/elements/picture/source-type-srcset-w-novalid.html": "When the \u201csrcset\u201d attribute has any image candidate string with a width descriptor, the \u201csizes\u201d attribute must also be present.",
+ "html/elements/picture/source-usemap-novalid.html": "Attribute \u201cusemap\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/source-vspace-novalid.html": "Attribute \u201cvspace\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/srcset-microsyntax-broken-url-novalid.html": "Bad value \u201chttp: 1x\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Bad image-candidate URL: \u201chttp:\u201d: Expected a slash (\"/\").",
+ "html/elements/picture/srcset-microsyntax-comma-novalid.html": "Bad value \u201c,\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Starts with empty image-candidate string.",
+ "html/elements/picture/srcset-microsyntax-css-comment-after-descriptor-novalid.html": "Bad value \u201cx 2x/**/\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected number followed by \u201cw\u201d or \u201cx\u201d but found \u201c2x/**/\u201d at \u201cx 2x/**/\u201d.",
+ "html/elements/picture/srcset-microsyntax-curly-bracket-junk-novalid.html": "Bad value \u201cx {, y 1x\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected number followed by \u201cw\u201d or \u201cx\u201d but found \u201c{\u201d at \u201cx {,\u201d.",
+ "html/elements/picture/srcset-microsyntax-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Must contain one or more image candidate strings.",
+ "html/elements/picture/srcset-microsyntax-function-novalid.html": "Bad value \u201cx foobar(baz quux, lol), y 1x\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected number followed by \u201cw\u201d or \u201cx\u201d but found \u201cfoobar(baz quux, lol))\u201d at \u201c\u2026baz quux, lol),\u201d.",
+ "html/elements/picture/srcset-microsyntax-h-novalid.html": "Bad value \u201cx 1h\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected width descriptor but found \u201c1h\u201d at \u201cx 1h\u201d. (When the \u201csizes\u201d attribute is present, all image candidate strings must specify a width.)",
+ "html/elements/picture/srcset-microsyntax-infinity-x-novalid.html": "Bad value \u201cx Infinityx\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Bad positive floating point number: Expected a digit but saw \u201cI\u201d instead at \u201cx Infinityx\u201d.",
+ "html/elements/picture/srcset-microsyntax-leading-comma-multiple-novalid.html": "Bad value \u201c,,,x\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Starts with empty image-candidate string.",
+ "html/elements/picture/srcset-microsyntax-leading-comma-novalid.html": "Bad value \u201c,x\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Starts with empty image-candidate string.",
+ "html/elements/picture/srcset-microsyntax-nan-x-novalid.html": "Bad value \u201cx NaNx\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Bad positive floating point number: Expected a digit but saw \u201cN\u201d instead at \u201cx NaNx\u201d.",
+ "html/elements/picture/srcset-microsyntax-negative-w-novalid.html": "Bad value \u201cx -1w\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected number greater than zero but found \u201c-1\u201d at \u201cx -1w\u201d.",
+ "html/elements/picture/srcset-microsyntax-negative-x-novalid.html": "Bad value \u201cx -1x\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected number greater than zero but found \u201c-1\u201d at \u201cx -1x\u201d.",
+ "html/elements/picture/srcset-microsyntax-negative-zero-w-novalid.html": "Bad value \u201cx -0w\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected number greater than zero but found \u201c-0\u201d at \u201cx -0w\u201d.",
+ "html/elements/picture/srcset-microsyntax-negative-zero-x-novalid.html": "Bad value \u201cx -0x\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected number greater than zero but found \u201c-0\u201d at \u201cx -0x\u201d.",
+ "html/elements/picture/srcset-microsyntax-non-integer-w-novalid.html": "Bad value \u201cx 1.5w\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected integer but found \u201c1.5\u201d at \u201cx 1.5w\u201d.",
+ "html/elements/picture/srcset-microsyntax-parenthesis-junk-novalid.html": "Bad value \u201cx ><(((((o)>, y 1x\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected number followed by \u201cw\u201d or \u201cx\u201d but found \u201c><(((((o))>\u201d at \u201cx ><(((((o)>,\u201d.",
+ "html/elements/picture/srcset-microsyntax-pipe-junk-novalid.html": "Bad value \u201cx ||, y 1x\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected number followed by \u201cw\u201d or \u201cx\u201d but found \u201c||\u201d at \u201cx ||,\u201d.",
+ "html/elements/picture/srcset-microsyntax-plus-w-novalid.html": "Bad value \u201cx +1w\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected number without leading plus sign but found \u201c+1\u201d at \u201cx +1w\u201d.",
+ "html/elements/picture/srcset-microsyntax-plus-x-novalid.html": "Bad value \u201cx +1x\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected number without leading plus sign but found \u201c+1\u201d at \u201cx +1x\u201d.",
+ "html/elements/picture/srcset-microsyntax-scientific-notation-w-novalid.html": "Bad value \u201cx 1e0w\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected integer but found \u201c1e0\u201d at \u201cx 1e0w\u201d.",
+ "html/elements/picture/srcset-microsyntax-square-bracket-junk-novalid.html": "Bad value \u201cx [, y 1x\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected number followed by \u201cw\u201d or \u201cx\u201d but found \u201c[\u201d at \u201cx [,\u201d.",
+ "html/elements/picture/srcset-microsyntax-trailing-comma-multiple-novalid.html": "Bad value \u201cx,,,\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Empty image-candidate string at \u201cx,,,\u201d.",
+ "html/elements/picture/srcset-microsyntax-trailing-comma-novalid.html": "Bad value \u201cx,\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Ends with empty image-candidate string.",
+ "html/elements/picture/srcset-microsyntax-unique-descriptors-1x-and-omitted-novalid.html": "Bad value \u201cx 1x, y\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Density for image \u201cy\u201d is identical to density for image \u201cx\u201d.",
+ "html/elements/picture/srcset-microsyntax-unique-descriptors-2x-novalid.html": "Bad value \u201cx 2x, y 2x\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Density for image \u201cy\u201d is identical to density for image \u201cx\u201d.",
+ "html/elements/picture/srcset-microsyntax-unique-descriptors-integer-and-decimals-x-novalid.html": "Bad value \u201cx 1x, y 1.0x\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Density for image \u201cy\u201d is identical to density for image \u201cx\u201d.",
+ "html/elements/picture/srcset-microsyntax-unique-descriptors-w-novalid.html": "Bad value \u201cx 1w, y 1w\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Width for image \u201cy\u201d is identical to width for image \u201cx\u201d.",
+ "html/elements/picture/srcset-microsyntax-uppercase-w-novalid.html": "Bad value \u201cx 1W\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected width descriptor but found \u201c1W\u201d at \u201cx 1W\u201d. (When the \u201csizes\u201d attribute is present, all image candidate strings must specify a width.)",
+ "html/elements/picture/srcset-microsyntax-w-and-h-novalid.html": "Bad value \u201cx 1w 1h\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected single descriptor but found extraneous descriptor \u201c1h\u201d at \u201cx 1w 1h\u201d.",
+ "html/elements/picture/srcset-microsyntax-w-and-no-descriptor-novalid.html": "Bad value \u201cx 1w, y\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: No width specified for image \u201cy\u201d. (When the \u201csizes\u201d attribute is present, all image candidate strings must specify a width.)",
+ "html/elements/picture/srcset-microsyntax-x-and-h-novalid.html": "Bad value \u201cx 1x 1h\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected width descriptor but found \u201c1x\u201d at \u201cx 1x \u201d. (When the \u201csizes\u201d attribute is present, all image candidate strings must specify a width.)",
+ "html/elements/picture/srcset-microsyntax-x-and-w-novalid.html": "Bad value \u201cx 1x 1w\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected width descriptor but found \u201c1x\u201d at \u201cx 1x \u201d. (When the \u201csizes\u201d attribute is present, all image candidate strings must specify a width.)",
+ "html/elements/picture/srcset-microsyntax-zero-w-novalid.html": "Bad value \u201cx 0w\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Expected number greater than zero but found \u201c0\u201d at \u201cx 0w\u201d.",
+ "html/elements/picture/srcset-microsyntax-zero-x-novalid.html": "Bad value \u201cx 0x\u201d for attribute \u201csrcset\u201d on element \u201cimg\u201d: Bad positive floating point number: Zero is not a valid positive floating point number at \u201cx 0x\u201d.",
+ "html/elements/picture/svg-image-srcset-novalid.html": "Attribute \u201csrcset\u201d not allowed on element \u201cimage\u201d at this point.",
+ "html/elements/picture/track-srcset-novalid.html": "Attribute \u201csrcset\u201d not allowed on element \u201ctrack\u201d at this point.",
+ "html/elements/picture/video-source-media-src-novalid.html": "Attribute \u201cmedia\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/video-source-sizes-srcset-novalid.html": "Attribute \u201csizes\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/video-source-srcset-novalid.html": "Attribute \u201csrcset\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/video-source-srcset-src-novalid.html": "Attribute \u201csrcset\u201d not allowed on element \u201csource\u201d at this point.",
+ "html/elements/picture/video-srcset-novalid.html": "Attribute \u201csrcset\u201d not allowed on element \u201cvideo\u201d at this point.",
+ "html/elements/pre/model-novalid.html": "No \u201cp\u201d element in scope but a \u201cp\u201d end tag seen.",
+ "html/elements/q/cite/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/q/cite/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/q/cite/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/q/cite/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/q/cite/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/q/cite/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/q/cite/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/q/cite/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/q/cite/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/q/cite/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/q/cite/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/q/cite/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/q/cite/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/q/cite/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/q/cite/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/q/cite/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/q/cite/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/q/cite/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/q/cite/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/q/cite/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/q/cite/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/q/cite/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/q/cite/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/q/cite/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/q/cite/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/q/cite/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/q/cite/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/q/cite/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/q/cite/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/q/cite/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/q/cite/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/q/cite/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/q/cite/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/q/cite/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/q/cite/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/q/cite/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/q/cite/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/q/cite/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/q/cite/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/q/cite/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/q/cite/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/q/cite/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/q/cite/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/q/cite/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/q/cite/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/q/cite/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/q/cite/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/q/cite/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/q/cite/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/q/cite/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/q/cite/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/q/cite/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/q/cite/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/q/cite/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/q/cite/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/q/cite/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/q/cite/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/q/cite/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/q/cite/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/q/cite/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/q/cite/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/q/cite/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/q/cite/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/q/cite/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/q/cite/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201ccite\u201d on element \u201cq\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/q/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/ruby/empty-novalid.html": "Element \u201cruby\u201d is missing one or more of the following child elements: [rp, rt, rtc].",
+ "html/elements/ruby/missing-rt-novalid.html": "Element \u201cruby\u201d is missing one or more of the following child elements: [rt, rtc].",
+ "html/elements/samp/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/script/language-novalid.html": "The \u201clanguage\u201d attribute on the \u201cscript\u201d element is obsolete. Use the \u201ctype\u201d attribute instead.",
+ "html/elements/script/src-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Must be non-empty.",
+ "html/elements/script/src-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Must be non-empty.",
+ "html/elements/script/src/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/script/src/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/script/src/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/script/src/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/script/src/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/script/src/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/script/src/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/script/src/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/script/src/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/script/src/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/script/src/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/script/src/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/script/src/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/script/src/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/script/src/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/script/src/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/script/src/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/script/src/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/script/src/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/script/src/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/script/src/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/script/src/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/script/src/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/script/src/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/script/src/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/script/src/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/script/src/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/script/src/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/script/src/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/script/src/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/script/src/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/script/src/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/script/src/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/script/src/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/script/src/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/script/src/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/script/src/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/script/src/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/script/src/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/script/src/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/script/src/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/script/src/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/script/src/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/script/src/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/script/src/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/script/src/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/script/src/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/script/src/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/script/src/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/script/src/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/script/src/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/script/src/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/script/src/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/script/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/script/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/script/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/script/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/script/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/script/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/script/src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/script/src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/script/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/script/src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/script/src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/script/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201cscript\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/small/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/source/src-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Must be non-empty.",
+ "html/elements/source/src-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Must be non-empty.",
+ "html/elements/source/src/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/source/src/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/source/src/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/source/src/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/source/src/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/source/src/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/source/src/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/source/src/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/source/src/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/source/src/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/source/src/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/source/src/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/source/src/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/source/src/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/source/src/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/source/src/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/source/src/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/source/src/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/source/src/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/source/src/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/source/src/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/source/src/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/source/src/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/source/src/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/source/src/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/source/src/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/source/src/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/source/src/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/source/src/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/source/src/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/source/src/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/source/src/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/source/src/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/source/src/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/source/src/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/source/src/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/source/src/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/source/src/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/source/src/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/source/src/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/source/src/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/source/src/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/source/src/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/source/src/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/source/src/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/source/src/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/source/src/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/source/src/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/source/src/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/source/src/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/source/src/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/source/src/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/source/src/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/source/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/source/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/source/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/source/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/source/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/source/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/source/src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/source/src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/source/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/source/src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/source/src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/source/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201csource\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/span/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/strong/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/style/scoped-as-div-child-novalid.html": "Element \u201cstyle\u201d not allowed as child of element \u201cdiv\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/style/scoped-as-p-child-novalid.html": "Element \u201cstyle\u201d not allowed as child of element \u201cp\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/style/scoped-in-head-novalid.html": "Attribute \u201cscoped\u201d not allowed on element \u201cstyle\u201d at this point.",
+ "html/elements/style/scoped-model-novalid.html": "Element \u201cstyle\u201d not allowed as child of element \u201cdiv\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/style/scoped-multiple-adjacent-novalid.html": "Element \u201cstyle\u201d not allowed as child of element \u201cdiv\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/style/scoped-novalid.html": "Element \u201cstyle\u201d not allowed as child of element \u201cdiv\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/style/type-novalid.html": "The only allowed value for the \u201ctype\u201d attribute for the \u201cstyle\u201d element is \u201ctext/css\u201d (with no parameters). (But the attribute is not needed and should be omitted altogether.)",
+ "html/elements/sub/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/sup/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/table/integrity/Alexis_of_Russia-novalid.html": "The \u201calign\u201d attribute on the \u201ctable\u201d element is obsolete. Use CSS instead.",
+ "html/elements/table/integrity/Feodor_I_of_Russia-novalid.html": "The \u201calign\u201d attribute on the \u201ctable\u201d element is obsolete. Use CSS instead.",
+ "html/elements/table/integrity/Naser_al-Din_Shah_Qajar-novalid.html": "An \u201cimg\u201d element must have an \u201calt\u201d attribute, except under certain conditions. For details, consult guidance on providing text alternatives for images.",
+ "html/elements/table/integrity/vertical-novalid.html": "Table cell is overlapped by later table cell.",
+ "html/elements/table/model-input-child-hidden-novalid.html": "Start tag \u201cinput\u201d seen in \u201ctable\u201d.",
+ "html/elements/table/model-input-child-novalid.html": "Start tag \u201cinput\u201d seen in \u201ctable\u201d.",
+ "html/elements/table/model-input-type-child-novalid.html": "Start tag \u201cinput\u201d seen in \u201ctable\u201d.",
+ "html/elements/title/empty-novalid.html": "Element \u201ctitle\u201d must not be empty.",
+ "html/elements/title/missing-novalid.html": "Element \u201chead\u201d is missing required child element \u201ctitle\u201d.",
+ "html/elements/track/src-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Must be non-empty.",
+ "html/elements/track/src-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Must be non-empty.",
+ "html/elements/track/src/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/track/src/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/track/src/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/track/src/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/track/src/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/track/src/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/track/src/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/track/src/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/track/src/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/track/src/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/track/src/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/track/src/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/track/src/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/track/src/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/track/src/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/track/src/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/track/src/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/track/src/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/track/src/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/track/src/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/track/src/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/track/src/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/track/src/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/track/src/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/track/src/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/track/src/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/track/src/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/track/src/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/track/src/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/track/src/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/track/src/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/track/src/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/track/src/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/track/src/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/track/src/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/track/src/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/track/src/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/track/src/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/track/src/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/track/src/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/track/src/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/track/src/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/track/src/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/track/src/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/track/src/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/track/src/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/track/src/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/track/src/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/track/src/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/track/src/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/track/src/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/track/src/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/track/src/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/track/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/track/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/track/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/track/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/track/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/track/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/track/src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/track/src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/track/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/track/src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/track/src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/track/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201ctrack\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/ul/model-novalid.html": "Duplicate ID \u201cid\u201d.",
+ "html/elements/var/model-novalid.html": "End tag \u201cp\u201d implied, but there were open elements.",
+ "html/elements/video/model-novalid.html": "Element \u201cp\u201d not allowed as child of element \u201cvideo\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/elements/video/poster-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Must be non-empty.",
+ "html/elements/video/poster-whitespace-only-novalid.html": "Bad value \u201c\t \n\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Must be non-empty.",
+ "html/elements/video/poster/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/video/poster/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/video/poster/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/video/poster/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/video/poster/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/video/poster/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/video/poster/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/video/poster/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/video/poster/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/video/poster/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/video/poster/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/video/poster/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/video/poster/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/video/poster/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/video/poster/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/video/poster/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/video/poster/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/video/poster/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/video/poster/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/video/poster/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/video/poster/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/video/poster/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/video/poster/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/video/poster/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/video/poster/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/video/poster/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/video/poster/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/video/poster/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/video/poster/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/video/poster/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/video/poster/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/video/poster/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/video/poster/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/video/poster/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/video/poster/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/video/poster/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/video/poster/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/video/poster/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/video/poster/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/video/poster/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/video/poster/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/video/poster/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/video/poster/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/video/poster/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/video/poster/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/video/poster/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/video/poster/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/video/poster/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/poster/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/poster/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/poster/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/poster/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/poster/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/poster/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/poster/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/poster/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/poster/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/video/poster/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/video/poster/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/video/poster/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/video/poster/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/video/poster/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/video/poster/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/video/poster/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/video/poster/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201cposter\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/video/src/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/elements/video/src/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/elements/video/src/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/elements/video/src/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/video/src/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/video/src/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/video/src/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/video/src/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/video/src/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: empty host.",
+ "html/elements/video/src/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/elements/video/src/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/elements/video/src/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/elements/video/src/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/video/src/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/elements/video/src/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/video/src/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/video/src/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/video/src/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/elements/video/src/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/video/src/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/video/src/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/video/src/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/video/src/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/video/src/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/video/src/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/elements/video/src/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/elements/video/src/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/video/src/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/elements/video/src/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/elements/video/src/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Port number must be less than 65536.",
+ "html/elements/video/src/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/video/src/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/video/src/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/elements/video/src/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/elements/video/src/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/elements/video/src/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/video/src/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/elements/video/src/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/elements/video/src/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/elements/video/src/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/video/src/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/elements/video/src/scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/elements/video/src/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/elements/video/src/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/video/src/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/video/src/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/elements/video/src/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/elements/video/src/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/src/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/src/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/src/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/src/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/src/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/src/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/src/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/src/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/elements/video/src/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/video/src/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/elements/video/src/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/elements/video/src/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/elements/video/src/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/elements/video/src/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/elements/video/src/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/elements/video/src/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/elements/video/src/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201csrc\u201d on element \u201cvideo\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/media-queries/001-novalid.html": "Bad value \u201cscreen and\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: Parse Error.",
+ "html/media-queries/002-novalid.html": "Bad value \u201calla\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: unrecognized media \u201calla\u201d.",
+ "html/media-queries/003-novalid.html": "Bad value \u201cPROJECT\u0130ON\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: unrecognized media \u201cprojecti\u0307on\u201d.",
+ "html/media-queries/004-novalid.html": "Bad value \u201cnotscreen\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: unrecognized media \u201cnotscreen\u201d.",
+ "html/media-queries/005-novalid.html": "Bad value \u201conlyscreen\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: unrecognized media \u201conlyscreen\u201d.",
+ "html/media-queries/006-novalid.html": "Bad value \u201cscreenand (min-width: 400px)\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: unrecognized media \u201cscreenand\u201d.",
+ "html/media-queries/007-novalid.html": "Bad value \u201cscreen and(min-width: 400px)\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: Parse Error.",
+ "html/media-queries/008-novalid.html": "Bad value \u201cscreen and (min-width: 400px;)\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: Parse Error.",
+ "html/media-queries/009-novalid.html": "Bad value \u201cscreen and (min-width: 400uu)\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: Unknown dimension.",
+ "html/media-queries/010-novalid.html": "Bad value \u201cscreen and (min-width: 400)\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: only \u201c0\u201d can be a \u201cunit\u201d. You must put a unit after your number",
+ "html/media-queries/011-novalid.html": "Bad value \u201cscreen and (min-width: 400dpi)\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: \u201c400dpi\u201d is not a \u201cwidth\u201d value",
+ "html/media-queries/013-novalid.html": "Bad value \u201cscreen and (min-width:\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: Parse Error.",
+ "html/media-queries/014-novalid.html": "Bad value \u201cscreen and (min-width: 400px) and\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: Parse Error.",
+ "html/media-queries/019-novalid.html": "Bad value \u201cscreen and (color: 1em)\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: \u201c1em\u201d is not a \u201ccolor\u201d value",
+ "html/media-queries/020-novalid.html": "Bad value \u201c,\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: Parse Error.",
+ "html/media-queries/021-novalid.html": "Bad value \u201cscreen,,print\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: Parse Error.",
+ "html/media-queries/022-novalid.html": "Bad value \u201cscreen,\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: Parse Error.",
+ "html/media-queries/023-novalid.html": "Bad value \u201c,screen\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: Parse Error.",
+ "html/media-queries/024-novalid.html": "Bad value \u201cscreen and (min-width: 400)\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: only \u201c0\u201d can be a \u201cunit\u201d. You must put a unit after your number",
+ "html/media-queries/device-aspect-ratio-novalid.html": "Bad value \u201cscreen and (device-aspect-ratio: 16/9)\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: Deprecated media feature \u201cdevice-aspect-ratio\u201d. For guidance, see the Deprecated Media Features section in the current Media Queries specification.",
+ "html/media-queries/projection-novalid.html": "Bad value \u201cprojection\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: The media \u201cprojection\u201d has been deprecated",
+ "html/media-queries/tv-novalid.html": "Bad value \u201ctv and (scan: progressive)\u201d for attribute \u201cmedia\u201d on element \u201clink\u201d: Bad media query: The media \u201ctv\u201d has been deprecated",
+ "html/microdata/itemid-scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/microdata/itemid/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in fragment: \u201c\\\u201d is not allowed.",
+ "html/microdata/itemid/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/microdata/itemid/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in fragment: space is not allowed.",
+ "html/microdata/itemid/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/microdata/itemid/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/microdata/itemid/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/microdata/itemid/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Invalid host: empty host.",
+ "html/microdata/itemid/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Invalid host: empty host.",
+ "html/microdata/itemid/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Invalid host: empty host.",
+ "html/microdata/itemid/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Invalid host: Illegal character.",
+ "html/microdata/itemid/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/microdata/itemid/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/microdata/itemid/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/microdata/itemid/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Invalid host: Illegal character in domain: space is not allowed.",
+ "html/microdata/itemid/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/microdata/itemid/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/microdata/itemid/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/microdata/itemid/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/microdata/itemid/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/microdata/itemid/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/microdata/itemid/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/microdata/itemid/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/microdata/itemid/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/microdata/itemid/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/microdata/itemid/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/microdata/itemid/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in path segment: \u201c[\u201d is not allowed.",
+ "html/microdata/itemid/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/microdata/itemid/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in path segment: space is not allowed.",
+ "html/microdata/itemid/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/microdata/itemid/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Port number must be less than 65536.",
+ "html/microdata/itemid/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/microdata/itemid/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/microdata/itemid/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/microdata/itemid/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/microdata/itemid/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/microdata/itemid/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/microdata/itemid/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/microdata/itemid/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in port: \u201c \u201d is not allowed.",
+ "html/microdata/itemid/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Tab, new line or carriage return found.",
+ "html/microdata/itemid/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/microdata/itemid/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in query: space is not allowed.",
+ "html/microdata/itemid/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/microdata/itemid/scheme-file-backslash-novalid.html": "Bad value \u201cfile:c:\\foo\\bar.html\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/microdata/itemid/scheme-file-single-slash-c-bar-novalid.html": "Bad value \u201cfile:/C|/foo/bar\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/microdata/itemid/scheme-file-slash-slash-abc-bar-novalid.html": "Bad value \u201cfile://abc|/foo/bar\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Invalid host: Illegal character in domain: \u201c|\u201d is not allowed.",
+ "html/microdata/itemid/scheme-file-triple-slash-c-bar-novalid.html": "Bad value \u201cfile:///C|/foo/bar\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in path segment: \u201c|\u201d is not allowed.",
+ "html/microdata/itemid/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/microdata/itemid/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/microdata/itemid/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/microdata/itemid/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/microdata/itemid/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/microdata/itemid/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/microdata/itemid/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/microdata/itemid/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/microdata/itemid/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Expected a slash (\"/\").",
+ "html/microdata/itemid/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/microdata/itemid/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in scheme data: line break is not allowed.",
+ "html/microdata/itemid/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in scheme data: space is not allowed.",
+ "html/microdata/itemid/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in scheme data: tab is not allowed.",
+ "html/microdata/itemid/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/microdata/itemid/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/microdata/itemid/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/microdata/itemid/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/microdata/itemid/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201citemid\u201d on element \u201cdiv\u201d: Bad URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/microdata/itemtype-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d.",
+ "html/microdata/itemtype-scheme-data-contains-fragment-haswarn.html": "Bad value \u201cdata:text/html,test#test\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Fragment is not allowed for data: URIs according to RFC 2397.",
+ "html/microdata/itemtype/fragment-backslash-novalid.html": "Bad value \u201c#\\\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c#\\\u201d is not an absolute URL.",
+ "html/microdata/itemtype/fragment-contains-hash-novalid.html": "Bad value \u201chttp://foo/path#f#g\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Illegal character in fragment: \u201c#\u201d is not allowed.",
+ "html/microdata/itemtype/fragment-empty-hash-only-no-path-relative-novalid.html": "Bad value \u201c#\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c#\u201d is not an absolute URL.",
+ "html/microdata/itemtype/fragment-leading-space-novalid.html": "Bad value \u201chttp://f:21/b# e\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201ce\u201d is not an absolute URL.",
+ "html/microdata/itemtype/fragment-non-ascii-relative-novalid.html": "Bad value \u201c#\u03b2\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c#\u03b2\u201d is not an absolute URL.",
+ "html/microdata/itemtype/fragment-semicolon-question-mark-relative-novalid.html": "Bad value \u201c#;?\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c#;?\u201d is not an absolute URL.",
+ "html/microdata/itemtype/fragment-slash-relative-novalid.html": "Bad value \u201c#/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c#/\u201d is not an absolute URL.",
+ "html/microdata/itemtype/host-cr-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201corg\u201d is not an absolute URL.",
+ "html/microdata/itemtype/host-double-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff14\uff11.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/microdata/itemtype/host-double-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%94%ef%bc%91.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/microdata/itemtype/host-empty-novalid.html": "Bad value \u201chttp://\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Invalid host: empty host.",
+ "html/microdata/itemtype/host-empty-userinfo-empty-novalid.html": "Bad value \u201chttp://@/www.example.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Invalid host: empty host.",
+ "html/microdata/itemtype/host-empty-with-userinfo-novalid.html": "Bad value \u201chttp://user:pass@/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Invalid host: empty host.",
+ "html/microdata/itemtype/host-hostname-in-brackets-novalid.html": "Bad value \u201chttp://[www.google.com]/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Invalid host: Illegal character.",
+ "html/microdata/itemtype/host-invalid-unicode-novalid.html": "Forbidden code point U+fdd0.",
+ "html/microdata/itemtype/host-invalid-unicode-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%b7%90zyx.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Invalid host: A label or domain name contains disallowed characters..",
+ "html/microdata/itemtype/host-newline-novalid.html": "Bad value \u201chttp://example.\norg\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201corg\u201d is not an absolute URL.",
+ "html/microdata/itemtype/host-space-novalid.html": "Bad value \u201chttp://example .org\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c.org\u201d is not an absolute URL.",
+ "html/microdata/itemtype/host-square-brackets-port-contains-colon-novalid.html": "Bad value \u201chttp://[1::2]:3:4\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/microdata/itemtype/host-tab-novalid.html": "Bad value \u201chttp://example\t.org\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c.org\u201d is not an absolute URL.",
+ "html/microdata/itemtype/host-u0000-percent-encoded-novalid.html": "Bad value \u201chttp://\uff05\uff10\uff10.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/microdata/itemtype/host-u0000-percent-encoded-percent-encoded-novalid.html": "Bad value \u201chttp://%ef%bc%85%ef%bc%90%ef%bc%90.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Invalid host: Illegal character in domain: \u201c%\u201d is not allowed.",
+ "html/microdata/itemtype/path-bare-percent-sign-novalid.html": "Bad value \u201chttp://example.com/foo%\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/microdata/itemtype/path-contains-space-novalid.html": "Bad value \u201c/a/ /c\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c/a/\u201d is not an absolute URL.",
+ "html/microdata/itemtype/path-leading-backslash-at-sign-novalid.html": "Bad value \u201chttp://foo.com/\\@\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/microdata/itemtype/path-leading-colon-backslash-novalid.html": "Bad value \u201c:\\\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c:\\\u201d is not an absolute URL.",
+ "html/microdata/itemtype/path-leading-colon-chars-backslash-novalid.html": "Bad value \u201c:foo.com\\\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c:foo.com\\\u201d is not an absolute URL.",
+ "html/microdata/itemtype/path-leading-space-novalid.html": "Bad value \u201chttp://f:21/ b\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201cb\u201d is not an absolute URL.",
+ "html/microdata/itemtype/path-percent-encoded-malformed-novalid.html": "Bad value \u201chttp://example.com/foo/%2e%2\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Percentage (\"%\") is not followed by two hexadecimal digits.",
+ "html/microdata/itemtype/path-percent-encoded-slash-plus-slashes-relative-novalid.html": "Bad value \u201c/a/%2f/c\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c/a/%2f/c\u201d is not an absolute URL.",
+ "html/microdata/itemtype/path-percent-encoded-slash-relative-novalid.html": "Bad value \u201c/a%2fc\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c/a%2fc\u201d is not an absolute URL.",
+ "html/microdata/itemtype/path-relative-square-brackets-novalid.html": "Bad value \u201c[61:24:74]:98\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c[61:24:74]:98\u201d is not an absolute URL.",
+ "html/microdata/itemtype/path-simple-relative-novalid.html": "Bad value \u201c/a/b/c\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c/a/b/c\u201d is not an absolute URL.",
+ "html/microdata/itemtype/path-slash-only-relative-novalid.html": "Bad value \u201c/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c/\u201d is not an absolute URL.",
+ "html/microdata/itemtype/path-tab-novalid.html": "Bad value \u201chttp://example.com/foo\tbar\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201cbar\u201d is not an absolute URL.",
+ "html/microdata/itemtype/path-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b ?\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c?\u201d is not an absolute URL.",
+ "html/microdata/itemtype/path-u0091-novalid.html": "Forbidden code point U+0091.",
+ "html/microdata/itemtype/port-999999-novalid.html": "Bad value \u201chttp://f:999999/c\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Port number must be less than 65536.",
+ "html/microdata/itemtype/port-cr-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c/c\u201d is not an absolute URL.",
+ "html/microdata/itemtype/port-leading-colon-bracket-colon-novalid.html": "Bad value \u201chttp://2001::1]:80\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/microdata/itemtype/port-leading-colon-novalid.html": "Bad value \u201chttp://2001::1\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Illegal character in port: \u201c:\u201d is not allowed.",
+ "html/microdata/itemtype/port-leading-dash-novalid.html": "Bad value \u201chttp://foo:-80/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Illegal character in port: \u201c-\u201d is not allowed.",
+ "html/microdata/itemtype/port-multiple-letters-novalid.html": "Bad value \u201chttp://f:fifty-two/c\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Illegal character in port: \u201cf\u201d is not allowed.",
+ "html/microdata/itemtype/port-newline-novalid.html": "Bad value \u201chttp://f:\n/c\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c/c\u201d is not an absolute URL.",
+ "html/microdata/itemtype/port-single-letter-novalid.html": "Bad value \u201chttp://f:b/c\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Illegal character in port: \u201cb\u201d is not allowed.",
+ "html/microdata/itemtype/port-space-novalid.html": "Bad value \u201chttp://f: /c\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c/c\u201d is not an absolute URL.",
+ "html/microdata/itemtype/port-tab-novalid.html": "Bad value \u201chttp://f:\t/c\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c/c\u201d is not an absolute URL.",
+ "html/microdata/itemtype/query-empty-no-path-relative-novalid.html": "Bad value \u201c?\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c?\u201d is not an absolute URL.",
+ "html/microdata/itemtype/query-leading-space-novalid.html": "Bad value \u201chttp://f:21/b? d\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201cd\u201d is not an absolute URL.",
+ "html/microdata/itemtype/query-trailing-space-novalid.html": "Bad value \u201chttp://f:21/b?d #\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c#\u201d is not an absolute URL.",
+ "html/microdata/itemtype/scheme-data-single-slash-novalid.html": "Bad value \u201cdata:/example.com/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Expected a token character or a semicolon but saw \u201c/\u201d instead.",
+ "html/microdata/itemtype/scheme-ftp-no-slash-novalid.html": "Bad value \u201cftp:example.com/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/microdata/itemtype/scheme-ftp-single-slash-novalid.html": "Bad value \u201cftp:/example.com/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/microdata/itemtype/scheme-http-backslash-novalid.html": "Bad value \u201chttp:\\\\foo.com\\\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/microdata/itemtype/scheme-http-no-slash-colon-novalid.html": "Bad value \u201chttp::@c:29\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/microdata/itemtype/scheme-http-no-slash-novalid.html": "Bad value \u201chttp:foo.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/microdata/itemtype/scheme-http-no-slash-square-bracket-novalid.html": "Bad value \u201chttp:[61:27]/:foo\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/microdata/itemtype/scheme-http-single-slash-novalid.html": "Bad value \u201chttp:/example.com/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/microdata/itemtype/scheme-https-no-slash-novalid.html": "Bad value \u201chttps:example.com/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/microdata/itemtype/scheme-https-single-slash-novalid.html": "Bad value \u201chttps:/example.com/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Expected a slash (\"/\").",
+ "html/microdata/itemtype/scheme-schemeless-relative-novalid.html": "Bad value \u201c//foo/bar\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201c//foo/bar\u201d is not an absolute URL.",
+ "html/microdata/itemtype/scheme-trailing-cr-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201cfoo.com\u201d is not an absolute URL.",
+ "html/microdata/itemtype/scheme-trailing-newline-novalid.html": "Bad value \u201ca:\nfoo.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201cfoo.com\u201d is not an absolute URL.",
+ "html/microdata/itemtype/scheme-trailing-space-novalid.html": "Bad value \u201ca: foo.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201cfoo.com\u201d is not an absolute URL.",
+ "html/microdata/itemtype/scheme-trailing-tab-novalid.html": "Bad value \u201ca:\tfoo.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: The string \u201cfoo.com\u201d is not an absolute URL.",
+ "html/microdata/itemtype/userinfo-backslash-novalid.html": "Bad value \u201chttp://a\\b:c\\d@foo.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Backslash (\"\\\") used as path segment delimiter.",
+ "html/microdata/itemtype/userinfo-password-bad-chars-novalid.html": "Bad value \u201chttp://&a:foo(b]c@d:2/\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Illegal character in user or password: \u201c]\u201d is not allowed.",
+ "html/microdata/itemtype/userinfo-password-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://foo:\ud83d\udca9@example.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/microdata/itemtype/userinfo-username-contains-at-sign-novalid.html": "Bad value \u201chttp://::@c@d:2\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: User or password contains an at symbol (\"@\") not percent-encoded.",
+ "html/microdata/itemtype/userinfo-username-contains-pile-of-poo-novalid.html": "Bad value \u201chttp://\ud83d\udca9:foo@example.com\u201d for attribute \u201citemtype\u201d on element \u201cdiv\u201d: Bad absolute URL: Illegal character in user or password: \u201c\ud83d\udca9\u201d is not allowed.",
+ "html/mime-types/001-novalid.html": "Bad value \u201ctext/html \u201d for attribute \u201ctype\u201d on element \u201clink\u201d: Bad MIME type: Extraneous trailing whitespace.",
+ "html/mime-types/002-novalid.html": "Bad value \u201c TEXT/HTML\u201d for attribute \u201ctype\u201d on element \u201clink\u201d: Bad MIME type: Expected a token character but saw \u201c \u201d instead.",
+ "html/mime-types/003-novalid.html": "Bad value \u201ctext/html;charset=\u201d for attribute \u201ctype\u201d on element \u201clink\u201d: Bad MIME type: Parameter value missing.",
+ "html/mime-types/004-novalid.html": "Bad value \u201ctext/html ;charset\u201d for attribute \u201ctype\u201d on element \u201clink\u201d: Bad MIME type: Parameter value missing.",
+ "html/mime-types/005-novalid.html": "Bad value \u201ctext/html;\u201d for attribute \u201ctype\u201d on element \u201clink\u201d: Bad MIME type: Semicolon seen but there was no parameter following it.",
+ "html/mime-types/006-novalid.html": "Bad value \u201ctext/html; \u201d for attribute \u201ctype\u201d on element \u201clink\u201d: Bad MIME type: Semicolon seen but there was no parameter following it.",
+ "html/mime-types/007-novalid.html": "Bad value \u201ctext/html ;\u201d for attribute \u201ctype\u201d on element \u201clink\u201d: Bad MIME type: Semicolon seen but there was no parameter following it.",
+ "html/mime-types/008-novalid.html": "Bad value \u201ctext/html;charset=\"utf-8\u201d for attribute \u201ctype\u201d on element \u201clink\u201d: Bad MIME type: Unfinished quoted string.",
+ "html/mime-types/009-novalid.html": "Bad value \u201ctext/html;charset=\"u\\\u201d for attribute \u201ctype\u201d on element \u201clink\u201d: Bad MIME type: Unfinished quoted string.",
+ "html/mime-types/010-novalid.html": "Bad value \u201capplication\u201d for attribute \u201ctype\u201d on element \u201clink\u201d: Bad MIME type: Subtype missing.",
+ "html/mime-types/011-novalid.html": "Bad value \u201capplication/\u201d for attribute \u201ctype\u201d on element \u201clink\u201d: Bad MIME type: Subtype missing.",
+ "html/obsolete/acronym-novalid.html": "The \u201cacronym\u201d element is obsolete. Use the \u201cabbr\u201d element instead.",
+ "html/obsolete/applet-novalid.html": "Element \u201capplet\u201d is missing required attribute \u201ccode\u201d.",
+ "html/obsolete/basefont-novalid.html": "The \u201cbasefont\u201d element is obsolete. Use CSS instead.",
+ "html/obsolete/big-novalid.html": "The \u201cbig\u201d element is obsolete. Use CSS instead.",
+ "html/obsolete/center-novalid.html": "The \u201ccenter\u201d element is obsolete. Use CSS instead.",
+ "html/obsolete/dir-novalid.html": "The \u201cdir\u201d element is obsolete. Use the \u201cul\u201d element instead.",
+ "html/obsolete/font-novalid.html": "The \u201cfont\u201d element is obsolete. Use CSS instead.",
+ "html/obsolete/frameset-novalid.html": "The \u201cframeset\u201d element is obsolete. Use the \u201ciframe\u201d element and CSS instead, or use server-side includes.",
+ "html/obsolete/noframes-novalid.html": "The \u201cnoframes\u201d element is obsolete. Use the \u201ciframe\u201d element and CSS instead, or use server-side includes.",
+ "html/obsolete/profile-novalid.html": "The \u201cprofile\u201d attribute on the \u201chead\u201d element is obsolete. To declare which \u201cmeta\u201d terms are used in the document, instead register the names as meta extensions. To trigger specific UA behaviors, use a \u201clink\u201d element instead.",
+ "html/obsolete/strike-novalid.html": "The \u201cstrike\u201d element is obsolete. Use CSS instead.",
+ "html/obsolete/tt-novalid.html": "The \u201ctt\u201d element is obsolete. Use CSS instead.",
+ "html/other/applet-novalid.html": "The \u201capplet\u201d element is obsolete. Use the \u201cobject\u201d element instead.",
+ "html/other/obj-novalid.html": "Element \u201cobj\u201d not allowed as child of element \u201cp\u201d in this context. (Suppressing further errors from this subtree.)",
+ "html/parser/cr-charref-novalid.html": "A numeric character reference expanded to carriage return.",
+ "html/parser/range-charref-novalid.html": "Character reference outside the permissible Unicode range.",
+ "html/parser/u000b-charref-novalid.html": "Character reference expands to a control character (U+000b).",
+ "html/parser/u000b-novalid.html": "Forbidden code point U+000b.",
+ "html/parser/u007f-charref-novalid.html": "Character reference expands to a control character (U+007f).",
+ "html/parser/u10ffff-charref-novalid.html": "Character reference expands to an astral non-character (U+10ffff).",
+ "html/parser/ufffe-charref-novalid.html": "Character reference expands to a non-character (U+fffe).",
+ "html/parser/unassigned-charref-novalid.html": "Character reference expands to a permanently unassigned code point.",
+ "select/autocomplete-address-novalid.html": "Bad value \u201ccountry shipping\u201d for attribute \u201cautocomplete\u201d on element \u201cselect\u201d: Bad autocomplete detail tokens (any): The token \u201cshipping\u201d must only appear as either the first token in a list of autofill detail tokens, or, if the first token is a \u201csection-*\u201d indicator, as the second token.",
+ "select/autocomplete-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201cautocomplete\u201d on element \u201cselect\u201d: Bad autocomplete detail tokens (any): Must not be empty.",
+ "select/autocomplete-section-novalid.html": "Bad value \u201ccountry section-blue\u201d for attribute \u201cautocomplete\u201d on element \u201cselect\u201d: Bad autocomplete detail tokens (any): A \u201csection-*\u201d indicator must only appear as the first token in a list of autofill detail tokens.",
+ "select/autocomplete-token-novalid.html": "Bad value \u201cqwerty\u201d for attribute \u201cautocomplete\u201d on element \u201cselect\u201d: Bad autocomplete detail tokens (any): The string \u201cqwerty\u201d is not a valid autofill field name.",
+ "select/autocomplete-work-novalid.html": "Bad value \u201ccountry work\u201d for attribute \u201cautocomplete\u201d on element \u201cselect\u201d: Bad autocomplete detail tokens (any): The token \u201cwork\u201d must only appear before any autofill field names.",
+ "textarea/autocomplete-address-novalid.html": "Bad value \u201ccountry shipping\u201d for attribute \u201cautocomplete\u201d on element \u201ctextarea\u201d: Bad autocomplete detail tokens (any): The token \u201cshipping\u201d must only appear as either the first token in a list of autofill detail tokens, or, if the first token is a \u201csection-*\u201d indicator, as the second token.",
+ "textarea/autocomplete-empty-novalid.html": "Bad value \u201c\u201d for attribute \u201cautocomplete\u201d on element \u201ctextarea\u201d: Bad autocomplete detail tokens (any): Must not be empty.",
+ "textarea/autocomplete-section-novalid.html": "Bad value \u201ccountry section-blue\u201d for attribute \u201cautocomplete\u201d on element \u201ctextarea\u201d: Bad autocomplete detail tokens (any): A \u201csection-*\u201d indicator must only appear as the first token in a list of autofill detail tokens.",
+ "textarea/autocomplete-token-novalid.html": "Bad value \u201cqwerty\u201d for attribute \u201cautocomplete\u201d on element \u201ctextarea\u201d: Bad autocomplete detail tokens (any): The string \u201cqwerty\u201d is not a valid autofill field name.",
+ "textarea/autocomplete-work-novalid.html": "Bad value \u201ccountry work\u201d for attribute \u201cautocomplete\u201d on element \u201ctextarea\u201d: Bad autocomplete detail tokens (any): The token \u201cwork\u201d must only appear before any autofill field names.",
+ "xhtml/attributes/accesskey/003-novalid.xhtml": "Bad value \u201ca b \u306c c \u306c\u201d for attribute \u201caccesskey\u201d on element \u201ca\u201d: Bad key label list: Duplicate key label. Each key label must be unique.",
+ "xhtml/attributes/accesskey/004-novalid.xhtml": "Bad value \u201ca b \u307b\u3052\u201d for attribute \u201caccesskey\u201d on element \u201ca\u201d: Bad key label list: Key label has multiple characters. Each key label must be a single character.",
+ "xhtml/attributes/data/002-novalid.xhtml": "\u201cdata-*\u201d attributes must not have characters from the range \u201cA\u201d\u2026\u201cZ\u201d in the name.",
+ "xhtml/attributes/spellcheck/050-novalid.xhtml": "Bad value \u201cbadvalue\u201d for attribute \u201cspellcheck\u201d on element \u201cp\u201d.",
+ "xhtml/attributes/spellcheck/350-novalid.xhtml": "Bad value \u201cbadvalue\u201d for attribute \u201cspellcheck\u201d on element \u201cp\u201d.",
+ "xhtml/elements/a/100-novalid.xhtml": "Bad value \u201c\u201d for attribute \u201cname\u201d on element \u201ca\u201d: Bad id: An ID must not be the empty string.",
+ "xhtml/elements/base/001-novalid.xhtml": "Element \u201cbase\u201d is missing one or more of the following attributes: [href, target].",
+ "xhtml/elements/dialog/001-novalid.xhtml": "Element \u201cdt\u201d not allowed as child of element \u201cdialog\u201d in this context. (Suppressing further errors from this subtree.)",
+ "xhtml/elements/embed/001-novalid.xhtml": "Bad value \u201c20%\u201d for attribute \u201cheight\u201d on element \u201cembed\u201d: Bad non-negative integer: Expected a digit but saw \u201c%\u201d instead.",
+ "xhtml/elements/embed/002-novalid.xhtml": "Bad value \u201cfoo\u201d for attribute \u201ctype\u201d on element \u201cembed\u201d: Bad MIME type: Subtype missing.",
+ "xhtml/elements/embed/003-novalid.xhtml": "Bad value \u201c20%\u201d for attribute \u201cwidth\u201d on element \u201cembed\u201d: Bad non-negative integer: Expected a digit but saw \u201c%\u201d instead.",
+ "xhtml/elements/figure/002-novalid.xhtml": "Text not allowed in element \u201cfigure\u201d in this context.",
+ "xhtml/elements/figure/101-novalid.xhtml": "Element \u201cimg\u201d not allowed as child of element \u201cfigure\u201d in this context. (Suppressing further errors from this subtree.)",
+ "xhtml/elements/figure/102-novalid.xhtml": "Text not allowed in element \u201cfigure\u201d in this context.",
+ "xhtml/elements/figure/103-novalid.xhtml": "Text not allowed in element \u201cfigure\u201d in this context.",
+ "xhtml/elements/figure/104-novalid.xhtml": "Element \u201cimg\u201d not allowed as child of element \u201cfigure\u201d in this context. (Suppressing further errors from this subtree.)",
+ "xhtml/elements/figure/304-novalid.xhtml": "Element \u201cimg\u201d not allowed as child of element \u201cfigure\u201d in this context. (Suppressing further errors from this subtree.)",
+ "xhtml/elements/footer/001-novalid.xhtml": "The element \u201cfooter\u201d must not appear as a descendant of the \u201cfooter\u201d element.",
+ "xhtml/elements/footer/003-novalid.xhtml": "The element \u201cheader\u201d must not appear as a descendant of the \u201cfooter\u201d element.",
+ "xhtml/elements/header/001-novalid.xhtml": "The element \u201cfooter\u201d must not appear as a descendant of the \u201cheader\u201d element.",
+ "xhtml/elements/header/002-novalid.xhtml": "The element \u201cheader\u201d must not appear as a descendant of the \u201cheader\u201d element.",
+ "xhtml/elements/iframe/042-novalid.xhtml": "Text not allowed in element \u201ciframe\u201d in this context.",
+ "xhtml/elements/img/003-novalid.xhtml": "The \u201cimg\u201d element with the \u201cismap\u201d attribute set must have an \u201ca\u201d ancestor with the \u201chref\u201d attribute.",
+ "xhtml/elements/img/004-novalid.xhtml": "The element \u201cimg\u201d with the attribute \u201cusemap\u201d must not appear as a descendant of the \u201ca\u201d element.",
+ "xhtml/elements/img/051-novalid.xhtml": "Bad value \u201c-1\u201d for attribute \u201cwidth\u201d on element \u201cimg\u201d: Bad non-negative integer: Expected a digit but saw \u201c-\u201d instead.",
+ "xhtml/elements/input/003-novalid.xhtml": "The \u201clist\u201d attribute of the \u201cinput\u201d element must refer to a \u201cdatalist\u201d element.",
+ "xhtml/elements/keygen/054-also-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/054-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/055-also-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/056-also-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/056-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/057-also-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/057-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/058-also-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/058-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/059-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/060-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/061-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/154-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/157-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/359-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/360-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/361-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/keygen/keygen-novalid.xhtml": "The \u201ckeygen\u201d element is obsolete.",
+ "xhtml/elements/link/001-novalid.xhtml": "A \u201clink\u201d element must have an \u201chref\u201d or \u201cimagesrcset\u201d attribute, or both.",
+ "xhtml/elements/menu/menu-containing-hr-novalid.xhtml": "Element \u201chr\u201d not allowed as child of element \u201cmenu\u201d in this context. (Suppressing further errors from this subtree.)",
+ "xhtml/elements/menu/menu-containing-menu-novalid.xhtml": "Element \u201cmenu\u201d not allowed as child of element \u201cmenu\u201d in this context. (Suppressing further errors from this subtree.)",
+ "xhtml/elements/menu/menu-containing-text-novalid.xhtml": "Text not allowed in element \u201cmenu\u201d in this context.",
+ "xhtml/elements/menu/menu-type-context-novalid.xhtml": "Attribute \u201ctype\u201d not allowed on element \u201cmenu\u201d at this point.",
+ "xhtml/elements/menu/menu-type-popup-novalid.xhtml": "Attribute \u201ctype\u201d not allowed on element \u201cmenu\u201d at this point.",
+ "xhtml/elements/menu/menu-type-toolbar-novalid.xhtml": "Attribute \u201ctype\u201d not allowed on element \u201cmenu\u201d at this point.",
+ "xhtml/elements/menu/menuitem-children-novalid.xhtml": "Element \u201cmenuitem\u201d not allowed as child of element \u201cmenu\u201d in this context. (Suppressing further errors from this subtree.)",
+ "xhtml/elements/menu/menuitem-label-novalid.xhtml": "Element \u201cmenuitem\u201d not allowed as child of element \u201cmenu\u201d in this context. (Suppressing further errors from this subtree.)",
+ "xhtml/elements/menu/p-contextmenu-novalid.xhtml": "Attribute \u201ccontextmenu\u201d not allowed on element \u201cp\u201d at this point.",
+ "xhtml/elements/meter/010-novalid.xhtml": "The value of the \u201cmin\u201d attribute must be less than or equal to the value of the \u201cvalue\u201d attribute.",
+ "xhtml/elements/meter/011-novalid.xhtml": "Element \u201cmeter\u201d is missing required attribute \u201cvalue\u201d.",
+ "xhtml/elements/meter/012-novalid.xhtml": "Element \u201cmeter\u201d is missing required attribute \u201cvalue\u201d.",
+ "xhtml/elements/meter/110-novalid.xhtml": "The value of the \u201cmin\u201d attribute must be less than or equal to the value of the \u201cvalue\u201d attribute.",
+ "xhtml/elements/meter/312-novalid.xhtml": "Element \u201cmeter\u201d is missing required attribute \u201cvalue\u201d.",
+ "xhtml/elements/object/001-novalid.xhtml": "Element \u201cobject\u201d is missing one or more of the following attributes: [data, type].",
+ "xhtml/elements/progress/008-novalid.xhtml": "The value of the \u201cvalue\u201d attribute must be less than or equal to one when the \u201cmax\u201d attribute is absent.",
+ "xhtml/elements/progress/009-novalid.xhtml": "The value of the \u201cvalue\u201d attribute must be less than or equal to the value of the \u201cmax\u201d attribute.",
+ "xhtml/elements/progress/108-novalid.xhtml": "The value of the \u201cvalue\u201d attribute must be less than or equal to one when the \u201cmax\u201d attribute is absent.",
+ "xhtml/elements/progress/309-novalid.xhtml": "The value of the \u201cvalue\u201d attribute must be less than or equal to the value of the \u201cmax\u201d attribute.",
+ "xhtml/elements/ruby/001-novalid.xhtml": "Element \u201cruby\u201d is missing one or more of the following child elements: [rp, rt, rtc].",
+ "xhtml/elements/ruby/002-novalid.xhtml": "Element \u201cruby\u201d is missing one or more of the following child elements: [rt, rtc].",
+ "xhtml/elements/script/001-novalid.xhtml": "The \u201clanguage\u201d attribute on the \u201cscript\u201d element is obsolete. Use the \u201ctype\u201d attribute instead.",
+ "xhtml/elements/table/201-novalid.xhtml": "Table cell spans past the end of its row group established by a \u201ctbody\u201d element; clipped to the end of the row group.",
+ "xhtml/elements/table/202-novalid.xhtml": "Table cell is overlapped by later table cell.",
+ "xhtml/elements/table/203-novalid.xhtml": "Table column 3 established by element \u201ctd\u201d has no cells beginning in it.",
+ "xhtml/elements/table/204-novalid.xhtml": "Row 3 of an implicit row group has no cells beginning on it.",
+ "xhtml/elements/table/205-novalid.xhtml": "Element \u201ccol\u201d not allowed as child of element \u201ctable\u201d in this context. (Suppressing further errors from this subtree.)",
+ "xhtml/other/045-novalid.xhtml": "The \u201capplet\u201d element is obsolete. Use the \u201cobject\u201d element instead."
+}
diff --git a/testing/web-platform/tests/conformance-checkers/select/autocomplete-address-novalid.html b/testing/web-platform/tests/conformance-checkers/select/autocomplete-address-novalid.html
new file mode 100644
index 0000000000..7e4087ab37
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/select/autocomplete-address-novalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- address type must come before field type -->
+ <select autocomplete="country shipping">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/select/autocomplete-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/select/autocomplete-empty-novalid.html
new file mode 100644
index 0000000000..a45757df2d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/select/autocomplete-empty-novalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- empty -->
+ <select autocomplete="">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/select/autocomplete-isvalid.html b/testing/web-platform/tests/conformance-checkers/select/autocomplete-isvalid.html
new file mode 100644
index 0000000000..065b764b3d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/select/autocomplete-isvalid.html
@@ -0,0 +1,180 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is valid</title>
+</head>
+<body>
+
+ <select autocomplete="on"></select>
+ <select autocomplete="off"></select>
+
+ <!-- country -->
+ <select autocomplete="country">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+ <select autocomplete="billing country">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+ <select autocomplete="section-blue country">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+ <select autocomplete="section-blue billing country">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+ <!-- cc-type -->
+ <select autocomplete="cc-type">
+ <option>Visa</option>
+ <option>Mastercard</option>
+ </select>
+
+ <select autocomplete="billing cc-type">
+ <option>Visa</option>
+ <option>Mastercard</option>
+ </select>
+
+ <select autocomplete="section-blue cc-type">
+ <option>Visa</option>
+ <option>Mastercard</option>
+ </select>
+
+ <select autocomplete="section-blue billing cc-type">
+ <option>Visa</option>
+ <option>Mastercard</option>
+ </select>
+
+ <!-- cc-exp-month -->
+ <select autocomplete="cc-exp-month">
+ <option>01</option>
+ <option>02</option>
+ <option>03</option>
+ <option>04</option>
+ <option>05</option>
+ <option>06</option>
+ <option>07</option>
+ <option>08</option>
+ <option>09</option>
+ <option>10</option>
+ <option>11</option>
+ <option>12</option>
+ </select>
+
+ <select autocomplete="billing cc-exp-month">
+ <option>01</option>
+ <option>02</option>
+ <option>03</option>
+ <option>04</option>
+ <option>05</option>
+ <option>06</option>
+ <option>07</option>
+ <option>08</option>
+ <option>09</option>
+ <option>10</option>
+ <option>11</option>
+ <option>12</option>
+ </select>
+
+ <select autocomplete="section-blue cc-exp-month">
+ <option>01</option>
+ <option>02</option>
+ <option>03</option>
+ <option>04</option>
+ <option>05</option>
+ <option>06</option>
+ <option>07</option>
+ <option>08</option>
+ <option>09</option>
+ <option>10</option>
+ <option>11</option>
+ <option>12</option>
+ </select>
+
+ <select autocomplete="section-blue billing cc-exp-month">
+ <option>01</option>
+ <option>02</option>
+ <option>03</option>
+ <option>04</option>
+ <option>05</option>
+ <option>06</option>
+ <option>07</option>
+ <option>08</option>
+ <option>09</option>
+ <option>10</option>
+ <option>11</option>
+ <option>12</option>
+ </select>
+
+ <!-- cc-exp-year -->
+ <select autocomplete="cc-exp-year">
+ <option>2020</option>
+ <option>2021</option>
+ <option>2022</option>
+ </select>
+
+ <select autocomplete="billing cc-exp-year">
+ <option>2020</option>
+ <option>2021</option>
+ <option>2022</option>
+ </select>
+
+ <select autocomplete="section-blue cc-exp-year">
+ <option>2020</option>
+ <option>2021</option>
+ <option>2022</option>
+ </select>
+
+ <select autocomplete="section-blue billing cc-exp-year">
+ <option>2020</option>
+ <option>2021</option>
+ <option>2022</option>
+ </select>
+
+ <!-- tel-country-code -->
+ <select autocomplete="work tel-country-code">
+ <option>+1 US</option>
+ <option>+33 France</option>
+ <option>+44 UK</option>
+ <option>+81 Japan</option>
+ </select>
+
+ <select autocomplete="billing work tel-country-code">
+ <option>+1 US</option>
+ <option>+33 France</option>
+ <option>+44 UK</option>
+ <option>+81 Japan</option>
+ </select>
+
+ <select autocomplete="section-blue work tel-country-code">
+ <option>+1 US</option>
+ <option>+33 France</option>
+ <option>+44 UK</option>
+ <option>+81 Japan</option>
+ </select>
+
+ <select autocomplete="section-blue billing work tel-country-code">
+ <option>+1 US</option>
+ <option>+33 France</option>
+ <option>+44 UK</option>
+ <option>+81 Japan</option>
+ </select>
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/select/autocomplete-section-novalid.html b/testing/web-platform/tests/conformance-checkers/select/autocomplete-section-novalid.html
new file mode 100644
index 0000000000..084fc2c917
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/select/autocomplete-section-novalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- work must come before field type -->
+ <select autocomplete="country section-blue">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/select/autocomplete-token-novalid.html b/testing/web-platform/tests/conformance-checkers/select/autocomplete-token-novalid.html
new file mode 100644
index 0000000000..267c4d40c2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/select/autocomplete-token-novalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- unknown field type -->
+ <select autocomplete="qwerty">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/select/autocomplete-work-novalid.html b/testing/web-platform/tests/conformance-checkers/select/autocomplete-work-novalid.html
new file mode 100644
index 0000000000..c26b4f8531
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/select/autocomplete-work-novalid.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- work must come before field type -->
+ <select autocomplete="country work">
+ <option>US</option>
+ <option>France</option>
+ <option>UK</option>
+ <option>Japan</option>
+ </select>
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-address-novalid.html b/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-address-novalid.html
new file mode 100644
index 0000000000..1061d9a620
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-address-novalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- address type must come before field type -->
+ <textarea autocomplete="country shipping">
+ </textarea>
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-empty-novalid.html b/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-empty-novalid.html
new file mode 100644
index 0000000000..d222846b4f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-empty-novalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- empty -->
+ <textarea autocomplete="">
+ </textarea>
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-isvalid.html b/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-isvalid.html
new file mode 100644
index 0000000000..23bdb9ab8f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-isvalid.html
@@ -0,0 +1,80 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is valid</title>
+</head>
+<body>
+
+ <textarea autocomplete="on"></textarea>
+ <textarea autocomplete="off"></textarea>
+
+ <!-- country -->
+ <textarea autocomplete="country">
+ </textarea>
+
+ <textarea autocomplete="billing country">
+ </textarea>
+
+ <textarea autocomplete="section-blue country">
+ </textarea>
+
+ <textarea autocomplete="section-blue billing country">
+ </textarea>
+
+ <!-- cc-type -->
+ <textarea autocomplete="cc-type">
+ </textarea>
+
+ <textarea autocomplete="billing cc-type">
+ </textarea>
+
+ <textarea autocomplete="section-blue cc-type">
+ </textarea>
+
+ <textarea autocomplete="section-blue billing cc-type">
+ </textarea>
+
+ <!-- cc-exp-month -->
+ <textarea autocomplete="cc-exp-month">
+ </textarea>
+
+ <textarea autocomplete="billing cc-exp-month">
+ </textarea>
+
+ <textarea autocomplete="section-blue cc-exp-month">
+ </textarea>
+
+ <textarea autocomplete="section-blue billing cc-exp-month">
+ </textarea>
+
+ <!-- cc-exp-year -->
+ <textarea autocomplete="cc-exp-year">
+ </textarea>
+
+ <textarea autocomplete="billing cc-exp-year">
+ </textarea>
+
+ <textarea autocomplete="section-blue cc-exp-year">
+ </textarea>
+
+ <textarea autocomplete="section-blue billing cc-exp-year">
+ </textarea>
+
+ <!-- tel-country-code -->
+ <textarea autocomplete="work tel-country-code">
+ </textarea>
+
+ <textarea autocomplete="billing work tel-country-code">
+ </textarea>
+
+ <textarea autocomplete="section-blue work tel-country-code">
+ </textarea>
+
+ <textarea autocomplete="section-blue billing work tel-country-code">
+ </textarea>
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-section-novalid.html b/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-section-novalid.html
new file mode 100644
index 0000000000..ec1038b00f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-section-novalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- work must come before field type -->
+ <textarea autocomplete="country section-blue">
+ </textarea>
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-token-novalid.html b/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-token-novalid.html
new file mode 100644
index 0000000000..761495b52d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-token-novalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- unknown field type -->
+ <textarea autocomplete="qwerty">
+ </textarea>
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-work-novalid.html b/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-work-novalid.html
new file mode 100644
index 0000000000..6818e26c89
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/textarea/autocomplete-work-novalid.html
@@ -0,0 +1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+<meta charset=utf-8>
+<title>autocomplete attribute is invalid</title>
+</head>
+<body>
+
+ <!-- work must come before field type -->
+ <textarea autocomplete="country work">
+ </textarea>
+
+</body>
+</html>
+
+
diff --git a/testing/web-platform/tests/conformance-checkers/tools/dl.py b/testing/web-platform/tests/conformance-checkers/tools/dl.py
new file mode 100644
index 0000000000..b0e14f18c0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/tools/dl.py
@@ -0,0 +1,99 @@
+# -*- coding: utf-8 -*-
+import os
+ccdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+template = """<!DOCTYPE html>
+<meta charset=utf-8>
+"""
+
+errors = {
+ "dl-in-p": "<p><dl><dt>text<dd>text</dl></p>",
+ "header-in-dt": "<dl><dt><header>text</header><dd>text</dl>",
+ "footer-in-dt": "<dl><dt><footer>text</footer><dd>text</dl>",
+ "article-in-dt": "<dl><dt><article><h2>text</h2></article><dd>text</dl>",
+ "aside-in-dt": "<dl><dt><aside><h2>text</h2></aside><dd>text</dl>",
+ "nav-in-dt": "<dl><dt><nav><h2>text</h2></nav><dd>text</dl>",
+ "section-in-dt": "<dl><dt><section><h2>text</h2></section><dd>text</dl>",
+ "h1-in-dt": "<dl><dt><h1>text</h1><dd>text</dl>",
+ "h2-in-dt": "<dl><dt><h2>text</h2><dd>text</dl>",
+ "h3-in-dt": "<dl><dt><h3>text</h3><dd>text</dl>",
+ "h4-in-dt": "<dl><dt><h4>text</h4><dd>text</dl>",
+ "h5-in-dt": "<dl><dt><h5>text</h5><dd>text</dl>",
+ "h6-in-dt": "<dl><dt><h6>text</h6><dd>text</dl>",
+ "hgroup-in-dt": "<dl><dt><hgroup><h1>text</h1></hgroup><dd>text</dl>",
+ "only-dt": "<dl><dt>1</dl>",
+ "only-dd": "<dl><dd>a</dl>",
+ "first-dd": "<dl><dd>a<dt>2<dd>b</dl>",
+ "last-dt": "<dl><dt>1<dd>a<dt>2</dl>",
+ "dd-in-template": "<dl><dt>1</dt><template><dd>a</dd></template></dl>",
+ "dt-in-template": "<dl><template><dt>1</dt></template><dd>a</dl>",
+ "dl-contains-text": "<dl><dt>1</dt>x</dl>",
+ "dl-contains-text-2": "<dl><dt>1<dd>a</dd>x</dl>",
+ "dl-contains-dl": "<dl><dt>1<dd>a</dd><dl></dl></dl>",
+ # div
+ "empty-div": "<dl><div></div></dl>",
+ "empty-div-2": "<dl><div></div><div><dt>2<dd>b</div></dl>",
+ "mixed-dt-dd-div": "<dl><dt>1<dd>a</dd><div><dt>2<dd>b</div></dl>",
+ "mixed-div-dt-dd": "<dl><div><dt>1<dd>a</div><dt>2<dd>b</dd></dl>",
+ "nested-divs": "<dl><div><div><dt>1<dd>a</div></div></dl>",
+ "div-splitting-groups": "<dl><div><dt>1</div><div><dd>a</div></dl>",
+ "div-splitting-groups-2": "<dl><div><dt>1<dd>a</div><div><dd>b</div></dl>",
+ "div-splitting-groups-3": "<dl><div><dt>1</div><div><dt>2<dd>b</div></dl>",
+ "div-contains-text": "<dl><div>x</div><dt>2<dd>b</div></dl>",
+ "div-contains-dl": "<dl><div><dl></dl></div><dt>2<dd>b</div></dl>",
+ "div-multiple-groups": "<dl><div><dt>1<dd>a<dt>2<dd>a<dd>b<dt>3<dt>4<dt>5<dd>a</div></dl>",
+}
+
+non_errors_in_head = {
+ "parent-template-in-head": "<template><dl><dt>text<dd>text</dl></template>",
+}
+
+non_errors = {
+ "basic": "<dl><dt>text<dd>text</dl>",
+ "empty": "<dl></dl>",
+ "empty-dt-dd": "<dl><dt><dd></dl>",
+ "multiple-groups": "<dl><dt>1<dd>a<dt>2<dd>a<dd>b<dt>3<dt>4<dt>5<dd>a</dl>",
+ "header-in-dd": "<dl><dt>text<dd><header>text</header></dl>",
+ "footer-in-dd": "<dl><dt>text<dd><footer>text</footer></dl>",
+ "article-in-dd": "<dl><dt>text<dd><article><h2>text</h2></article></dl>",
+ "aside-in-dd": "<dl><dt>text<dd><aside><h2>text</h2></aside></dl>",
+ "nav-in-dd": "<dl><dt>text<dd><nav><h2>text</h2></nav></dl>",
+ "section-in-dd": "<dl><dt>text<dd><section><h2>text</h2></section></dl>",
+ "h1-in-dd": "<dl><dt>text<dd><h1>text</h1></dl>",
+ "h2-in-dd": "<dl><dt>text<dd><h2>text</h2></dl>",
+ "h3-in-dd": "<dl><dt>text<dd><h3>text</h3></dl>",
+ "h4-in-dd": "<dl><dt>text<dd><h4>text</h4></dl>",
+ "h5-in-dd": "<dl><dt>text<dd><h5>text</h5></dl>",
+ "h6-in-dd": "<dl><dt>text<dd><h6>text</h6></dl>",
+ "p-in-dt": "<dl><dt><p>1<p>1<dd>a</dl>",
+ "dl-in-dt": "<dl><dt><dl><dt>1<dd>a</dl><dd>b</dl>",
+ "dl-in-dd": "<dl><dt>1<dd><dl><dt>2<dd>a</dl></dl>",
+ "interactive": "<dl><dt><a href='#'>1</a><dd><a href='#'>a</a></dl>",
+ "script": "<dl><script></script></dl>",
+ "dt-script-dd": "<dl><dt>1</dt><script></script><dd>a</dl>",
+ "dt-template-dd": "<dl><dt>1</dt><template></template><dd>a</dl>",
+ # div
+ "div-basic": "<dl><div><dt>1<dd>a</div></dl>",
+ "div-script": "<dl><div><dt>1<dd>a</div><script></script></dl>",
+ "div-script-2": "<dl><div><dt>1</dt><script></script><dd>a</div></dl>",
+ "div-template": "<dl><div><dt>1<dd>a</div><template></template></dl>",
+ "div-template-2": "<dl><div><dt>1</dt><template></template><dd>a</div></dl>",
+ "div-multiple-groups": "<dl><div><dt>1<dd>a</div><div><dt>2<dd>a<dd>b</div><div><dt>3<dt>4<dt>5<dd>a</div></dl>",
+}
+
+for key in errors.keys():
+ template_error = template
+ template_error += '<title>invalid %s</title>\n' % key
+ template_error += errors[key]
+ file = open(os.path.join(ccdir, "html/elements/dl/%s-novalid.html" % key), 'w')
+ file.write(template_error)
+ file.close()
+
+file = open(os.path.join(ccdir, "html/elements/dl/dl-isvalid.html"), 'w')
+file.write(template + '<title>valid dl</title>\n')
+for key in non_errors_in_head.keys():
+ file.write('%s <!-- %s -->\n' % (non_errors_in_head[key], key))
+file.write('<body>\n')
+for key in non_errors.keys():
+ file.write('%s <!-- %s -->\n' % (non_errors[key], key))
+file.close()
+# vim: ts=4:sw=4
diff --git a/testing/web-platform/tests/conformance-checkers/tools/ins-del-datetime.py b/testing/web-platform/tests/conformance-checkers/tools/ins-del-datetime.py
new file mode 100644
index 0000000000..d169a2fe0f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/tools/ins-del-datetime.py
@@ -0,0 +1,175 @@
+# -*- coding: utf-8 -*-
+import os
+ccdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+template = """<!DOCTYPE html>
+<meta charset=utf-8>
+"""
+errors = {
+ "date-year-0000": "0000-12-09",
+ "date-month-00": "2002-00-15",
+ "date-month-13": "2002-13-15",
+ "date-0005-02-29": "0005-02-29",
+ "date-1969-02-29": "1969-02-29",
+ "date-1900-02-29": "1900-02-29",
+ "date-2100-02-29": "2100-02-29",
+ "date-2200-02-29": "2200-02-29",
+ "date-2014-02-29": "2014-02-29",
+ "date-day-04-31": "2002-04-31",
+ "date-day-06-31": "2002-06-31",
+ "date-day-09-31": "2002-09-31",
+ "date-day-11-31": "2002-11-31",
+ "date-day-01-32": "2002-01-32",
+ "date-day-03-32": "2002-03-32",
+ "date-day-05-32": "2002-05-32",
+ "date-day-07-32": "2002-07-32",
+ "date-day-08-32": "2002-08-32",
+ "date-day-10-32": "2002-10-32",
+ "date-day-12-32": "2002-12-32",
+ "date-iso8601-YYYYMMDD-no-hyphen": "20020929",
+ "date-leading-whitespace": " 2002-09-29",
+ "date-trailing-whitespace": "2002-09-29 ",
+ "date-month-one-digit": "2002-9-29",
+ "date-month-three-digits": "2002-011-29",
+ "date-year-three-digits": "782-09-29",
+ "date-day-one-digit": "2002-09-9",
+ "date-day-three-digits": "2002-11-009",
+ "date-day-missing-separator": "2014-0220",
+ "date-month-missing-separator": "201402-20",
+ "date-non-ascii-digit": "2002-09-29",
+ "date-trailing-U+0000": "2002-09-29&#x0000;",
+ "date-trailing-pile-of-poo": "2002-09-29💩",
+ "date-wrong-day-separator": "2014-02:20",
+ "date-wrong-month-separator": "2014:02-20",
+ "date-year-negative": "-2002-09-29",
+ "date-leading-bom": "2002-09-29",
+ "global-date-and-time-60-minutes": "2011-11-12T00:60:00+08:00",
+ "global-date-and-time-60-seconds": "2011-11-12T00:00:60+08:00",
+ "global-date-and-time-2400": "2011-11-12T24:00:00+08:00",
+ "global-date-and-time-space-before-timezone": "2011-11-12T06:54:39 08:00",
+ "global-date-and-time-hour-one-digit": "2011-11-12T6:54:39-08:00",
+ "global-date-and-time-hour-three-digits": "2011-11-12T016:54:39-08:00",
+ "global-date-and-time-minutes-one-digit": "2011-11-12T16:4:39-08:00",
+ "global-date-and-time-minutes-three-digits": "2011-11-12T16:354:39-08:00",
+ "global-date-and-time-seconds-one-digit": "2011-11-12T16:54:9-08:00",
+ "global-date-and-time-seconds-three-digits": "2011-11-12T16:54:039-08:00",
+ "global-date-and-time-timezone-with-seconds": "2011-11-12T06:54:39-08:00:00",
+ "global-date-and-time-timezone-60-minutes": "2011-11-12T06:54:39-08:60",
+ "global-date-and-time-timezone-one-digit-hour": "2011-11-12T06:54:39-5:00",
+ "global-date-and-time-timezone-one-digit-minute": "2011-11-12T06:54:39-05:0",
+ "global-date-and-time-timezone-three-digit-hour": "2011-11-12T06:54:39-005:00",
+ "global-date-and-time-timezone-three-digit-minute": "2011-11-12T06:54:39-05:000",
+ "global-date-and-time-nbsp": "2011-11-12 14:54Z",
+ "global-date-and-time-missing-minutes-separator": "2011-11-12T1454Z",
+ "global-date-and-time-missing-seconds-separator": "2011-11-12T14:5439Z",
+ "global-date-and-time-wrong-minutes-separator": "2011-11-12T14-54Z",
+ "global-date-and-time-wrong-seconds-separator": "2011-11-12T14:54-39Z",
+ "global-date-and-time-lowercase-z": "2011-11-12T14:54z",
+ "global-date-and-time-with-both-T-and-space": "2011-11-12T 14:54Z",
+ "global-date-and-time-zero-digit-fraction": "2011-11-12T06:54:39.-08:00",
+ "global-date-and-time-four-digit-fraction": "2011-11-12T06:54:39.9291-08:00",
+ "global-date-and-time-bad-fraction-separator": "2011-11-12T14:54:39,929+0000",
+ "global-date-and-time-timezone-non-T-character": "2011-11-12+14:54Z",
+ "global-date-and-time-timezone-lowercase-t": "2011-11-12t14:54Z",
+ "global-date-and-time-timezone-multiple-spaces": "2011-11-12 14:54Z",
+ "global-date-and-time-timezone-offset-space-start": "2011-11-12T06:54:39.929 08:00",
+ "global-date-and-time-timezone-offset-colon-start": "2011-11-12T06:54:39.929:08:00",
+ "global-date-and-time-timezone-plus-2400": "2011-11-12T06:54:39-24:00",
+ "global-date-and-time-timezone-minus-2400": "2011-11-12T06:54:39-24:00",
+ "global-date-and-time-timezone-iso8601-two-digit": "2011-11-12T06:54:39-08",
+ "global-date-and-time-iso8601-hhmmss-no-colon": "2011-11-12T145439Z",
+ "global-date-and-time-iso8601-hhmm-no-colon": "2011-11-12T1454Z",
+ "global-date-and-time-iso8601-hh": "2011-11-12T14Z",
+ "year": "2006",
+ "yearless-date": "07-15",
+ "month": "2011-11",
+ "week": "2011-W46",
+ "time": "14:54:39",
+ "local-date-and-time": "2011-11-12T14:54",
+ "duration-P-form": "PT4H18M3S",
+ "duration-time-component": "4h 18m 3s",
+}
+
+warnings = {
+ "global-date-and-time-timezone-plus-1500": "2011-11-12T00:00:00+1500",
+ "global-date-and-time-timezone-minus-1300": "2011-11-12T00:00:00-1300",
+ "global-date-and-time-timezone-minutes-15": "2011-11-12T00:00:00+08:15",
+ "date-0214-09-29": "0214-09-29",
+ "date-20014-09-29": "20014-09-29",
+ "date-0004-02-29": "0004-02-29",
+ "date-year-five-digits": "12014-09-29",
+}
+
+non_errors = {
+ "date": "2002-09-29",
+ "date-2000-02-29": "2000-02-29",
+ "date-2400-02-29": "2400-02-29",
+ "date-1968-02-29": "1968-02-29",
+ "date-1900-02-28": "1900-02-28",
+ "date-2100-02-28": "2100-02-28",
+ "date-2200-02-28": "2200-02-28",
+ "date-2014-02-28": "2014-02-28",
+ "date-day-01-31": "2002-01-31",
+ "date-day-03-31": "2002-03-31",
+ "date-day-05-31": "2002-05-31",
+ "date-day-07-31": "2002-07-31",
+ "date-day-08-31": "2002-08-31",
+ "date-day-10-31": "2002-10-31",
+ "date-day-12-31": "2002-12-31",
+ "date-day-04-30": "2002-04-30",
+ "date-day-06-30": "2002-06-30",
+ "date-day-09-30": "2002-09-30",
+ "date-day-11-30": "2002-11-30",
+ "global-date-and-time-no-seconds": "2011-11-12T14:54Z",
+ "global-date-and-time-with-seconds": "2011-11-12T14:54:39+0000",
+ "global-date-and-time-with-one-digit-fraction": "2011-11-12T06:54:39.9-08:00",
+ "global-date-and-time-with-two-digit-fraction": "2011-11-12T06:54:39.92+07:00",
+ "global-date-and-time-with-three-digit-fraction": "2011-11-12T06:54:39.929-06:00",
+ "global-date-and-time-space": "2011-11-12 14:54Z",
+ "global-date-and-time-timezone": "2011-11-12T06:54:39+0900",
+ "global-date-and-time-timezone-30": "2011-11-12T06:54:39-0830",
+ "global-date-and-time-timezone-45": "2011-11-12T06:54:39-0845",
+ "global-date-and-time-timezone-with-colon": "2011-11-12T06:54:39-08:00",
+ "global-date-and-time-timezone-without-colon": "2011-11-12T06:54:39-0800",
+}
+
+for key in errors.keys():
+ error = errors[key]
+ template_ins = template
+ template_del = template
+ template_ins += '<title>%s</title>\n' % key
+ template_del += '<title>%s</title>\n' % key
+ template_ins += '<ins datetime="%s"></ins>' % errors[key]
+ template_del += '<del datetime="%s"></del>' % errors[key]
+ ins_file = open(os.path.join(ccdir, "html/elements/ins/%s-novalid.html" % key), 'w')
+ ins_file.write(template_ins)
+ ins_file.close()
+ del_file = open(os.path.join(ccdir, "html/elements/del/%s-novalid.html" % key), 'w')
+ del_file.write(template_del)
+ del_file.close()
+
+for key in warnings.keys():
+ non_error = warnings[key]
+ template_ins = template
+ template_del = template
+ template_ins += '<title>%s</title>\n' % key
+ template_del += '<title>%s</title>\n' % key
+ template_ins += '<ins datetime="%s"></ins>' % warnings[key]
+ template_del += '<del datetime="%s"></del>' % warnings[key]
+ ins_file = open(os.path.join(ccdir, "html/elements/ins/%s-haswarn.html" % key), 'w')
+ ins_file.write(template_ins)
+ ins_file.close()
+ del_file = open(os.path.join(ccdir, "html/elements/del/%s-haswarn.html" % key), 'w')
+ del_file.write(template_del)
+ del_file.close()
+
+ins_file = open(os.path.join(ccdir, "html/elements/ins/datetime-isvalid.html"), 'w')
+del_file = open(os.path.join(ccdir, "html/elements/del/datetime-isvalid.html"), 'w')
+ins_file.write(template + '<title>valid datetime</title>\n')
+del_file.write(template + '<title>valid datetime</title>\n')
+for key in non_errors.keys():
+ non_error = non_errors[key]
+ ins_file.write('<ins datetime="%s"></ins> <!-- %s -->\n' % (non_errors[key], key))
+ del_file.write('<del datetime="%s"></del> <!-- %s -->\n' % (non_errors[key], key))
+ins_file.close()
+del_file.close()
+# vim: ts=4:sw=4
diff --git a/testing/web-platform/tests/conformance-checkers/tools/picture.py b/testing/web-platform/tests/conformance-checkers/tools/picture.py
new file mode 100644
index 0000000000..13782818ac
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/tools/picture.py
@@ -0,0 +1,366 @@
+# -*- coding: utf-8 -*-
+import os
+ccdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+template = """<!DOCTYPE html>
+<!-- DO NOT EDIT! This test has been generated by /conformance-checkers/tools/picture.py. -->
+<meta charset=utf-8>
+"""
+
+errors = {
+ # missing src on img
+ "img-no-src": "<img alt>",
+ "img-no-src-with-srcset": "<img srcset=x alt>",
+ "img-no-src-with-picture": "<picture><img alt></picture>",
+ "img-no-src-with-srcset-and-picture": "<picture><img srcset=x alt></picture>",
+ "img-no-src-with-source": "<picture><source srcset=x><img alt></picture>",
+ # junk content in picture
+ "junk-text-before-img": "<picture>x<img src=x alt></picture>",
+ "junk-text-after-img": "<picture><img src=x alt>x</picture>",
+ "junk-text-before-source": "<picture>x<source srcset=x><img src=x alt></picture>",
+ "junk-text-after-source": "<picture><source srcset=x>x<img src=x alt></picture>",
+ "junk-br-before-img": "<picture><br><img src=x alt></picture>",
+ "junk-br-after-img": "<picture><img src=x alt><br></picture>",
+ "junk-br-before-source": "<picture><br><source srcset=x><img src=x alt></picture>",
+ "junk-br-after-source": "<picture><source srcset=x><br><img src=x alt></picture>",
+ "junk-video-before": "<picture><video></video><source srcset=x><img src=x alt></picture>",
+ "junk-video-no-img": "<picture><video></video></picture>",
+ "junk-p-before": "<picture><p></p><source srcset=x><img src=x alt></picture>",
+ "junk-p-after": "<picture><source srcset=x><img src=x alt><p></p></picture>",
+ "junk-p-wrapping": "<picture><p><source srcset=x><img src=x alt></p></picture>",
+ "junk-span-before": "<picture><span></span><source srcset=x><img src=x alt></picture>",
+ "junk-span-after": "<picture><source srcset=x><img src=x alt><span></span></picture>",
+ "junk-span-wrapping": "<picture><span><source srcset=x><img src=x alt></span></picture>",
+ "junk-picture-before": "<picture><picture><img src=x alt></picture><img src=x alt></picture>",
+ "junk-picture-wrapping": "<picture><picture><img src=x alt></picture></picture>",
+ "junk-figure-wrapping": "<picture><figure><img src=x alt></figure></picture>",
+ "junk-input-type-hidden": "<picture><input type=hidden name=x value=x><img src=x alt></picture>",
+ "junk-style-scroped": "<picture><style scroped></style><img src=x alt></picture>",
+ "junk-noscript": "<picture><img src=x alt><noscript></noscript></picture>",
+ "junk-noscript-after-source-no-img": "<picture><source srcset=x><noscript><img src=x alt></noscript></picture>",
+ "junk-svg": "<picture><img src=x alt><svg></svg></picture>",
+ "junk-svg-no-img": "<picture><svg></svg></picture>",
+ "junk-math-nog-img": "<picture><math></math></picture>",
+ # parents
+ "parent-ul": "<ul><picture><img src=x alt></picture></ul>",
+ "parent-dl": "<dl><picture><img src=x alt></picture></dl>",
+ "parent-hgroup": "<hgroup><h1>x</h1><picture><img src=x alt></picture></hgroup>",
+ "parent-noscript-in-head": "<noscript><picture><img src=x alt></picture></noscript>",
+ "parent-rp": "<ruby>x<rp><picture><img src=x alt></picture></rp><rt>x</rt><rp>x</rp></ruby>",
+ # invalid html syntax
+ "html-syntax-source-end-tag": "<picture><source srcset=x></source><img src=x alt></picture>",
+ "html-syntax-img-end-tag": "<picture><img src=x alt></img></picture>",
+ "html-syntax-picture-no-end-tag": "<picture><img src=x alt>",
+ "html-syntax-picture-slash": "<picture/><img src=x alt></picture>",
+ "html-syntax-picture-slash-no-end-tag": "<picture/><img src=x alt>",
+ # missing img in picture
+ "missing-img-empty-picture": "<picture></picture>",
+ "missing-img-only-source": "<picture><source srcset=x></picture>",
+ "missing-img-only-script": "<picture><script></script></picture>",
+ "missing-img-script-and-source": "<picture><script></script><source srcset=x></picture>",
+ "missing-img-source-and-script": "<picture><source srcset=x><script></script></picture>",
+ # multiple img in picture
+ "multiple-img": "<picture><img src=x alt><img src=x alt></picture>",
+ "multiple-img-with-script": "<picture><img src=x alt><script></script><img src=x alt></picture>",
+ "multiple-img-with-source": "<picture><source srcset=x><img src=x alt><img src=x alt></picture>",
+ "multiple-img-with-source-and-script": "<picture><source srcset=x><img src=x alt><script></script><img src=x alt></picture>",
+ # source after img
+ "source-after-img": "<picture><img src=x alt><source srcset=x></picture>",
+ "source-before-and-after-img": "<picture><source srcset=x><img src=x alt><source srcset=x></picture>",
+ # source with following sibling source element or img element with a srcset attribute
+ "always-matching-source-with-following-img-srcset": "<picture><source srcset=x><img src=x srcset=x alt></picture>",
+ "always-matching-source-with-following-source-srcset": "<picture><source srcset=x><source srcset=x><img src=x alt></picture>",
+ "always-matching-source-with-following-source-media": "<picture><source srcset=x><source srcset=x media=screen><img src=x alt></picture>",
+ "always-matching-source-with-following-source-type": "<picture><source srcset=x><source srcset=x type=image/gif><img src=x alt></picture>",
+ "always-matching-source-media-empty-with-following-source-srcset": "<picture><source srcset=x media><source srcset=x><img src=x alt></picture>",
+ "always-matching-source-media-spaces-with-following-source-srcset": "<picture><source srcset=x media=' \n\t'><source srcset=x><img src=x alt></picture>",
+ "always-matching-source-media-all-with-following-source-srcset": "<picture><source srcset=x media=all><source srcset=x><img src=x alt></picture>",
+ "always-matching-source-media-uppercase-with-following-source-srcset": "<picture><source srcset=x media=ALL><source srcset=x><img src=x alt></picture>",
+ "always-matching-source-media-all-spaces-with-following-source-srcset": "<picture><source srcset=x media=' all '><source srcset=x><img src=x alt></picture>",
+ "always-matching-source-sizes-with-following-source-srcset": "<picture><source srcset='x 100w' sizes=50vw><source srcset=x><img src=x alt></picture>",
+ # sizes present
+ "img-srcset-no-descriptor-with-sizes": "<img src=x srcset='x' sizes=50vw alt>",
+ "img-srcset-w-and-x-width-sizes": "<img src=x srcset='x 100w, y 2x' sizes=50vw alt>",
+ "source-srcset-x-with-sizes": "<picture><source srcset='x 1x, y 2x' sizes=50vw><img src=x alt></picture>",
+ "source-srcset-h-with-sizes": "<picture><source srcset='x 100h, y 200h' sizes=50vw><img src=x alt></picture>",
+ "source-srcset-w-and-x-with-sizes": "<picture><source srcset='x 100w, y 2x' sizes=50vw><img src=x alt></picture>",
+ "img-with-sizes-no-srcset": "<img sizes=50vw src=foo alt>",
+ # width descriptor without sizes
+ "img-srcset-w-no-sizes": "<img srcset='x 100w, y 200w' src=x alt>",
+ "source-srcset-w-no-sizes": "<picture><source srcset='x 100w, y 200w'><img src=x alt></picture>",
+ "source-type-srcset-w": "<picture><source srcset='x 100w, y 200w' type=image/gif><img src=x alt></picture>",
+ # invalid attributes on source
+ "source-src": "<picture><source src=x><img src=x alt></picture>",
+ "source-src-srcset": "<picture><source src=x srcset=x><img src=x alt></picture>",
+ "source-alt": "<picture><source srcset=x alt><img src=x alt></picture>",
+ "source-usemap": "<picture><source srcset=x usemap><img src=x alt></picture>",
+ "source-ismap": "<picture><source srcset=x ismap><img src=x alt></picture>",
+ "source-crossorigin": "<picture><source srcset=x crossorigin><img src=x alt></picture>",
+ "source-name": "<picture><source srcset=x crossorigin><img src=x alt></picture>",
+ "source-align": "<picture><source srcset=x align=left><img src=x alt></picture>",
+ "source-hspace": "<picture><source srcset=x hspace=1><img src=x alt></picture>",
+ "source-vspace": "<picture><source srcset=x vspace=1><img src=x alt></picture>",
+ "source-longdesc": "<picture><source srcset=x longdesc=x><img src=x alt></picture>",
+ "source-border": "<picture><source srcset=x border=1><img src=x alt></picture>",
+ # missing srcset on source
+ "source-no-srcset": "<picture><source><img src=x alt></picture>",
+ "source-no-srcset-with-sizes": "<picture><source sizes=50vw><img src=x alt></picture>",
+ "source-no-srcset-with-media": "<picture><source media=screen><img src=x alt></picture>",
+ "source-no-srcset-with-type": "<picture><source type='image/webp'><img src=x alt></picture>",
+ # invalid attributes on picture
+ "picture-src": "<picture src=x><img src=x alt></picture>",
+ "picture-srcset": "<picture srcset=x><img src=x alt></picture>",
+ "picture-media": "<picture media=screen><img src=x alt></picture>",
+ "picture-sizes": "<picture sizes=50vw><img src=x alt></picture>",
+ "picture-alt": "<picture alt><img src=x alt></picture>",
+ "picture-width": "<picture width=100><img src=x alt></picture>",
+ "picture-height": "<picture height=100><img src=x alt></picture>",
+ "picture-usemap": "<picture usemap><img src=x alt></picture>",
+ "picture-ismap": "<picture ismap><img src=x alt></picture>",
+ "picture-crossorigin": "<picture crossorigin><img src=x alt></picture>",
+ "picture-name": "<picture name=x><img src=x alt></picture>",
+ "picture-lowsrc": "<picture lowsrc=x><img src=x alt></picture>",
+ "picture-align": "<picture align=left><img src=x alt></picture>",
+ "picture-hspace": "<picture hspace=1><img src=x alt></picture>",
+ "picture-vspace": "<picture vspace=1><img src=x alt></picture>",
+ "picture-longdesc": "<picture longdesc=x><img src=x alt></picture>",
+ "picture-border": "<picture border=1><img src=x alt></picture>",
+ # invalid attributes on source in video
+ "video-source-srcset": "<video><source srcset=x></video>",
+ "video-source-srcset-src": "<video><source srcset=x src=x></video>",
+ "video-source-sizes-srcset": "<video><source sizes=50vw srcset='x 100w'></video>",
+ "video-source-media-src": "<video><source media=screen src=x></video>",
+ # srcset on other elements
+ "link-rel-icon-srcset": "<link rel=icon srcset=x href=x>",
+ "input-type-image-srcset": "<input type=image src=x srcset=x alt=x>",
+ "object-srcset": "<object data=x srcset=x></object>",
+ "video-srcset": "<video src=x srcset=x></video>",
+ "audio-srcset": "<audio src=x srcset=x></audio>",
+ "track-srcset": "<video src=x><track src=x srcset=x></video>",
+ "svg-image-srcset": "<svg><image xlink:href=x srcset=x width=1 height=1 /></svg>",
+ # invalid attributes on img
+ "img-type": "<img src=x type=image/gif alt>",
+ "img-type-with-picture": "<picture><img src=x type=image/gif alt></picture>",
+ # sizes microsyntax
+ "sizes-microsyntax-media-all": "<img sizes='all 500px, 100vw' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-media-all-and-min-width": "<img sizes='all and (min-width:500px) 500px, 100vw' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-media-min-width-no-parenthesis": "<img sizes='min-width:500px 500px, 100vw' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-media-general-enclosed-junk": "<img sizes='(123) 500px, 100vw' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-media-bad-junk": "<img sizes='(}) 500px, 100vw' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-two-defaults": "<img sizes='500px, 100vw' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-default-first": "<img sizes='100vw, (min-width:500px) 500px' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-trailing-comma": "<img sizes='(min-width:500px) 500px, 100vw,' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-trailing-junk": "<img sizes='(min-width:500px) 500px, 100vw, foo bar' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-junk-in-default": "<img sizes='(min-width:500px) 500px, 100vw foo bar' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-junk-in-source-size": "<img sizes='(min-width:500px) 500px foo bar, 100vw' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-percent-in-source-size-value": "<img sizes='(min-width:500px) 50%, 100vw' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-no-unit-in-source-size-value": "<img sizes='(min-width:500px) 50, 100vw' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-deg-source-size-value": "<img sizes='1deg' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-grad-source-size-value": "<img sizes='1grad' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-rad-source-size-value": "<img sizes='1rad' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-turn-source-size-value": "<img sizes='1turn' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-s-source-size-value": "<img sizes='1s' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-ms-source-size-value": "<img sizes='1ms' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-hz-source-size-value": "<img sizes='1Hz' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-khz-source-size-value": "<img sizes='1kHz' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-dpi-source-size-value": "<img sizes='1dpi' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-dpcm-source-size-value": "<img sizes='1dpcm' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-dppx-source-size-value": "<img sizes='1dppx' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-auto-source-size-value": "<img sizes='auto' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-inherit-source-size-value": "<img sizes='inherit' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-initial-source-size-value": "<img sizes='initial' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-default-source-size-value": "<img sizes='default' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-foo-bar-source-size-value": "<img sizes='foo-bar' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-negative-source-size-value": "<img sizes='-1px' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-empty": "<img sizes='' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-comma": "<img sizes=',' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-css-comment-after-plus": "<img sizes='+/**/50vw' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-css-comment-before-unit": "<img sizes='50/**/vw' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-scientific-notation-negative": "<img sizes='-1e+0px' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-scientific-notation-non-integer-in-exponent": "<img sizes='1e+1.5px' srcset='x 100w, y 200w' src=x alt>",
+ # srcset microsyntax
+ "srcset-microsyntax-leading-comma": "<img srcset=',x' src=x alt>",
+ "srcset-microsyntax-leading-comma-multiple": "<img srcset=',,,x' src=x alt>",
+ "srcset-microsyntax-trailing-comma": "<img srcset='x,' src=x alt>",
+ "srcset-microsyntax-trailing-comma-multiple": "<img srcset='x,,,' src=x alt>",
+ "srcset-microsyntax-broken-url": "<img srcset='http: 1x' src=x alt>",
+ "srcset-microsyntax-non-integer-w": "<img srcset='x 1.5w' sizes=100vw src=x alt>",
+ "srcset-microsyntax-uppercase-w": "<img srcset='x 1W' sizes=100vw src=x alt>",
+ "srcset-microsyntax-plus-w": "<img srcset='x +1w' sizes=100vw src=x alt>",
+ "srcset-microsyntax-scientific-notation-w": "<img srcset='x 1e0w' sizes=100vw src=x alt>",
+ "srcset-microsyntax-zero-w": "<img srcset='x 0w' sizes=100vw src=x alt>",
+ "srcset-microsyntax-negative-zero-w": "<img srcset='x -0w' sizes=100vw src=x alt>",
+ "srcset-microsyntax-negative-w": "<img srcset='x -1w' sizes=100vw src=x alt>",
+ "srcset-microsyntax-plus-x": "<img srcset='x +1x' src=x alt>",
+ "srcset-microsyntax-negative-x": "<img srcset='x -1x' src=x alt>",
+ "srcset-microsyntax-zero-x": "<img srcset='x 0x' src=x alt>",
+ "srcset-microsyntax-negative-zero-x": "<img srcset='x -0x' src=x alt>",
+ "srcset-microsyntax-nan-x": "<img srcset='x NaNx' src=x alt>",
+ "srcset-microsyntax-infinity-x": "<img srcset='x Infinityx' src=x alt>",
+ "srcset-microsyntax-x-and-w": "<img srcset='x 1x 1w' sizes=100vw src=x alt>",
+ "srcset-microsyntax-x-and-h": "<img srcset='x 1x 1h' sizes=100vw src=x alt>",
+ "srcset-microsyntax-w-and-h": "<img srcset='x 1w 1h' sizes=100vw src=x alt>",
+ "srcset-microsyntax-h": "<img srcset='x 1h' sizes=100vw src=x alt>",
+ "srcset-microsyntax-function": "<img srcset='x foobar(baz quux, lol), y 1x' src=x alt>",
+ "srcset-microsyntax-parenthesis-junk": "<img srcset='x ><(((((o)>, y 1x' src=x alt>",
+ "srcset-microsyntax-square-bracket-junk": "<img srcset='x [, y 1x' src=x alt>",
+ "srcset-microsyntax-curly-bracket-junk": "<img srcset='x {, y 1x' src=x alt>",
+ "srcset-microsyntax-pipe-junk": "<img srcset='x ||, y 1x' src=x alt>",
+ "srcset-microsyntax-w-and-no-descriptor": "<img srcset='x 1w, y' sizes=100vw src=x alt>",
+ "srcset-microsyntax-unique-descriptors-1x-and-omitted": "<img srcset='x 1x, y' src=x alt>",
+ "srcset-microsyntax-unique-descriptors-2x": "<img srcset='x 2x, y 2x' src=x alt>",
+ "srcset-microsyntax-unique-descriptors-integer-and-decimals-x": "<img srcset='x 1x, y 1.0x' src=x alt>",
+ "srcset-microsyntax-unique-descriptors-w": "<img srcset='x 1w, y 1w' sizes=100vw src=x alt>",
+ "srcset-microsyntax-empty": "<img srcset='' src=x alt>",
+ "srcset-microsyntax-comma": "<img srcset=',' src=x alt>",
+ "srcset-microsyntax-css-comment-after-descriptor": "<img srcset='x 2x/**/' src=x alt>",
+ # aria
+ "picture-aria-role-img": "<picture role=img><img src=x alt></picture>",
+ "picture-aria-role-button": "<picture role=button><img src=x alt></picture>",
+ "picture-aria-role-region": "<picture role=region><img src=x alt></picture>",
+ "picture-aria-role-application": "<picture role=application><img src=x alt></picture>",
+ "source-aria-role-img": "<picture><source role=img srcset=x><img src=x alt></picture>",
+ "picture-aria-role-presentation": "<picture role=presentation><img src=x alt></picture>",
+ "source-aria-role-presentation": "<picture><source role=presentation srcset=x><img src=x alt></picture>",
+}
+
+non_errors_in_head = {
+ "parent-template-in-head": "<template><picture><img src=x alt></picture></template>",
+}
+
+non_errors = {
+ # basic
+ "basic-img-src": "<img src=x alt>",
+ "basic-picture-img-src": "<picture><img src=x alt></picture>",
+ "basic-picture-source": "<picture><source srcset=x><img src=x alt></picture>",
+ # source with height and width
+ "source-height": "<picture><source srcset=x height=100><img src=x alt></picture>",
+ "source-width": "<picture><source srcset=x width=100><img src=x alt></picture>",
+ # inter-element whitespace
+ "inter-element-whitespace": "<picture> <!--x--> <source srcset=x> <!--x--> <img src=x alt> <!--x--> </picture>",
+ # parents
+ "parent-p": "<p><picture><img src=x alt></picture></p>",
+ "parent-h1": "<h1><picture><img src=x alt=x></picture></h1>",
+ "parent-noscript-in-body": "<noscript><picture><img src=x alt></picture></noscript>",
+ "parent-object": "<object data=x><picture><img src=x alt></picture></object>",
+ "parent-video": "<video src=x><picture><img src=x alt></picture></video>",
+ "parent-section": "<section><h2>x</h2><picture><img src=x alt></picture></section>",
+ "parent-main": "<main><picture><img src=x alt></picture></main>",
+ "parent-canvas": "<canvas><picture><img src=x alt></picture></canvas>",
+ "parent-template-in-body": "<template><picture><img src=x alt></picture></template>",
+ "parent-ruby": "<ruby><picture><img src=x alt></picture><rt>x</rt></ruby>",
+ "parent-rt": "<ruby>x<rt><picture><img src=x alt></picture></rt></ruby>",
+ "parent-a": "<a href=x><picture><img src=x alt></picture></a>",
+ "parent-button": "<button><picture><img src=x alt></picture></button>",
+ "parent-td": "<table><tr><td><picture><img src=x alt></picture></table>",
+ # script-supporting elements
+ "script-first": "<picture><script></script><source srcset=x><img src=x alt></picture>",
+ "template-first": "<picture><template></template><source srcset=x><img src=x alt></picture>",
+ "script-between": "<picture><source srcset=x><script></script><img src=x alt></picture>",
+ "script-after": "<picture><source srcset=x><img src=x alt><script></script></picture>",
+ "script-before-after": "<picture><script></script><source srcset=x><img src=x alt><script></script></picture>",
+ "script-before-between-after": "<picture><script></script><source srcset=x><script></script><img src=x alt><script></script></picture>",
+ "script-and-template": "<picture><template></template><source srcset=x><script></script><img src=x alt><template></template></picture>",
+ # source with following sibling source element or img element with a srcset attribute
+ "source-with-media-img-with-srcset": "<picture><source srcset=x media=screen><img src=x srcset=x alt></picture>",
+ "source-with-media-uppercase-img-with-srcset": "<picture><source srcset=x media=SCREEN><img src=x srcset=x alt></picture>",
+ "source-with-media-spaces-img-with-srcset": "<picture><source srcset=x media=' \n\tscreen \n\t'><img src=x srcset=x alt></picture>",
+ "source-with-media-source-with-srcset": "<picture><source srcset=x media=screen><source srcset=x><img src=x alt></picture>",
+ "source-with-type-img-with-srcset": "<picture><source srcset=x type=image/gif><img src=x srcset=x alt></picture>",
+ "source-with-type-source-with-srcset": "<picture><source srcset=x type=image/gif><source srcset=x><img src=x alt></picture>",
+ # sizes present
+ "img-with-sizes": "<img srcset='x 100w, y 200w' sizes=50vw src=x alt>",
+ "source-with-sizes": "<picture><source srcset='x 100w, y 200w' sizes=50vw><img src=x alt></picture>",
+ # embed allows any attributes
+ "embed-srcset-empty": "<embed srcset>",
+ "embed-srcset-junk": "<embed srcset='foo bar'>",
+ "embed-sizes-empty": "<embed sizes>",
+ "embed-sizes-junk": "<embed sizes='foo bar'>",
+ # img src also in srcset
+ "img-src-also-in-srcset-1x": "<img src=x srcset='x 1x, y 2x' alt>",
+ "img-src-also-in-srcset-2x": "<img src=x srcset='y 1x, x 2x' alt>",
+ "img-src-also-in-srcset-w": "<img src=x srcset='x 100w, y 200w' sizes=100vw alt>",
+ # img src not in srcset
+ "img-src-not-in-srcset-x": "<img src=x srcset='y 1x, z 2x' alt>",
+ "img-src-not-in-srcset-w": "<img src=x srcset='y 100w, z 200w' sizes=100vw alt>",
+ # source type
+ "source-type": "<picture><source srcset=x type=image/gif><img src=x alt></picture>",
+ "source-type-srcset-x": "<picture><source srcset='x 1x, y 2x' type=image/gif><img src=x alt></picture>",
+ "source-type-srcset-w-sizes": "<picture><source srcset='x 100w, y 200w' type=image/gif sizes=50vw><img src=x alt></picture>",
+ # sizes microsyntax
+ "sizes-microsyntax-media-min-width": "<img sizes='(min-width:500px) 500px, 100vw' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-multiple-source-sizes": "<img sizes='(min-width:1500px) 500px, (min-width:1000px) 33vw, (min-width:500px) 50vw, 100vw' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-no-default": "<img sizes='(min-width:500px) 500px' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-media-not-and": "<img sizes='(not (width:500px)) and (width:500px) 500px' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-only-default": "<img sizes='500px' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-calc-in-default": "<img sizes='calc(500px)' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-calc-in-source-size-value": "<img sizes='(min-width:500px) calc(500px)' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-calc-in-media": "<img sizes='(min-width:calc(500px)) 500px' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-zero": "<img sizes='0' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-minus-zero": "<img sizes='-0' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-em-in-source-size-value": "<img sizes='1em' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-ex-in-source-size-value": "<img sizes='1ex' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-ch-in-source-size-value": "<img sizes='1ch' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-rem-in-source-size-value": "<img sizes='1rem' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-vw-in-source-size-value": "<img sizes='1vw' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-vh-in-source-size-value": "<img sizes='1vh' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-vmin-in-source-size-value": "<img sizes='1vmin' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-vmax-in-source-size-value": "<img sizes='1vmax' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-cm-in-source-size-value": "<img sizes='1cm' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-mm-in-source-size-value": "<img sizes='1mm' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-q-in-source-size-value": "<img sizes='1q' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-in-in-source-size-value": "<img sizes='1in' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-pc-in-source-size-value": "<img sizes='1pc' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-pt-in-source-size-value": "<img sizes='1pt' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-px-in-source-size-value": "<img sizes='1px' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-non-integer-px-in-source-size-value": "<img sizes='0.2px' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-leading-css-comment": "<img sizes='/**/50vw' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-trailing-css-comment": "<img sizes='50vw/**/' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-plus": "<img sizes='+50vw' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-non-integer-omitted-zero": "<img sizes='.2px' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-scientifi-notation-0": "<img sizes='-0e-0px' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-scientifi-notation-1": "<img sizes='+11.11e+11px' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-scientifi-notation-2": "<img sizes='2.2e2px' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-scientifi-notation-3": "<img sizes='33E33px' srcset='x 100w, y 200w' src=x alt>",
+ "sizes-microsyntax-scientifi-notation-4": "<img sizes='.4E4px' srcset='x 100w, y 200w' src=x alt>",
+ # srcset microsyntax
+ "srcset-microsyntax-comma-in-url": "<img srcset='x,x' src=x alt>",
+ "srcset-microsyntax-percent-escaped-leading-comma-in-url": "<img srcset='%2Cx' src=x alt>",
+ "srcset-microsyntax-percent-escaped-trailing-comma-in-url": "<img srcset='x%2C' src=x alt>",
+ "srcset-microsyntax-percent-escaped-space-in-url": "<img srcset='%20' src=x alt>",
+ "srcset-microsyntax-w": "<img srcset='x 1w' sizes=100vw src=x alt>",
+ "srcset-microsyntax-x": "<img srcset='x 1x' src=x alt>",
+ "srcset-microsyntax-leading-dot-x": "<img srcset='x .5x' src=x alt>",
+ "srcset-microsyntax-non-integer-x": "<img srcset='x 1.5x' src=x alt>",
+ "srcset-microsyntax-scientific-notation-x": "<img srcset='x 1e0x' src=x alt>",
+ "srcset-microsyntax-scientific-notation-decimals-x": "<img srcset='x 1.5e0x' src=x alt>",
+ "srcset-microsyntax-scientific-notation-e-plus-x": "<img srcset='x 1e+0x' src=x alt>",
+ "srcset-microsyntax-scientific-notation-e-minus-x": "<img srcset='x 1e-0x' src=x alt>",
+ "srcset-microsyntax-scientific-notation-e-uppercase-x": "<img srcset='x 1E0x' src=x alt>",
+ "srcset-microsyntax-no-space-between-candidates": "<img srcset='x 1x,y 2x' src=x alt>",
+ # valid attributes on img in picture
+ "img-crossorigin-with-picture": "<picture><img crossorigin src=x alt></picture>",
+ "img-usemap-with-picture": "<picture><img usemap=#x src=x alt></picture><map name=x></map>",
+ "img-ismap-with-picture": "<a href=x><picture><img ismap src=x alt></picture></a>",
+ "img-width-height-with-picture": "<picture><img src=x alt width=1 height=1></picture>",
+ "img-width-height-zero-with-picture": "<picture><img src=x alt width=0 height=0></picture>",
+ # global attributes on picture
+ "picture-global-attributes": "<picture title=x class=x dir=ltr hidden id=asdf tabindex=0><img src=x alt></picture>",
+}
+
+for key in errors.keys():
+ template_error = template
+ template_error += '<title>invalid %s</title>\n' % key
+ template_error += errors[key]
+ file = open(os.path.join(ccdir, "html/elements/picture/%s-novalid.html" % key), 'w')
+ file.write(template_error)
+ file.close()
+
+file = open(os.path.join(ccdir, "html/elements/picture/picture-isvalid.html"), 'w')
+file.write(template + '<title>valid picture</title>\n')
+for key in non_errors_in_head.keys():
+ file.write('%s <!-- %s -->\n' % (non_errors_in_head[key], key))
+file.write('<body>\n')
+for key in non_errors.keys():
+ file.write('%s <!-- %s -->\n' % (non_errors[key], key))
+file.close()
+# vim: ts=4:sw=4
diff --git a/testing/web-platform/tests/conformance-checkers/tools/url.py b/testing/web-platform/tests/conformance-checkers/tools/url.py
new file mode 100644
index 0000000000..b93b544956
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/tools/url.py
@@ -0,0 +1,425 @@
+# -*- coding: utf-8 -*-
+import os
+ccdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+# based on https://github.com/web-platform-tests/wpt/blob/275544eab54a0d0c7f74ccc2baae9711293d8908/url/urltestdata.txt
+invalid = {
+ "scheme-trailing-space": "a: foo.com",
+ "scheme-trailing-tab": "a:\tfoo.com",
+ "scheme-trailing-newline": "a:\nfoo.com",
+ "scheme-trailing-cr": "a:\rfoo.com",
+ "scheme-http-no-slash": "http:foo.com",
+ "scheme-http-no-slash-colon": "http::@c:29",
+ "scheme-http-no-slash-square-bracket": "http:[61:27]/:foo",
+ "scheme-http-backslash": "http:\\\\foo.com\\",
+ "scheme-http-single-slash": "http:/example.com/",
+ "scheme-ftp-single-slash": "ftp:/example.com/",
+ "scheme-https-single-slash": "https:/example.com/",
+ "scheme-data-single-slash": "data:/example.com/",
+ "scheme-ftp-no-slash": "ftp:example.com/",
+ "scheme-https-no-slash": "https:example.com/",
+ "userinfo-password-bad-chars": "http://&a:foo(b]c@d:2/",
+ "userinfo-username-contains-at-sign": "http://::@c@d:2",
+ "userinfo-backslash": "http://a\\b:c\\d@foo.com",
+ "host-space": "http://example .org",
+ "host-tab": "http://example\t.org",
+ "host-newline": "http://example.\norg",
+ "host-cr": "http://example.\rorg",
+ "host-square-brackets-port-contains-colon": "http://[1::2]:3:4",
+ "port-999999": "http://f:999999/c",
+ "port-single-letter": "http://f:b/c",
+ "port-multiple-letters": "http://f:fifty-two/c",
+ "port-leading-colon": "http://2001::1",
+ "port-leading-colon-bracket-colon": "http://2001::1]:80",
+ "path-leading-backslash-at-sign": "http://foo.com/\\@",
+ "path-leading-colon-backslash": ":\\",
+ "path-leading-colon-chars-backslash": ":foo.com\\",
+ "path-relative-square-brackets": "[61:24:74]:98",
+ "fragment-contains-hash": "http://foo/path#f#g",
+ "path-percent-encoded-malformed": "http://example.com/foo/%2e%2",
+ "path-bare-percent-sign": "http://example.com/foo%",
+ "path-u0091": "http://example.com/foo\u0091",
+ "userinfo-username-contains-pile-of-poo": "http://💩:foo@example.com",
+ "userinfo-password-contains-pile-of-poo": "http://foo:💩@example.com",
+ "host-hostname-in-brackets": "http://[www.google.com]/",
+ "host-empty": "http://",
+ "host-empty-with-userinfo": "http://user:pass@/",
+ "port-leading-dash": "http://foo:-80/",
+ "host-empty-userinfo-empty": "http://@/www.example.com",
+ "host-invalid-unicode": "http://\ufdd0zyx.com",
+ "host-invalid-unicode-percent-encoded": "http://%ef%b7%90zyx.com",
+ "host-double-percent-encoded": "http://\uff05\uff14\uff11.com",
+ "host-double-percent-encoded-percent-encoded": "http://%ef%bc%85%ef%bc%94%ef%bc%91.com",
+ "host-u0000-percent-encoded": "http://\uff05\uff10\uff10.com",
+ "host-u0000-percent-encoded-percent-encoded": "http://%ef%bc%85%ef%bc%90%ef%bc%90.com",
+}
+invalid_absolute = invalid.copy()
+
+invalid_url_code_points = {
+ "fragment-backslash": "#\\",
+ "fragment-leading-space": "http://f:21/b# e",
+ "path-contains-space": "/a/ /c",
+ "path-leading-space": "http://f:21/ b",
+ "path-tab": "http://example.com/foo\tbar",
+ "path-trailing-space": "http://f:21/b ?",
+ "port-cr": "http://f:\r/c",
+ "port-newline": "http://f:\n/c",
+ "port-space": "http://f: /c",
+ "port-tab": "http://f:\t/c",
+ "query-leading-space": "http://f:21/b? d",
+ "query-trailing-space": "http://f:21/b?d #",
+}
+invalid.update(invalid_url_code_points)
+invalid_absolute.update(invalid_url_code_points)
+
+valid_absolute = {
+ "scheme-private": "a:foo.com",
+ "scheme-private-slash": "foo:/",
+ "scheme-private-slash-slash": "foo://",
+ "scheme-private-path": "foo:/bar.com/",
+ "scheme-private-path-leading-slashes-only": "foo://///////",
+ "scheme-private-path-leading-slashes-chars": "foo://///////bar.com/",
+ "scheme-private-path-leading-slashes-colon-slashes": "foo:////://///",
+ "scheme-private-single-letter": "c:/foo",
+ "scheme-private-single-slash": "madeupscheme:/example.com/",
+ "scheme-file-single-slash": "file:/example.com/",
+ "scheme-ftps-single-slash": "ftps:/example.com/",
+ "scheme-gopher-single-slash": "gopher:/example.com/",
+ "scheme-ws-single-slash": "ws:/example.com/",
+ "scheme-wss-single-slash": "wss:/example.com/",
+ "scheme-javascript-single-slash": "javascript:/example.com/",
+ "scheme-mailto-single-slash": "mailto:/example.com/",
+ "scheme-private-no-slash": "madeupscheme:example.com/",
+ "scheme-ftps-no-slash": "ftps:example.com/",
+ "scheme-gopher-no-slash": "gopher:example.com/",
+ "scheme-wss-no-slash": "wss:example.com/",
+ "scheme-mailto-no-slash": "mailto:example.com/",
+ "scheme-data-no-slash": "data:text/plain,foo",
+ "userinfo": "http://user:pass@foo:21/bar;par?b#c",
+ "host-ipv6": "http://[2001::1]",
+ "host-ipv6-port": "http://[2001::1]:80",
+ "port-none-but-colon": "http://f:/c",
+ "port-0": "http://f:0/c",
+ "port-00000000000000": "http://f:00000000000000/c",
+ "port-00000000000000000000080": "http://f:00000000000000000000080/c",
+ "userinfo-host-port-path": "http://a:b@c:29/d",
+ "userinfo-username-non-alpha": "http://foo.com:b@d/",
+ "query-contains-question-mark": "http://foo/abcd?efgh?ijkl",
+ "fragment-contains-question-mark": "http://foo/abcd#foo?bar",
+ "path-percent-encoded-dot": "http://example.com/foo/%2e",
+ "path-percent-encoded-space": "http://example.com/%20foo",
+ "path-non-ascii": "http://example.com/\u00C2\u00A9zbar",
+ "path-percent-encoded-multiple": "http://example.com/foo%41%7a",
+ "path-percent-encoded-u0091": "http://example.com/foo%91",
+ "path-percent-encoded-u0000": "http://example.com/foo%00",
+ "path-percent-encoded-mixed-case": "http://example.com/%3A%3a%3C%3c",
+ "path-unicode-han": "http://example.com/\u4F60\u597D\u4F60\u597D",
+ "path-uFEFF": "http://example.com/\uFEFF/foo",
+ "path-u202E-u202D": "http://example.com/\u202E/foo/\u202D/bar",
+ "host-is-pile-of-poo": "http://💩",
+ "path-contains-pile-of-poo": "http://example.com/foo/💩",
+ "query-contains-pile-of-poo": "http://example.com/foo?💩",
+ "fragment-contains-pile-of-poo": "http://example.com/foo#💩",
+ "host-192.0x00A80001": "http://192.0x00A80001",
+ "userinfo-username-contains-percent-encoded": "http://%25DOMAIN:foobar@foodomain.com",
+ "userinfo-empty": "http://@www.example.com",
+ "userinfo-user-empty": "http://:b@www.example.com",
+ "userinfo-password-empty": "http://a:@www.example.com",
+ "host-exotic-whitespace": "http://GOO\u200b\u2060\ufeffgoo.com",
+ "host-exotic-dot": "http://www.foo\u3002bar.com",
+ "host-fullwidth": "http://\uff27\uff4f.com",
+ "host-idn-unicode-han": "http://\u4f60\u597d\u4f60\u597d",
+ "host-IP-address-broken": "http://192.168.0.257/",
+}
+valid = valid_absolute.copy()
+
+valid_relative = {
+ "scheme-schemeless-relative": "//foo/bar",
+ "path-slash-only-relative": "/",
+ "path-simple-relative": "/a/b/c",
+ "path-percent-encoded-slash-relative": "/a%2fc",
+ "path-percent-encoded-slash-plus-slashes-relative": "/a/%2f/c",
+ "query-empty-no-path-relative": "?",
+ "fragment-empty-hash-only-no-path-relative": "#",
+ "fragment-slash-relative": "#/",
+ "fragment-semicolon-question-mark-relative": "#;?",
+ "fragment-non-ascii-relative": "#\u03B2",
+}
+valid.update(valid_relative)
+invalid_absolute.update(valid_relative)
+
+valid_relative_colon_dot = {
+ "scheme-none-relative": "foo.com",
+ "path-colon-relative": ":",
+ "path-leading-colon-letter-relative": ":a",
+ "path-leading-colon-chars-relative": ":foo.com",
+ "path-leading-colon-slash-relative": ":/",
+ "path-leading-colon-hash-relative": ":#",
+ "path-leading-colon-number-relative": ":23",
+ "path-slash-colon-number-relative": "/:23",
+ "path-leading-colon-colon-relative": "::",
+ "path-colon-colon-number-relative": "::23",
+ "path-starts-with-pile-of-poo": "💩http://foo",
+ "path-contains-pile-of-poo": "http💩//:foo",
+ "path-slash-pile-of-poo": "/💩",
+}
+valid.update(valid_relative_colon_dot)
+
+invalid_file = {
+ "scheme-file-backslash": "file:c:\\foo\\bar.html",
+ "scheme-file-single-slash-c-bar": "file:/C|/foo/bar",
+ "scheme-file-slash-slash-abc-bar": "file://abc|/foo/bar",
+ "scheme-file-triple-slash-c-bar": "file:///C|/foo/bar",
+}
+invalid.update(invalid_file)
+
+valid_file = {
+ "scheme-file-uppercase": "File://foo/bar.html",
+ "scheme-file-slash-slash-c-bar": "file://C|/foo/bar",
+ "scheme-file-host-included": "file://server/foo/bar",
+ "scheme-file-host-empty": "file:///foo/bar.txt",
+ "scheme-file-scheme-only": "file:",
+ "scheme-file-slash-only": "file:/",
+ "scheme-file-slash-slash-only": "file://",
+ "scheme-file-slash-slash-slash-only": "file:///",
+ "scheme-file-no-slash": "file:test",
+}
+valid.update(valid_file)
+valid_absolute.update(valid_file)
+
+warnings = {
+ "scheme-data-contains-fragment": "data:text/html,test#test",
+}
+
+element_attribute_pairs = [
+ "a href",
+ # "a ping", space-separated list of URLs; tested elsewhere
+ "area href",
+ # "area ping", space-separated list of URLs; tested elsewhere
+ "audio src",
+ "base href",
+ "blockquote cite",
+ "button formaction",
+ "del cite",
+ "embed src",
+ "form action",
+ "iframe src",
+ "img src", # srcset is tested elsewhere
+ "input formaction", # type=submit, type=image
+ "input src", # type=image
+ "input value", # type=url
+ "ins cite",
+ "link href",
+ "object data",
+ "q cite",
+ "script src",
+ "source src",
+ "track src",
+ "video poster",
+ "video src",
+]
+
+template = "<!DOCTYPE html>\n<meta charset=utf-8>\n"
+
+def write_novalid_files():
+ for el, attr in (pair.split() for pair in element_attribute_pairs):
+ for desc, url in invalid.items():
+ if ("area" == el):
+ f = open(os.path.join(ccdir, "html/elements/area/href/%s-novalid.html" % desc), 'w')
+ f.write(template + '<title>invalid href: %s</title>\n' % desc)
+ f.write('<map name=foo><%s %s="%s" alt></map>\n' % (el, attr, url))
+ f.close()
+ elif ("base" == el or "embed" == el):
+ f = open(os.path.join(ccdir, "html/elements/%s/%s/%s-novalid.html" % (el, attr, desc)), 'w')
+ f.write(template + '<title>invalid %s: %s</title>\n' % (attr, desc))
+ f.write('<%s %s="%s">\n' % (el, attr, url))
+ f.close()
+ elif ("img" == el):
+ f = open(os.path.join(ccdir, "html/elements/img/src/%s-novalid.html" % desc), 'w')
+ f.write(template + '<title>invalid src: %s</title>\n' % desc)
+ f.write('<img src="%s" alt>\n' % url)
+ f.close()
+ elif ("input" == el and "src" == attr):
+ f = open(os.path.join(ccdir, "html/elements/input/type-image-src/%s-novalid.html" % desc), 'w')
+ f.write(template + '<title>invalid src: %s</title>\n' % desc)
+ f.write('<%s type=image alt="foo" %s="%s">\n' % (el, attr, url))
+ f.close()
+ elif ("input" == el and "formaction" == attr):
+ f = open(os.path.join(ccdir, "html/elements/input/type-submit-formaction/%s-novalid.html" % desc), 'w')
+ f.write(template + '<title>invalid formaction: %s</title>\n' % desc)
+ f.write('<%s type=submit %s="%s">\n' % (el, attr, url))
+ f.close()
+ f = open(os.path.join(ccdir, "html/elements/input/type-image-formaction/%s-novalid.html" % desc), 'w')
+ f.write(template + '<title>invalid formaction: %s</title>\n' % desc)
+ f.write('<%s type=image alt="foo" %s="%s">\n' % (el, attr, url))
+ f.close()
+ elif ("input" == el and "value" == attr):
+ f = open(os.path.join(ccdir, "html/elements/input/type-url-value/%s-novalid.html" % desc), 'w')
+ f.write(template + '<title>invalid value attribute: %s</title>\n' % desc)
+ f.write('<%s type=url %s="%s">\n' % (el, attr, url))
+ f.close()
+ elif ("link" == el):
+ f = open(os.path.join(ccdir, "html/elements/link/href/%s-novalid.html" % desc), 'w')
+ f.write(template + '<title>invalid href: %s</title>\n' % desc)
+ f.write('<link href="%s" rel=help>\n' % url)
+ f.close()
+ elif ("source" == el or "track" == el):
+ f = open(os.path.join(ccdir, "html/elements/%s/%s/%s-novalid.html" % (el, attr, desc)), 'w')
+ f.write(template + '<title>invalid %s: %s</title>\n' % (attr, desc))
+ f.write('<video><%s %s="%s"></video>\n' % (el, attr, url))
+ f.close()
+ else:
+ f = open(os.path.join(ccdir, "html/elements/%s/%s/%s-novalid.html" % (el, attr, desc)), 'w')
+ f.write(template + '<title>invalid %s: %s</title>\n' % (attr, desc))
+ f.write('<%s %s="%s"></%s>\n' % (el, attr, url, el))
+ f.close()
+ for desc, url in invalid.items():
+ f = open(os.path.join(ccdir, "html/microdata/itemid/%s-novalid.html" % desc), 'w')
+ f.write(template + '<title>invalid itemid: %s</title>\n' % desc)
+ f.write('<div itemid="%s" itemtype="http://foo" itemscope></div>\n' % url)
+ f.close()
+ for desc, url in invalid_absolute.items():
+ f = open(os.path.join(ccdir, "html/microdata/itemtype/%s-novalid.html" % desc), 'w')
+ f.write(template + '<title>invalid itemtype: %s</title>\n' % desc)
+ f.write('<div itemtype="%s" itemscope></div>\n' % url)
+ f.close()
+ f = open(os.path.join(ccdir, "html/elements/input/type-url-value/%s-novalid.html" % desc), 'w')
+ f.write(template + '<title>invalid value attribute: %s</title>\n' %desc)
+ f.write('<input type=url value="%s">\n' % url)
+ f.close()
+
+def write_haswarn_files():
+ for el, attr in (pair.split() for pair in element_attribute_pairs):
+ for desc, url in warnings.items():
+ if ("area" == el):
+ f = open(os.path.join(ccdir, "html/elements/area/href/%s-haswarn.html" % desc), 'w')
+ f.write(template + '<title>%s warning: %s</title>\n' % (attr, desc))
+ f.write('<map name=foo><%s %s="%s" alt></map>\n' % (el, attr, url))
+ f.close()
+ elif ("base" == el or "embed" == el):
+ f = open(os.path.join(ccdir, "html/elements/%s/%s/%s-haswarn.html" % (el, attr, desc)), 'w')
+ f.write(template + '<title>%s warning: %s</title>\n' % (attr, desc))
+ f.write('<%s %s="%s">\n' % (el, attr, url))
+ f.close()
+ elif ("img" == el):
+ f = open(os.path.join(ccdir, "html/elements/img/src/%s-haswarn.html" % desc), 'w')
+ f.write(template + '<title>%s warning: %s</title>\n' % (attr, desc))
+ f.write('<%s %s="%s" alt>\n' % (el, attr, url))
+ f.close()
+ elif ("input" == el and "src" == attr):
+ f = open(os.path.join(ccdir, "html/elements/input/type-image-src/%s-haswarn.html" % desc), 'w')
+ f.write(template + '<title>%s warning: %s</title>\n' % (attr, desc))
+ f.write('<%s type=image alt="foo" %s="%s">\n' % (el, attr, url))
+ f.close()
+ elif ("input" == el and "formaction" == attr):
+ f = open(os.path.join(ccdir, "html/elements/input/type-submit-formaction/%s-haswarn.html" % desc), 'w')
+ f.write(template + '<title>%s warning: %s</title>\n' % (attr, desc))
+ f.write('<%s type=submit %s="%s">\n' % (el, attr, url))
+ f.close()
+ f = open(os.path.join(ccdir, "html/elements/input/type-image-formaction/%s-haswarn.html" % desc), 'w')
+ f.write(template + '<title>%s warning: %s</title>\n' % (attr, desc))
+ f.write('<%s type=image alt="foo" %s="%s">\n' % (el, attr, url))
+ f.close()
+ elif ("input" == el and "value" == attr):
+ f = open(os.path.join(ccdir, "html/elements/input/type-url-value/%s-haswarn.html" % desc), 'w')
+ f.write(template + '<title>%s warning: %s</title>\n' % (attr, desc))
+ f.write('<%s type=url %s="%s">\n' % (el, attr, url))
+ f.close()
+ elif ("link" == el):
+ f = open(os.path.join(ccdir, "html/elements/link/href/%s-haswarn.html" % desc), 'w')
+ f.write(template + '<title>%s warning: %s</title>\n' % (attr, desc))
+ f.write('<%s %s="%s" rel=help>\n' % (el, attr, url))
+ f.close()
+ elif ("source" == el or "track" == el):
+ f = open(os.path.join(ccdir, "html/elements/%s/%s/%s-haswarn.html" % (el, attr, desc)), 'w')
+ f.write(template + '<title>%s warning: %s</title>\n' % (attr, desc))
+ f.write('<video><%s %s="%s"></video>\n' % (el, attr, url))
+ f.close()
+ else:
+ f = open(os.path.join(ccdir, "html/elements/%s/%s/%s-haswarn.html" % (el, attr, desc)), 'w')
+ f.write(template + '<title>%s warning: %s</title>\n' % (url, desc))
+ f.write('<%s %s="%s"></%s>\n' % (el, attr, url, el))
+ f.close()
+ for desc, url in warnings.items():
+ f = open(os.path.join(ccdir, "html/microdata/itemtype-%s-haswarn.html" % desc ), 'w')
+ f.write(template + '<title>warning: %s</title>\n' % desc)
+ f.write('<div itemtype="%s" itemscope></div>\n' % url)
+ f.close()
+ f = open(os.path.join(ccdir, "html/microdata/itemid-%s-haswarn.html" % desc), 'w')
+ f.write(template + '<title>warning: %s</title>\n' % desc)
+ f.write('<div itemid="%s" itemtype="http://foo" itemscope></div>\n' % url)
+ f.close()
+
+def write_isvalid_files():
+ for el, attr in (pair.split() for pair in element_attribute_pairs):
+ if ("base" == el):
+ continue
+ if ("html" == el):
+ continue
+ elif ("input" == el and "value" == attr):
+ continue
+ elif ("input" == el and "formaction" == attr):
+ fs = open(os.path.join(ccdir, "html/elements/input/type-submit-formaction-isvalid.html"), 'w')
+ fs.write(template + '<title>valid formaction</title>\n')
+ fi = open(os.path.join(ccdir, "html/elements/input/type-image-formaction-isvalid.html"), 'w')
+ fi.write(template + '<title>valid formaction</title>\n')
+ elif ("input" == el and "src" == attr):
+ f = open(os.path.join(ccdir, "html/elements/input/type-image-src-isvalid.html"), 'w')
+ f.write(template + '<title>valid src</title>\n')
+ else:
+ f = open(os.path.join(ccdir, "html/elements/%s/%s-isvalid.html" % (el, attr)), 'w')
+ f.write(template + '<title>valid %s</title>\n' % attr)
+ for desc, url in valid.items():
+ if ("area" == el):
+ f.write('<map name=foo><%s %s="%s" alt></map><!-- %s -->\n' % (el, attr, url, desc))
+ elif ("embed" == el):
+ f.write('<%s %s="%s"><!-- %s -->\n' % (el, attr, url, desc))
+ elif ("img" == el):
+ f.write('<%s %s="%s" alt><!-- %s -->\n' % (el, attr, url, desc))
+ elif ("input" == el and "src" == attr):
+ f.write('<%s type=image alt="foo" %s="%s"><!-- %s -->\n' % (el, attr, url, desc))
+ elif ("input" == el and "formaction" == attr):
+ fs.write('<%s type=submit %s="%s"><!-- %s -->\n' % (el, attr, url, desc))
+ fi.write('<%s type=image alt="foo" %s="%s"><!-- %s -->\n' % (el, attr, url, desc))
+ elif ("link" == el):
+ f.write('<%s %s="%s" rel=help><!-- %s -->\n' % (el, attr, url, desc))
+ elif ("source" == el or "track" == el):
+ f.write('<video><%s %s="%s"></video><!-- %s -->\n' % (el, attr, url, desc))
+ else:
+ f.write('<%s %s="%s"></%s><!-- %s -->\n' % (el, attr, url, el, desc))
+ if ("input" == el and "formaction" == attr):
+ fs.close()
+ fi.close()
+ else:
+ if ("a" == el and "href" == attr):
+ f.write('<a href=""></a><!-- empty-href -->\n')
+ f.close()
+ for desc, url in valid.items():
+ f = open(os.path.join(ccdir, "html/elements/base/href/%s-isvalid.html" % desc), 'w')
+ f.write(template + '<title>valid href: %s</title>\n' % desc)
+ f.write('<base href="%s">\n' % url)
+ f.close()
+ f = open(os.path.join(ccdir, "html/elements/meta/refresh-isvalid.html"), 'w')
+ f.write(template + '<title>valid meta refresh</title>\n')
+ for desc, url in valid.items():
+ f.write('<meta http-equiv=refresh content="0; URL=%s"><!-- %s -->\n' % (url, desc))
+ f.close()
+ f = open(os.path.join(ccdir, "html/microdata/itemid-isvalid.html"), 'w')
+ f.write(template + '<title>valid itemid</title>\n')
+ for desc, url in valid.items():
+ f.write('<div itemid="%s" itemtype="http://foo" itemscope></div><!-- %s -->\n' % (url, desc))
+ f.close()
+ f = open(os.path.join(ccdir, "html/microdata/itemtype-isvalid.html"), 'w')
+ f.write(template + '<title>valid itemtype</title>\n')
+ for desc, url in valid_absolute.items():
+ f.write('<div itemtype="%s" itemscope></div><!-- %s -->\n' % (url, desc))
+ f.close()
+ f = open(os.path.join(ccdir, "html/elements/input/type-url-value-isvalid.html"), 'w')
+ f.write(template + '<title>valid value attribute</title>\n')
+ for desc, url in valid_absolute.items():
+ f.write('<input type=url value="%s"><!-- %s -->\n' % (url, desc))
+ f.close()
+
+write_novalid_files()
+write_haswarn_files()
+write_isvalid_files()
+# vim: ts=4:sw=4
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/attributes/accesskey/003-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/attributes/accesskey/003-novalid.xhtml
new file mode 100644
index 0000000000..0cf79bd9f5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/attributes/accesskey/003-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>accesskey attribute with duplicate key labels</title>
+</head>
+<body>
+<a href="url" accesskey="a b ぬ c ぬ">foo</a>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/attributes/accesskey/004-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/attributes/accesskey/004-novalid.xhtml
new file mode 100644
index 0000000000..a6088221c5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/attributes/accesskey/004-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>accesskey attribute with multi-character key label</title>
+</head>
+<body>
+<a href="url" accesskey="a b ほげ">foo</a>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/attributes/data/002-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/attributes/data/002-novalid.xhtml
new file mode 100644
index 0000000000..59ba0740ad
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/attributes/data/002-novalid.xhtml
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML>
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>starts with the string "data-", has at least one character after the hyphen, is XML-compatible, and contains no uppercase ASCII letters</title>
+ </head>
+ <body>
+ <p data-zZ=""></p><!-- has uppercase ASCII letter in name -->
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/050-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/050-novalid.xhtml
new file mode 100644
index 0000000000..fe82de048b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/050-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>spellcheck="badvalue"</title>
+</head>
+<body>
+<p spellcheck="badvalue"></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/051-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/051-isvalid.xhtml
new file mode 100644
index 0000000000..ffc5c2c5fd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/051-isvalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>spellcheck=""</title>
+</head>
+<body>
+<p spellcheck=""></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/052-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/052-isvalid.xhtml
new file mode 100644
index 0000000000..be64c4d20b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/052-isvalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>spellcheck="true"</title>
+</head>
+<body>
+<p spellcheck="true"></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/053-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/053-isvalid.xhtml
new file mode 100644
index 0000000000..a1d391dbc8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/053-isvalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>spellcheck="false"</title>
+</head>
+<body>
+<p spellcheck="false"></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/350-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/350-novalid.xhtml
new file mode 100644
index 0000000000..fe82de048b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/attributes/spellcheck/350-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>spellcheck="badvalue"</title>
+</head>
+<body>
+<p spellcheck="badvalue"></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/a/100-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/a/100-novalid.xhtml
new file mode 100644
index 0000000000..a093b6ee1f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/a/100-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>invalid empty value for a/@name</title>
+</head>
+<body>
+<a name=''></a>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/address/029-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/address/029-isvalid.xhtml
new file mode 100644
index 0000000000..04c981450a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/address/029-isvalid.xhtml
@@ -0,0 +1,15 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;address&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <address class="class" id="id" xml:lang="en">text</address>
+
+ <!-- can contain interactive -->
+ <address><a>text</a></address>
+
+ <!-- can contain strict inline -->
+ <address>text <em>elem</em></address>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/base/001-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/base/001-novalid.xhtml
new file mode 100644
index 0000000000..917a982117
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/base/001-novalid.xhtml
@@ -0,0 +1,9 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<base/>
+<title>base element missing href and target attribute</title>
+</head>
+<body>
+<iframe sandbox="aLLOw-TOp-nAVIGAtion"></iframe>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/blockquote/028-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/blockquote/028-isvalid.xhtml
new file mode 100644
index 0000000000..8b61d25a2e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/blockquote/028-isvalid.xhtml
@@ -0,0 +1,16 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;blockquote&gt;</title>
+</head>
+<body>
+ <!-- is block, contains blocks -->
+ <blockquote cite="url" class="class" id="id" xml:lang="en">
+ <h2>header</h2>
+ <p>text</p>
+ <p>text2</p>
+ </blockquote>
+
+ <!-- can contain interactive -->
+ <blockquote><p><a>text</a></p></blockquote>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/code/010-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/code/010-isvalid.xhtml
new file mode 100644
index 0000000000..ed6aa2c4b4
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/code/010-isvalid.xhtml
@@ -0,0 +1,20 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;code&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><code class="class" xml:lang="en">text</code></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><code class="class" xml:lang="en">text</code></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <code></code></p>
+ <p>text <dfn><code></code></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><code><a>text</a></code></p>
+ <p><dfn><code><a>text</a></code></dfn></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/del/041-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/del/041-isvalid.xhtml
new file mode 100644
index 0000000000..3d9fc243c6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/del/041-isvalid.xhtml
@@ -0,0 +1,32 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;del&gt;</title>
+</head>
+<body>
+ <!-- can contain inline while in inline context -->
+ <p>paragraph
+ <del>
+ <em>some</em>
+ </del>
+ </p>
+
+ <!-- can contain strictly inline while in strictly inline context -->
+ <p><dfn>strictly inline
+ <del>
+ <em>text</em>
+ </del>
+ </dfn></p>
+
+ <!-- can contain interactive if ancestor does not forbid it -->
+ <p>paragraph
+ <del>
+ <a>link</a>
+ </del>
+ </p>
+ <p><dfn>strictly inline
+ <del>
+ <a>link</a>
+ </del>
+ </dfn></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/dialog/001-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/dialog/001-novalid.xhtml
new file mode 100644
index 0000000000..dc4d58924d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/dialog/001-novalid.xhtml
@@ -0,0 +1,13 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;dialog&gt;</title>
+</head>
+<body>
+<dialog>
+<dt>Foo</dt>
+<dt>Bar</dt>
+<dd><p>Blah</p></dd>
+<dd><p>Bleh</p></dd>
+</dialog>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/dl/032-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/dl/032-isvalid.xhtml
new file mode 100644
index 0000000000..e943d5e21f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/dl/032-isvalid.xhtml
@@ -0,0 +1,53 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Definition List: &lt;dl&gt; &lt;dt&gt; &lt;dd&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <dl class="class" id="id" xml:lang="en">
+ <dt class="class" id="id2" xml:lang="en">text</dt>
+ <dd class="class" id="id3" xml:lang="en">text</dd>
+ </dl>
+
+ <!-- can be empty -->
+ <dl></dl>
+ <dl>
+ <dt></dt>
+ <dd></dd>
+ </dl>
+
+ <!-- multiple groups, but always (dt+,dd+) -->
+ <dl>
+ <dt>text</dt>
+ <dd>more text</dd>
+ <dt>text</dt>
+ <dd>more text</dd>
+ <dd>more text</dd>
+ <dt>text</dt>
+ <dt>text</dt>
+ <dt>text</dt>
+ <dd>more text</dd>
+ </dl>
+
+ <!-- dd can contain structured inline, dt strictly inline -->
+ <dl>
+ <dt>some <em>text</em></dt>
+ <dd>more <pre>text</pre></dd>
+ </dl>
+
+ <!-- dd can contain blocks -->
+ <dl>
+ <dt>some <em>text</em></dt>
+ <dd>
+ <p>more</p>
+ <p>text</p>
+ </dd>
+ </dl>
+
+ <!-- can contain interactive -->
+ <dl>
+ <dt>some <a>text</a></dt>
+ <dd>more <a>text</a></dd>
+ </dl>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/em/006-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/em/006-isvalid.xhtml
new file mode 100644
index 0000000000..f3c1e8da57
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/em/006-isvalid.xhtml
@@ -0,0 +1,21 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;em&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><em class="class" xml:lang="en">text</em></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><em class="class" xml:lang="en">text</em></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <em></em></p>
+ <p>text <dfn><em></em></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><em><a>text</a></em></p>
+ <p><dfn><em><a>text</a></em></dfn></p>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/embed/001-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/embed/001-novalid.xhtml
new file mode 100644
index 0000000000..9c4d55879a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/embed/001-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>element embed with bad height value</title>
+</head>
+<body>
+<embed height="20%"/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/embed/002-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/embed/002-novalid.xhtml
new file mode 100644
index 0000000000..08e4e1935d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/embed/002-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>element embed with bad type value</title>
+</head>
+<body>
+<embed type="foo"/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/embed/003-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/embed/003-novalid.xhtml
new file mode 100644
index 0000000000..a635e11cfb
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/embed/003-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>element embed with bad width value</title>
+</head>
+<body>
+<embed width="20%"/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/002-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/002-novalid.xhtml
new file mode 100644
index 0000000000..7c4681dd93
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/002-novalid.xhtml
@@ -0,0 +1,12 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Element before figcaption and text after</title>
+</head>
+<body>
+<figure>
+<img src='foo' alt='bar'/>
+<figcaption>Bar</figcaption>
+text
+</figure>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/101-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/101-novalid.xhtml
new file mode 100644
index 0000000000..213644e19d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/101-novalid.xhtml
@@ -0,0 +1,12 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Text before legend and element after</title>
+</head>
+<body>
+<figure>
+text
+<figcaption>Bar</figcaption>
+<img src='foo' alt='bar'/>
+</figure>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/102-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/102-novalid.xhtml
new file mode 100644
index 0000000000..7c4681dd93
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/102-novalid.xhtml
@@ -0,0 +1,12 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Element before figcaption and text after</title>
+</head>
+<body>
+<figure>
+<img src='foo' alt='bar'/>
+<figcaption>Bar</figcaption>
+text
+</figure>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/103-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/103-novalid.xhtml
new file mode 100644
index 0000000000..1b6506c167
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/103-novalid.xhtml
@@ -0,0 +1,12 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Text before figcaption and text after</title>
+</head>
+<body>
+<figure>
+text
+<figcaption>Bar</figcaption>
+text
+</figure>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/104-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/104-novalid.xhtml
new file mode 100644
index 0000000000..ca4c2ae615
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/104-novalid.xhtml
@@ -0,0 +1,12 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Element before figcaption and element after</title>
+</head>
+<body>
+<figure>
+<img src='foo' alt='bar'/>
+<figcaption>Bar</figcaption>
+<img src='foo' alt='bar'/>
+</figure>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/304-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/304-novalid.xhtml
new file mode 100644
index 0000000000..ca4c2ae615
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/figure/304-novalid.xhtml
@@ -0,0 +1,12 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Element before figcaption and element after</title>
+</head>
+<body>
+<figure>
+<img src='foo' alt='bar'/>
+<figcaption>Bar</figcaption>
+<img src='foo' alt='bar'/>
+</figure>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/footer/001-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/footer/001-novalid.xhtml
new file mode 100644
index 0000000000..9a503cf53b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/footer/001-novalid.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>"footer" with "footer" descendant</title>
+</head>
+<body>
+<footer>
+<footer></footer>
+</footer>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/footer/003-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/footer/003-novalid.xhtml
new file mode 100644
index 0000000000..b08041b74f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/footer/003-novalid.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>"footer" with "header" descendant</title>
+</head>
+<body>
+<footer>
+<header></header>
+</footer>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/header/001-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/header/001-novalid.xhtml
new file mode 100644
index 0000000000..8ff80389c6
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/header/001-novalid.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>"header" with "footer" descendant</title>
+</head>
+<body>
+<header>
+<footer></footer>
+</header>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/header/002-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/header/002-novalid.xhtml
new file mode 100644
index 0000000000..bd69cf84b0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/header/002-novalid.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>"header" with "header" descendant</title>
+</head>
+<body>
+<header>
+<header></header>
+</header>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/iframe/042-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/iframe/042-isvalid.xhtml
new file mode 100644
index 0000000000..236e5d069e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/iframe/042-isvalid.xhtml
@@ -0,0 +1,19 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;iframe&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><iframe
+ src="uri"
+ class="class"
+ xml:lang="en"></iframe></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><iframe
+ src="uri"
+ class="class"
+ xml:lang="en"></iframe></dfn></p>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/iframe/042-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/iframe/042-novalid.xhtml
new file mode 100644
index 0000000000..6977dfeef0
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/iframe/042-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>The iframe element must be empty in XML documents</title>
+</head>
+<body>
+ <iframe>text</iframe>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/003-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/003-novalid.xhtml
new file mode 100644
index 0000000000..7cc3479b6c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/003-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>invalid ismap</title>
+</head>
+<body>
+ <p><img src='foo' alt='bar' ismap='ismap'/></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/004-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/004-novalid.xhtml
new file mode 100644
index 0000000000..a771247e3c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/004-novalid.xhtml
@@ -0,0 +1,9 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>invalid img@usemap as descendant of &lt;a> element</title>
+</head>
+<body>
+ <map name="bar"/>
+ <p id="foo"><a href="#foo"><img src="http://www.w3.org/Icons/w3c_main.png" usemap="#bar" alt=""/></a></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/043-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/043-isvalid.xhtml
new file mode 100644
index 0000000000..21a73c7610
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/043-isvalid.xhtml
@@ -0,0 +1,29 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;img&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><a href='foo'><img
+ src="url"
+ alt="text"
+ width="42"
+ height="095"
+ ismap="ismap"
+ class="class"
+ xml:lang="en"></img></a></p>
+
+ <!-- is strictly inline -->
+ <p><a href='foo'><dfn><img
+ src="url"
+ alt="text"
+ width="42"
+ height="095"
+ ismap="ismap"
+ class="class"
+ xml:lang="en"></img></dfn></a></p>
+
+ <!-- src and alt are required, others optional -->
+ <p><img src="ur" alt="text"></img></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/051-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/051-isvalid.xhtml
new file mode 100644
index 0000000000..660051a3ba
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/051-isvalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>img with 0 value for width and height</title>
+</head>
+<body>
+<img src="url" width="0" height="0" alt="bar"/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/051-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/051-novalid.xhtml
new file mode 100644
index 0000000000..5ba54ab82a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/051-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>img with 0 value for width and height</title>
+</head>
+<body>
+<img src="url" width="-1" height="-1"/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/052-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/052-isvalid.xhtml
new file mode 100644
index 0000000000..0f7fe87022
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/052-isvalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>img with positive values for width and height</title>
+</head>
+<body>
+<img src="url" width="10" height="10" alt="bar"/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/302-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/302-isvalid.xhtml
new file mode 100644
index 0000000000..400af64899
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/img/302-isvalid.xhtml
@@ -0,0 +1,9 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>valid img@usemap</title>
+</head>
+<body>
+ <map name="bar"/>
+ <p><img src="foo.png" usemap="#bar" alt="bar"/></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/input/003-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/input/003-novalid.xhtml
new file mode 100644
index 0000000000..b098e9cfa8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/input/003-novalid.xhtml
@@ -0,0 +1,9 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>valid input/@list reference to datalist/@id</title>
+</head>
+<body>
+<datalist id="foo"></datalist>
+<input type="text" list="bar"></input>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/ins/040-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/ins/040-isvalid.xhtml
new file mode 100644
index 0000000000..ef6da600ff
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/ins/040-isvalid.xhtml
@@ -0,0 +1,25 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;ins&gt;</title>
+</head>
+<body>
+ <!-- can contain strictly inline while in strictly inline context -->
+ <p><dfn>strictly inline
+ <ins>
+ <em>text</em>
+ </ins>
+ </dfn></p>
+
+ <!-- can contain interactive if ancestor does not forbid it -->
+ <p>paragraph
+ <ins>
+ <a>link</a>
+ </ins>
+ </p>
+ <p><dfn>strictly inline
+ <ins>
+ <a>link</a>
+ </ins>
+ </dfn></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/054-also-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/054-also-novalid.xhtml
new file mode 100644
index 0000000000..b7bcb2021e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/054-also-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>empty keygen with no attributes</title>
+</head>
+<body>
+<keygen></keygen>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/054-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/054-novalid.xhtml
new file mode 100644
index 0000000000..d7fb2a61b5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/054-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>no-void keygen</title>
+</head>
+<body>
+<keygen>foo</keygen>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/055-also-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/055-also-novalid.xhtml
new file mode 100644
index 0000000000..95cf40f300
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/055-also-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>keygen with "challenge" attribute</title>
+</head>
+<body>
+<keygen challenge="123456"/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/056-also-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/056-also-novalid.xhtml
new file mode 100644
index 0000000000..979638cf6b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/056-also-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>keygen with "keytype" attribute</title>
+</head>
+<body>
+<keygen keytype="rsa"/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/056-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/056-novalid.xhtml
new file mode 100644
index 0000000000..093af9bbed
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/056-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>keygen with invalid value for "keytype" attribute</title>
+</head>
+<body>
+<keygen keytype="dsa"/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/057-also-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/057-also-novalid.xhtml
new file mode 100644
index 0000000000..9a42f1f283
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/057-also-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>keygen with empty "challenge" attribute</title>
+</head>
+<body>
+<keygen challenge=""/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/057-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/057-novalid.xhtml
new file mode 100644
index 0000000000..7421a0ef6e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/057-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>keygen with invalid empty "keytype" attribute</title>
+</head>
+<body>
+<keygen keytype=""/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/058-also-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/058-also-novalid.xhtml
new file mode 100644
index 0000000000..3a4b6c38fd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/058-also-novalid.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>keygen as &lt;label descendant</title>
+</head>
+<body>
+<label for="foo">
+<keygen id="foo"/>
+</label>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/058-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/058-novalid.xhtml
new file mode 100644
index 0000000000..943fbd16f9
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/058-novalid.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>keygen as &lt;label descendant, with wrong ID</title>
+</head>
+<body>
+<label for="foo">
+<keygen id="bar"/>
+</label>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/059-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/059-novalid.xhtml
new file mode 100644
index 0000000000..fff964f990
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/059-novalid.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>keygen as &lt;label descendant, with no ID</title>
+</head>
+<body>
+<label for="foo">
+<keygen/>
+</label>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/060-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/060-novalid.xhtml
new file mode 100644
index 0000000000..0c0003a091
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/060-novalid.xhtml
@@ -0,0 +1,11 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>keygen as redundant &lt;label descendant</title>
+</head>
+<body>
+<label for="foo">
+<input id="foo"/>
+<keygen/>
+</label>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/061-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/061-novalid.xhtml
new file mode 100644
index 0000000000..d6f7be8403
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/061-novalid.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>keygen as an invalid &lt;a> descendant</title>
+</head>
+<body>
+<a href="url">
+<keygen/>
+</a>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/154-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/154-novalid.xhtml
new file mode 100644
index 0000000000..d7fb2a61b5
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/154-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>no-void keygen</title>
+</head>
+<body>
+<keygen>foo</keygen>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/157-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/157-novalid.xhtml
new file mode 100644
index 0000000000..7421a0ef6e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/157-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>keygen with invalid empty "keytype" attribute</title>
+</head>
+<body>
+<keygen keytype=""/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/359-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/359-novalid.xhtml
new file mode 100644
index 0000000000..fff964f990
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/359-novalid.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>keygen as &lt;label descendant, with no ID</title>
+</head>
+<body>
+<label for="foo">
+<keygen/>
+</label>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/360-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/360-novalid.xhtml
new file mode 100644
index 0000000000..0c0003a091
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/360-novalid.xhtml
@@ -0,0 +1,11 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>keygen as redundant &lt;label descendant</title>
+</head>
+<body>
+<label for="foo">
+<input id="foo"/>
+<keygen/>
+</label>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/361-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/361-novalid.xhtml
new file mode 100644
index 0000000000..d6f7be8403
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/361-novalid.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>keygen as an invalid &lt;a> descendant</title>
+</head>
+<body>
+<a href="url">
+<keygen/>
+</a>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/keygen-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/keygen-novalid.xhtml
new file mode 100644
index 0000000000..ad03e94407
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/keygen/keygen-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>keygen is never valid</title>
+</head>
+<body>
+<keygen/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/link/001-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/link/001-novalid.xhtml
new file mode 100644
index 0000000000..cf6cd35e7a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/link/001-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>link element missing href attribute</title>
+<link rel="stylesheet"/>
+</head>
+<body>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/map/048-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/map/048-isvalid.xhtml
new file mode 100644
index 0000000000..5b5ed70594
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/map/048-isvalid.xhtml
@@ -0,0 +1,21 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;map&gt;</title>
+</head>
+<body>
+ <!-- is block, contains blocks and <area> -->
+ <map class="class" id="id" name="id" xml:lang="en">
+ <h2>header</h2>
+ <p><area alt="text" coords="1,2,3,4" href='foo'></area>p</p>
+ <p>text</p>
+ <p><area alt="text" coords="3,2,5,4" href='foo'></area>p</p>
+ <p>text2</p>
+ </map>
+
+ <!-- can contain interactive -->
+ <map id='foo' name='foo'>
+ <p><a>text</a></p>
+ <p><area alt="text" coords="3,2,5,4" href='foo'></area>p</p>
+ </map>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/mark/009-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/mark/009-isvalid.xhtml
new file mode 100644
index 0000000000..ac1328d74e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/mark/009-isvalid.xhtml
@@ -0,0 +1,21 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;m&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><mark class="class" xml:lang="en">text</mark></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><mark class="class" xml:lang="en">text</mark></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <mark></mark></p>
+ <p>text <dfn><mark></mark></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><mark><a>text</a></mark></p>
+ <p><dfn><mark><a>text</a></mark></dfn></p>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/embed-contextmenu-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/embed-contextmenu-isvalid.xhtml
new file mode 100644
index 0000000000..886d8d6b44
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/embed-contextmenu-isvalid.xhtml
@@ -0,0 +1,12 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>valid embed contextmenu</title>
+ </head>
+ <body>
+ <embed contextmenu='foo'/>
+ <!-- Since contextmenu is no longer a global attribute,
+ it is allowed on embed like any other unknown attribute,
+ and shouldn't give a warning or error about not matching
+ the ID of a <menu type='context'> etc. -->
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-containing-hr-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-containing-hr-novalid.xhtml
new file mode 100644
index 0000000000..235c88a406
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-containing-hr-novalid.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>invalid menu containing hr</title>
+ </head>
+ <body>
+ <menu>
+ <hr/>
+ </menu>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-containing-menu-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-containing-menu-novalid.xhtml
new file mode 100644
index 0000000000..12dc69ff4b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-containing-menu-novalid.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>invalid menu containing menu</title>
+ </head>
+ <body>
+ <menu>
+ <menu/>
+ </menu>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-containing-text-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-containing-text-novalid.xhtml
new file mode 100644
index 0000000000..fbcded6add
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-containing-text-novalid.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>invalid menu containing text</title>
+ </head>
+ <body>
+ <menu>
+ hello
+ </menu>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-type-context-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-type-context-novalid.xhtml
new file mode 100644
index 0000000000..154c493525
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-type-context-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>invalid menu type='context'</title>
+ </head>
+ <body>
+ <menu type='context'/>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-type-popup-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-type-popup-novalid.xhtml
new file mode 100644
index 0000000000..7a5d380309
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-type-popup-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>invalid menu type='popup'</title>
+ </head>
+ <body>
+ <menu type='popup'/>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-type-toolbar-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-type-toolbar-novalid.xhtml
new file mode 100644
index 0000000000..5194fabc01
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-type-toolbar-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>invalid menu type='toolbar'</title>
+ </head>
+ <body>
+ <menu type='toolbar'/>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-valid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-valid.xhtml
new file mode 100644
index 0000000000..c28c60be30
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menu-valid.xhtml
@@ -0,0 +1,23 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>valid menu</title>
+ </head>
+ <body>
+ <menu/>
+ <menu><li/></menu>
+ <menu><script/></menu>
+ <menu><script/><li/></menu>
+ <menu><li/><script/></menu>
+ <menu><li/><script/><li/></menu>
+ <menu><script/><li/><script/></menu>
+ <menu id='foo' class='bar' dir='ltr' lang='en' style='' title='foo'>
+ <li>
+ hello
+ <menu>
+ <li>nested</li>
+ <li>menu</li>
+ </menu>
+ </li>
+ </menu>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menuitem-children-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menuitem-children-novalid.xhtml
new file mode 100644
index 0000000000..bf9c229b8e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menuitem-children-novalid.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>invalid menuitem children</title>
+ </head>
+ <body>
+ <menu>
+ <menuitem>The Command</menuitem>
+ </menu>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menuitem-label-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menuitem-label-novalid.xhtml
new file mode 100644
index 0000000000..c27bee9b7f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/menuitem-label-novalid.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>invalid menuitem label</title>
+ </head>
+ <body>
+ <menu>
+ <menuitem label='The Command'/>
+ </menu>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/p-contextmenu-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/p-contextmenu-novalid.xhtml
new file mode 100644
index 0000000000..7954e0db05
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/menu/p-contextmenu-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>invalid contextmenu attribute</title>
+ </head>
+ <body>
+ <p contextmenu='foo'>foo</p>
+ </body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/002-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/002-isvalid.xhtml
new file mode 100644
index 0000000000..efb4dfa575
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/002-isvalid.xhtml
@@ -0,0 +1,26 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;t&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><meter value='0.5'>text</meter></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><meter value='0.5'>text</meter></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <meter value='0.5'></meter></p>
+ <p>text <dfn><meter value='0.5'></meter></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><meter value='0.5'><a>text</a></meter></p>
+ <p><dfn><meter value='0.5'><a>text</a></meter></dfn></p>
+
+ <!-- textContent -->
+ <!-- * <p><meter>text 1.88 text 33.881 text</meter></p> -->
+ <!-- * <p><meter>text 1.88 % text</meter></p> -->
+ <!-- * <p><meter>text 1.88 &#x2031; text</meter></p> -->
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/003-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/003-isvalid.xhtml
new file mode 100644
index 0000000000..8149b2fa62
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/003-isvalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>valid meter</title>
+</head>
+<body>
+<meter min='0.0' value='0.1' low='0.2' optimum='0.3' high='0.4' max='0.5'/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/010-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/010-novalid.xhtml
new file mode 100644
index 0000000000..cbf6b0909a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/010-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>invalid meter</title>
+</head>
+<body>
+<meter min='0.2' value='0.1'/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/011-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/011-novalid.xhtml
new file mode 100644
index 0000000000..32b5eb9146
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/011-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>invalid meter</title>
+</head>
+<body>
+<meter min='0.3' low='0.2'/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/012-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/012-novalid.xhtml
new file mode 100644
index 0000000000..8372b78b8e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/012-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>invalid meter</title>
+</head>
+<body>
+<meter min='0.4' optimum='0.3'/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/110-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/110-novalid.xhtml
new file mode 100644
index 0000000000..cbf6b0909a
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/110-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>invalid meter</title>
+</head>
+<body>
+<meter min='0.2' value='0.1'/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/312-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/312-novalid.xhtml
new file mode 100644
index 0000000000..8372b78b8e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/meter/312-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>invalid meter</title>
+</head>
+<body>
+<meter min='0.4' optimum='0.3'/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/object/001-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/object/001-novalid.xhtml
new file mode 100644
index 0000000000..0869f60e38
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/object/001-novalid.xhtml
@@ -0,0 +1,9 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta charset="utf-8"/>
+<title>object element missing data and type attributes</title>
+</head>
+<body>
+<object></object>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/object/044-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/object/044-isvalid.xhtml
new file mode 100644
index 0000000000..4669fe6e6b
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/object/044-isvalid.xhtml
@@ -0,0 +1,75 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;object&gt;</title>
+</head>
+<body>
+ <map name="idref"></map>
+ <!-- is structured inline -->
+ <p><object
+ data="uri"
+ height="40"
+ usemap="#idref"
+ width="40"
+ class="class"
+ xml:lang="en"></object></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><object
+ data="uri"
+ height="40"
+ usemap="#idref"
+ width="40"
+ class="class"
+ xml:lang="en"></object></dfn></p>
+
+ <!-- can contain inline while in inline context, but param must come first -->
+ <p>paragraph
+ <object data='bar.ogg'>
+ <em>some</em>
+ </object>
+ </p>
+ <p>paragraph
+ <object data='bar.ogg'>
+ <param name="foo" value='bar'></param><param name="bar" value='foo'></param>
+ <em>some</em>
+ </object>
+ </p>
+
+ <!-- can contain strictly inline while in strictly inline context, but param must come first -->
+ <p><dfn>strictly inline
+ <object data='bar.ogg'>
+ <em>text</em>
+ </object>
+ </dfn></p>
+ <p><dfn>strictly inline
+ <object data='bar.ogg'>
+ <param name="foo" value='bar'></param><param name="bar" value='foo'></param>
+ <em>text</em>
+ </object>
+ </dfn></p>
+
+ <!-- can contain interactive if ancestor does not forbid it, but param must come first -->
+ <p>paragraph
+ <object data='bar.ogg'>
+ <a>link</a>
+ </object>
+ </p>
+ <p>paragraph
+ <object data='bar.ogg'>
+ <param name="foo" value='bar'></param><param name="bar" value='foo'></param>
+ <a>link</a>
+ </object>
+ </p>
+ <p><dfn>strictly inline
+ <object data='foo.mov'>
+ <a>link</a>
+ </object>
+ </dfn></p>
+ <p><dfn>strictly inline
+ <object type='text/plain'>
+ <param name="foo" value='bar'></param><param name="bar" value='foo'></param>
+ <a>link</a>
+ </object>
+ </dfn></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/ol/031-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/ol/031-isvalid.xhtml
new file mode 100644
index 0000000000..341b94d576
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/ol/031-isvalid.xhtml
@@ -0,0 +1,36 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Ordered List: &lt;ol&gt; &lt;li&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <ol class="class" id="id" xml:lang="en" start="05">
+ <li class="class" id="id2" xml:lang="en" value="9">text</li>
+ </ol>
+
+ <!-- can be empty -->
+ <ol></ol>
+ <ol>
+ <li></li>
+ <li></li>
+ </ol>
+
+ <!-- can contain structured inline -->
+ <ol>
+ <li>some <em>text</em>
+ <pre>more text</pre>
+ </li>
+ </ol>
+
+ <!-- can contain blocks -->
+ <ol>
+ <li>
+ <p>some</p>
+ <p>text</p>
+ </li>
+ </ol>
+
+ <!-- can contain interactive -->
+ <ol><li><a>text</a></li></ol>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/p/025-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/p/025-isvalid.xhtml
new file mode 100644
index 0000000000..a2b95280b2
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/p/025-isvalid.xhtml
@@ -0,0 +1,12 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;p&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <p class="class" id="id" xml:lang="en">text</p>
+
+ <!-- can contain interactive -->
+ <p><a>text</a></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/pre/027-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/pre/027-isvalid.xhtml
new file mode 100644
index 0000000000..6239c17dca
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/pre/027-isvalid.xhtml
@@ -0,0 +1,15 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;pre&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <pre class="class" id="id" xml:lang="en">text</pre>
+
+ <!-- can contain interactive -->
+ <pre><a>text</a></pre>
+
+ <!-- can contain strictly inline -->
+ <pre>text <em>elem</em></pre>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/002-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/002-isvalid.xhtml
new file mode 100644
index 0000000000..64af31ef84
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/002-isvalid.xhtml
@@ -0,0 +1,10 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>valid progress</title>
+</head>
+<body>
+<progress value='0.5'/>
+<progress value='2.05' max='2.1' />
+<progress value='2.05' max='2.05' />
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/008-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/008-novalid.xhtml
new file mode 100644
index 0000000000..1c5475b85d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/008-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>invalid progress</title>
+</head>
+<body>
+<progress value='1.1'/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/009-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/009-novalid.xhtml
new file mode 100644
index 0000000000..4837071a65
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/009-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>invalid progress</title>
+</head>
+<body>
+<progress value='0.9' max='0.5'/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/108-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/108-novalid.xhtml
new file mode 100644
index 0000000000..1c5475b85d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/108-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>invalid progress</title>
+</head>
+<body>
+<progress value='1.1'/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/309-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/309-novalid.xhtml
new file mode 100644
index 0000000000..4837071a65
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/progress/309-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>invalid progress</title>
+</head>
+<body>
+<progress value='0.9' max='0.5'/>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/q/013-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/q/013-isvalid.xhtml
new file mode 100644
index 0000000000..f2bce48905
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/q/013-isvalid.xhtml
@@ -0,0 +1,20 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;q&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><q cite="url" class="class" xml:lang="en">text</q></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><q cite="url" class="class" xml:lang="en">text</q></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <q></q></p>
+ <p>text <dfn><q></q></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><q><a>text</a></q></p>
+ <p><dfn><q><a>text</a></q></dfn></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/ruby/001-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/ruby/001-novalid.xhtml
new file mode 100644
index 0000000000..9ca30a5854
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/ruby/001-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>ruby element missing rt child</title>
+</head>
+<body>
+<ruby></ruby>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/ruby/002-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/ruby/002-novalid.xhtml
new file mode 100644
index 0000000000..139f5d7393
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/ruby/002-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>ruby element missing rt child</title>
+</head>
+<body>
+<ruby><rt></rt><rp></rp><rp></rp></ruby>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/samp/011-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/samp/011-isvalid.xhtml
new file mode 100644
index 0000000000..7068383921
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/samp/011-isvalid.xhtml
@@ -0,0 +1,20 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;samp&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><samp class="class" xml:lang="en">text</samp></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><samp class="class" xml:lang="en">text</samp></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <samp></samp></p>
+ <p>text <dfn><samp></samp></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><samp><a>text</a></samp></p>
+ <p><dfn><samp><a>text</a></samp></dfn></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/script/001-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/script/001-novalid.xhtml
new file mode 100644
index 0000000000..dd911944f8
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/script/001-novalid.xhtml
@@ -0,0 +1,8 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>the "language" attribute is obsolete</title>
+</head>
+<body>
+<script language="vbscript"></script>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/span/014-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/span/014-isvalid.xhtml
new file mode 100644
index 0000000000..d35d50680f
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/span/014-isvalid.xhtml
@@ -0,0 +1,20 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;span&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><span class="class" xml:lang="en">text</span></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><span class="class" xml:lang="en">text</span></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <span></span></p>
+ <p>text <dfn><span></span></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><span><a>text</a></span></p>
+ <p><dfn><span><a>text</a></span></dfn></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/strong/007-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/strong/007-isvalid.xhtml
new file mode 100644
index 0000000000..e048214968
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/strong/007-isvalid.xhtml
@@ -0,0 +1,20 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;strong&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><strong class="class" xml:lang="en">text</strong></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><strong class="class" xml:lang="en">text</strong></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <strong></strong></p>
+ <p>text <dfn><strong></strong></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><strong><a>text</a></strong></p>
+ <p><dfn><strong><a>text</a></strong></dfn></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/strong/008-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/strong/008-isvalid.xhtml
new file mode 100644
index 0000000000..1ecc22f833
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/strong/008-isvalid.xhtml
@@ -0,0 +1,20 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;small&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><small class="class" xml:lang="en">text</small></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><small class="class" xml:lang="en">text</small></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <small></small></p>
+ <p>text <dfn><small></small></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><small><a>text</a></small></p>
+ <p><dfn><small><a>text</a></small></dfn></p>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/201-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/201-isvalid.xhtml
new file mode 100644
index 0000000000..57514cfb1d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/201-isvalid.xhtml
@@ -0,0 +1,13 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Conforming HTML table</title>
+</head>
+<body>
+<table>
+<tbody>
+<tr><td>1</td><td>2</td></tr>
+<tr><td>3</td><td>4</td></tr>
+</tbody>
+</table>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/201-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/201-novalid.xhtml
new file mode 100644
index 0000000000..36e0080cfe
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/201-novalid.xhtml
@@ -0,0 +1,11 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Non-Conforming HTML table (rowspan past end of row group)</title>
+</head>
+<body>
+<table>
+<tbody><tr><td>1</td><td rowspan="2">2</td><td>3</td><td>4</td></tr></tbody>
+<tbody><tr><td>5</td><td>6</td><td>7</td></tr></tbody>
+</table>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/202-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/202-isvalid.xhtml
new file mode 100644
index 0000000000..8cd628ea29
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/202-isvalid.xhtml
@@ -0,0 +1,11 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Conforming HTML table</title>
+</head>
+<body>
+<table>
+<tr><td colspan='2'>1</td><td>2</td></tr>
+<tr><td>3</td><td colspan='2'>4</td></tr>
+</table>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/202-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/202-novalid.xhtml
new file mode 100644
index 0000000000..45df2d36bd
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/202-novalid.xhtml
@@ -0,0 +1,11 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Non-Conforming HTML table (Cell 5 overlaps cell 2)</title>
+</head>
+<body>
+<table>
+<tr><td>1</td><td rowspan="2">2</td><td>3</td><td>4</td></tr>
+<tr><td colspan="2">5</td></tr>
+</table>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/203-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/203-isvalid.xhtml
new file mode 100644
index 0000000000..6db28a81e1
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/203-isvalid.xhtml
@@ -0,0 +1,12 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Conforming HTML table</title>
+</head>
+<body>
+<table>
+<tr><td rowspan='2'>1</td><td>2</td></tr>
+<tr><td rowspan='2'>3</td></tr>
+<tr><td>4</td></tr>
+</table>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/203-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/203-novalid.xhtml
new file mode 100644
index 0000000000..1d3ab03a48
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/203-novalid.xhtml
@@ -0,0 +1,11 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Non-Conforming HTML table (no cell starts in 3rd column)</title>
+</head>
+<body>
+<table>
+<tr><td colspan='3'>1</td><td>2</td></tr>
+<tr><td>3</td><td colspan='3'>4</td></tr>
+</table>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/204-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/204-isvalid.xhtml
new file mode 100644
index 0000000000..0ef76ca45e
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/204-isvalid.xhtml
@@ -0,0 +1,8892 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Big Table</title>
+</head>
+<body>
+<table>
+ <tbody>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="1" rowspan="0"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="30" rowspan="5"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="4" rowspan="9"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="57" rowspan="1"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="3" rowspan="5"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="6" rowspan="6"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="20" rowspan="6"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="13" rowspan="3"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="9" rowspan="10"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="19" rowspan="4"></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="13" rowspan="7"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="8" rowspan="8"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="15" rowspan="4"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="9" rowspan="8"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="22" rowspan="2"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="17" rowspan="5"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td colspan="14" rowspan="7"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="2" rowspan="14"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td colspan="13" rowspan="6"></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
+</body>
+
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/204-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/204-novalid.xhtml
new file mode 100644
index 0000000000..4c38ca263d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/204-novalid.xhtml
@@ -0,0 +1,13 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Non-Conforming HTML table (3rd row has no cells beginning in it)</title>
+</head>
+<body>
+<table>
+<tr><td rowspan='3'>1</td><td>2</td></tr>
+<tr><td rowspan='3'>3</td></tr>
+<tr></tr>
+<tr><td>4</td></tr>
+</table>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/205-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/205-novalid.xhtml
new file mode 100644
index 0000000000..a6515e851c
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/table/205-novalid.xhtml
@@ -0,0 +1,13 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Conforming HTML table</title>
+</head>
+<body>
+<table>
+<col/><col/><col/>
+<tr><td rowspan='0'>1</td><td>2</td></tr>
+<tr><td rowspan='2'>3</td></tr>
+<tr><td>4</td></tr>
+</table>
+</body>
+</html> \ No newline at end of file
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/time/001-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/time/001-isvalid.xhtml
new file mode 100644
index 0000000000..ed9c3d9a0d
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/time/001-isvalid.xhtml
@@ -0,0 +1,55 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;t&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><time datetime='2006-11-20'>text</time></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><time datetime='2006-11-20'>text</time></dfn></p>
+
+ <!-- can be empty -->
+ <p>text <time datetime='2006-11-20'></time></p>
+ <p>text <dfn><time datetime='2006-11-20'></time></dfn></p>
+
+ <!-- can contain interactive -->
+ <p><time datetime='2006-11-20'><a>text</a></time></p>
+ <p><dfn><time datetime='2006-11-20'><a>text</a></time></dfn></p>
+
+ <!-- vague moment of time in attribute -->
+ <p><time datetime='2006-11-20T16:24'>text</time></p>
+ <p><time datetime='2006-11-20T16:24:33'>text</time></p>
+ <p><time datetime='2006-11-20T16:24:33.89'>text</time></p>
+
+ <p><time datetime='2006-11-20T16:24Z'>text</time></p>
+ <p><time datetime='2006-11-20T16:24:33Z'>text</time></p>
+ <p><time datetime='2006-11-20T16:24:33.89Z'>text</time></p>
+
+ <p><time datetime='2006-11-20T16:24+02:00'>text</time></p>
+ <p><time datetime='2006-11-20T16:24:33+02:00'>text</time></p>
+ <p><time datetime='2006-11-20T16:24:33.89+02:00'>text</time></p>
+
+ <p><time datetime='16:24'>text</time></p>
+ <p><time datetime='16:24:33'>text</time></p>
+ <p><time datetime='16:24:33.89'>text</time></p>
+
+ <!-- vague moment of time in content -->
+ <p><time>2006-11-20T16:24</time></p>
+ <p><time>2006-11-20T16:24:33</time></p>
+ <p><time>2006-11-20T16:24:33.89</time></p>
+
+ <p><time>2006-11-20T16:24Z</time></p>
+ <p><time>2006-11-20T16:24:33Z</time></p>
+ <p><time>2006-11-20T16:24:33.89Z</time></p>
+
+ <p><time>2006-11-20T16:24+02:00</time></p>
+ <p><time>2006-11-20T16:24:33+02:00</time></p>
+ <p><time>2006-11-20T16:24:33.89+02:00</time></p>
+
+ <p><time>16:24</time></p>
+ <p><time>16:24:33</time></p>
+ <p><time>16:24:33.89</time></p>
+
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/elements/ul/030-isvalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/elements/ul/030-isvalid.xhtml
new file mode 100644
index 0000000000..da9df2f544
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/elements/ul/030-isvalid.xhtml
@@ -0,0 +1,35 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>Unordered List: &lt;ul&gt; &lt;li&gt;</title>
+</head>
+<body>
+ <!-- is block -->
+ <ul class="class" id="id" xml:lang="en">
+ <li class="class" id="id2" xml:lang="en">text</li>
+ </ul>
+
+ <!-- can be empty -->
+ <ul></ul>
+ <ul>
+ <li></li>
+ <li></li>
+ </ul>
+
+ <!-- can contain structured inline -->
+ <ul>
+ <li>some <em>text</em>
+ <pre>more text</pre>
+ </li>
+ </ul>
+ <!-- can contain blocks -->
+ <ul>
+ <li>
+ <p>some</p>
+ <p>text</p>
+ </li>
+ </ul>
+
+ <!-- can contain interactive -->
+ <ul><li><a>text</a></li></ul>
+</body>
+</html>
diff --git a/testing/web-platform/tests/conformance-checkers/xhtml/other/045-novalid.xhtml b/testing/web-platform/tests/conformance-checkers/xhtml/other/045-novalid.xhtml
new file mode 100644
index 0000000000..eab5bd7c66
--- /dev/null
+++ b/testing/web-platform/tests/conformance-checkers/xhtml/other/045-novalid.xhtml
@@ -0,0 +1,105 @@
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+ <title>&lt;applet&gt;</title>
+</head>
+<body>
+ <!-- is structured inline -->
+ <p><applet
+ archive="uri1,uri2"
+ code="foo"
+ codebase="uri"
+ height="40"
+ width="40"
+ name="sth"
+ class="class"
+ xml:lang="en"></applet></p>
+
+ <!-- is strictly inline -->
+ <p><dfn><applet
+ archive="uri1,uri2"
+ code="foo"
+ codebase="uri"
+ height="40"
+ width="40"
+ name="sth"
+ class="class"
+ xml:lang="en"></applet></dfn></p>
+
+ <!-- is block -->
+ <applet
+ archive="uri1,uri2"
+ code="foo"
+ codebase="uri"
+ height="40"
+ width="40"
+ name="sth"
+ class="class"
+ xml:lang="en"></applet>
+
+ <!-- can contain inline while in inline context, but param must come first -->
+ <p>paragraph
+ <applet code="foo" width="10" height="10">
+ <em>some</em> <ul><li>inline</li></ul> content
+ </applet>
+ </p>
+ <p>paragraph
+ <applet code="foo" width="10" height="10">
+ <param name="foo"></param><param name="bar"></param>
+ <em>some</em> <ul><li>inline</li></ul> content
+ </applet>
+ </p>
+
+ <!-- can contain strictly inline while in strictly inline context, but param must come first -->
+ <p><dfn>strictly inline
+ <applet code="foo" width="10" height="10">
+ <em>text</em>
+ </applet>
+ </dfn></p>
+ <p><dfn>strictly inline
+ <applet code="foo" width="10" height="10">
+ <param name="foo"></param><param name="bar"></param>
+ <em>text</em>
+ </applet>
+ </dfn></p>
+
+ <!-- can contain blocks while in block context, but param must come first -->
+ <applet code="foo" width="10" height="10">
+ <p>text</p>
+ </applet>
+ <applet code="foo" width="10" height="10">
+ <param name="foo"></param><param name="bar"></param>
+ <p>text</p>
+ </applet>
+
+ <!-- can contain interactive if ancestor does not forbid it, but param must come first -->
+ <p>paragraph
+ <applet code="foo" width="10" height="10">
+ <a>link</a>
+ </applet>
+ </p>
+ <p>paragraph
+ <applet code="foo" width="10" height="10">
+ <param name="foo"></param><param name="bar"></param>
+ <a>link</a>
+ </applet>
+ </p>
+ <p><dfn>strictly inline
+ <applet code="foo" width="10" height="10">
+ <a>link</a>
+ </applet>
+ </dfn></p>
+ <p><dfn>strictly inline
+ <applet code="foo" width="10" height="10">
+ <param name="foo"></param><param name="bar"></param>
+ <a>link</a>
+ </applet>
+ </dfn></p>
+ <applet code="foo" width="10" height="10">
+ <p><a>link</a></p>
+ </applet>
+ <applet code="foo" width="10" height="10">
+ <param name="foo"></param><param name="bar"></param>
+ <p><a>link</a></p>
+ </applet>
+</body>
+</html>